* dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
[platform/upstream/dbus.git] / ChangeLog
1 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
2
3         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
4         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
5         causes compile problems when asserts are turned off
6         Keeping _dbus_warn for printing out the message so even if
7         asserts are turned off the user gets the messages that something is 
8         wrong 
9
10 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
11
12         Patches by Kjartan Maraas <kmaraas at gnome dot org>
13
14         * bus/services.c (bus_service_list_queued_owners):
15         Add a pointer cast to fix compiler warning
16
17         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
18         return a NULL instead of FALSE since the return type
19         is not expecting a boolean
20
21         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
22         Remove unused variable
23
24         * dbus/dbus-marshal-recursive-util.c (node_new):
25         return a NULL instead of FALSE since the return type
26         is not expecting a boolean
27
28         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
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         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
33         add void as the parameter so some compilers
34         don't complain
35
36         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
37           _dbus_transport_new_for_tcp_socket):
38         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
39         because we are expecting a pointer not a boolean
40
41         * test/shell-test.c (test_command_line):
42         cast the second argument to _dbus_list_append to avoid compiler
43         warnings
44
45         * test/test-names.c (main): remove unused variable
46
47         * test/test-service.c (check_hello_from_self_reply):
48         Initialize echo_message and echo_reply to NULL
49         
50         * test/test-shell-service.c (handle_echo):
51         Remove unused variable and cast the third parameter passed to
52         dbus_connection_get_object_path_data to avoid compiler warrnings
53
54         * test/name-test/test-names.c (clear_message_queue):
55         Remove unused function
56
57         * test/name-test/test-pending-call-dispatch.c:
58         Fix format string in printf
59
60
61 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
62
63         * dbus/dbus-bus.c:
64         * test/name-test/test-names.c:
65         Remove test method dbus_bus_connection_get_unique_name because 
66         we already have public method dbus_bus_get_unique_name that 
67         does the exact same thing
68
69 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
70
71         * dbus/dbus-signature.c:
72         fix typos in Julio's previous patch which cause make check to fail
73
74 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
75
76         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
77         In any case it was wrong since this is a test checking to see if
78         address parsing is correct.  There was no need to get the true
79         tmp directory.  
80
81 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
82
83         * dbus/dbus-macros.h: Revert the addition of stddef.h
84         as we should not be adding it to library headers 
85
86 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
87
88         * dbus/dbus-signature.c:
89         Fix the unit tests so that they work if assertions are not enabled.
90         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
91
92 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
93
94         * tools/run-with-tmp-session-bus.sh:
95         * test/name-test/run-test.sh:
96         Remove bashisms (patch from Julio M. Merino Vidal
97         <jmmv at NetBSD dot org>)
98
99 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
100
101         * configure.in: add a version (>= 2.6.0) check for libxml2
102
103 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
104
105         * configure.in: make sure the compiler supports -Wfloat-equal
106         
107         * bus/dir-watch-dnotify.c: move functional code after 
108         variable declerations (C99 fix)  (patches from Jens Granseuer
109         <jensgr at gmx dot net>
110
111 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
112
113         * dbus/dbus-macros.h:
114         add #include <stddef.h> so that Sun compilers don't complain about
115         the defining NULL
116
117 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
118
119         * dbus/dbus-sysdeps.c:
120         * dbus/dbus-address.c:
121         * bus/activation.c:
122         * test/shell-test.c:
123         don't hardcode tmp directory (patch from Dave Meikle 
124         <dmk at davemeikle dot co dot uk>)
125
126 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
127
128         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
129         Change an assert to a detailed warning and abort.  
130         When allocator->lock != mutex it indicates that the user has failed
131         to initalize threads before using the D-Bus library.  This warning
132         helps the user identify the issue and fix their app.
133
134 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
135
136         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
137         with cleanups of bugs found from Coverity reports:
138
139         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
140         close the file on error to avoid a leak
141
142         * bus/expirelist.c (bus_expire_list_test):
143         Check for NULL on dbus_new0
144
145         * bus/activation.c (update_directory):
146         remove dead code
147
148         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
149         Fix some leaks
150
151         * bus/bus.c (process_config_every_time):
152         Fixed a leak
153
154         * bus/desktop-file.c (parse_key_value):
155         Fixed leak
156
157         * bus/selinux.c (bus_selinux_id_table_insert):
158         Fixed leak
159
160 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
161
162         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
163         remove dead code
164
165 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
166
167         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
168         #!/bin/bash
169
170 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
171
172         * Doxyfile.in: fix the INPUT line so we can generate docs 
173         when sourcedir != builddir (patch from Cygwin Ports maintainer
174         <yselkowitz at users dot sourceforge dot net>
175
176 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
177
178         * dbus/dbus-sysdeps.h:
179         * dbus/dbus-sysdeps.c: 
180         * dbus/dbus-string.c: 
181         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
182         GLib's function which does the same thing
183
184         * configure.in:
185         * bus/Makefile.am:
186         * bus/dir-watch-default.c:
187         * bus/dir-watch-dnotify.c:
188         * bus/dir-watch-kqueue.c:
189         Add kqueue directory watching for freebsd and split the directory
190         watching code into seperate files per method/arch
191         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
192
193 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
194
195         * configure.in:
196         * tools/Makefile.am:
197         * tools/dbus-launch.c:
198         * bus/Makefile.am:
199         allow --with-dbus-daemondir switch to be used to make the
200         daemon install to a seperate bindir like /usr/libexec
201         (patch from Brian Cameron <brian dot cameron at sun dot com)
202
203 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
204
205         * bus/Makefile.am (install-data-hook): removed the slash after 
206         $(DESTDIR) so we don't get the double slash which does not work
207         in windows (patch from Andras Porjesz 
208         <andras dot porjesz at siemens dot com>)
209
210 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
211
212         * dbus/dbus-sysdeps.h:
213         * dbus/dbus-sysdeps.c: 
214           add _dbus_printf_length (patch from Peter Kümmel 
215           <syntheticpp at gmx dot net>)
216
217 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
218
219         * dbus/dbus-internals.c: unistd.h is not used 
220         (_dbus_verbose_real): only enable verbose printing 
221         if DBUS_VERBOSE environment var is set to '1'
222         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
223
224 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
225
226         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
227         so we still compile on older gcc (patch from Frederic Peters 
228         <fpeters at 0d dot be>
229
230 2006-08-04  Havoc Pennington  <hp@redhat.com>
231
232         * configure.in: add -Wdeclaration-after-statement
233
234         * dbus/dbus-connection.c: change all the pending call stuff to
235         reflect the fact that pending call operations use the connection
236         lock
237
238         * dbus/dbus-pending-call.c: add locking here
239
240         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
241         field const consistent with how message field is done
242
243 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
244
245         * s/D-BUS/D-Bus/g
246
247 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
248
249         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
250         <in7y118 at public.uni-hamburg dot de> - fix invalid
251         read/write reported by valgrind
252
253 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
254
255         * Released 0.91
256
257 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
258
259         * dbus/dbus-connection.c:
260         (_dbus_connection_attach_pending_call_unlocked):
261         (connection_timeout_and_complete_all_pending_calls_unlocked):
262         Make sure we set timeout_added on pending calls to FALSE when
263         we remove the timeout from the connection
264
265 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
266
267         * Removed some extra bindings stuff lingering around (thanks timo)
268         * dbus-pendingcall.c (_dbus_pending_call_new): 
269         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
270         when we tried to take a lock on an already locked connection
271
272 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
273
274         * Released 0.90
275
276 2006-07-17  Havoc Pennington  <hp@redhat.com>
277
278         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
279         ints, reported by Owen Taylor
280
281 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
282
283         * doc/TODO:
284         * dbus/dbus-bus.c:
285         * dbus-errors.c:
286         * dbus/dbus-marshal-validate.c:
287           Removed TODO items which were fixed or are no longer relevent
288
289 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
290
291         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
292         Remove stray files from the stripped bindings
293
294 2006-07-16  Havoc Pennington  <hp@redhat.com>
295
296         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
297         Improve the error message on reply timeout
298
299 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
300
301         * Remove all bindings
302
303 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
304
305         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
306         and set pending_reply out arg to NULL is connection is disconnected
307         (connection_timeout_and_complete_all_pending_calls_unlocked): New
308         static method for cleaning up pending calls on disconnect
309         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
310         calls queued timeouts on disconnect 
311
312          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
313         Remove 
314
315 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
316
317         * bus/activation.[ch] (bus_activation_list_services): new function to 
318         get the list of services that can be activated
319
320         * bus/dispatch.c: test coverage for the new bus method
321         ListActivatableNames
322
323         * bus/driver.c: new bus method ListActivatableNames to get the list of
324         services that can be activated
325
326         * doc/dbus-specification.xml: ListActivatableNames method documentation
327
328 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
329         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
330         source files
331
332 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
333         * dbus/dbus-message-factory.c:
334         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
335
336 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
337         * dbus/dbus-connection-internal.h:
338         * dbus/dbus-connection.c:
339         * file dbus/dbus-pending-call.c:
340         * dbus/dbus-pending-call.h:
341         Make DBusPendingCall an opaque type even to D-Bus internals
342
343 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
344
345         * dbus/dbus-connection.h: remove connection_disconnect and replace with
346         connection_close
347
348         * dbus/dbus-connection.c: include dbus-bus.h
349         (_dbus_connection_read_write_dispatch): make static
350
351 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
352
353         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
354         function
355         (dbus_connection_dispatch): On disconnect unref any shared connections
356
357         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
358         for cleaning up shared connections on disconnect
359         (internal_bus_get): get a hard refrence to shared connections when
360         they are created
361         
362         * doc/TODO: Remove items which are no longer relevent or have been fixed
363         Split 1.0 todo items with a 0.90 freeze todo list
364  
365 2006-06-14  Ross Burton  <ross@openedhand.com>
366
367         * glib/dbus-gobject.c:
368         Free a leaking GArray (surely not!) in dbus_g_method_return.
369
370 2006-06-14  Ross Burton  <ross@openedhand.com>
371
372         * tools/Makefile.am:
373         * tools/dbus-monitor.c:
374         Don't use the GLib bindings in dbus-monitor (patch from Ralf
375         Habacker).
376         
377 2006-06-14  Ross Burton  <ross@openedhand.com>
378
379         * tools/dbus-print-message.c:
380         Also print the object path when outputting signals or method calls.
381
382 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
383
384         * qt/src/Makefile.am: install the qdbus.h header.
385         This allows people to actually use the installed code.
386
387 2006-06-12  Ross Burton  <ross@openedhand.com>
388
389         * glib/dbus-gproxy.c:
390         Don't leak a GArray when firing signals (thank Rob Taylor for review).
391
392 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
393
394         * Released 0.62
395
396 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
397
398         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
399         break pedantic builds. Closes bug 6043 (patch approved by
400         Havoc back in February).
401
402 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
403
404         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
405         that took a QDBusMessage parameter.
406         * qt/src/qdbusbus.h: Add a default flag for RequestName.
407         * qt/tools/dbus.cpp: Don't use automatic call because we might
408         be calling an async method: request a reply.
409
410 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
411
412         * test/qt/*: Update the testcases, including testing the new
413         functionality of sending null QByteArray and QString over the
414         bus. Add new headertest test and restore the old
415         qdbusxmlparser test.
416
417 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
418
419         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
420         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
421
422         * qt/examples/Makefile.am:
423         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
424         form.
425
426         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
427         QByteArray() (nulls) over the bus.
428         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
429         the one that has the signature suffix stripped.
430         * qt/src/qdbusreply.h: Make some methods const.
431
432 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
433
434         Patch from Timo Hoenig <thoenig@suse.de>.
435
436         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
437         required during build to EXTRA_DIST.
438         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
439         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
440         * configure.in: Fix "make dist", take care that the Makefile for
441         qt/dbus is being generated.
442
443 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
444
445         * bus/bus.c: Fix eavesdropping on method calls
446
447 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
448
449         * configure.in:
450         * dbus/dbus-userdb-util.c:
451         Add Solaris console owner patch from Artem Kachitchkine
452
453 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
454
455         * qt/Makfile.am:
456         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
457         reorganisation. Thanks to Timo Hoenig for pointing this out.
458
459 2006-06-06  Robert McQueen  <robot101@debian.org>
460
461         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
462           call to dbus_g_type_get_struct.
463
464 2006-06-06  Robert McQueen  <robot101@debian.org>
465
466         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
467           pointers were put into a GPtrArray-based specialised collection, and
468           then freed along with the array. GValues which you add into
469           collections or maps which have the NOCOPY flag set are assumed to not
470           belong to the caller, so rather than the existing pointer-stealing
471           semantics, they are copied instead. Given that the main consumers of
472           this abstraction are the bindings themselves, I don't think this is
473           too bad, but others should watch their choice of take vs set_static.
474
475 2006-06-06  Robert McQueen  <robot101@debian.org>
476
477         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
478           of g_slist_prepend not being used. Fixed copying of slist-based
479           specialised collections, then wrote a test case and found that it was
480           all broken. Went on to fix iterating and appending too. Good thing
481           nobody uses this code yet.
482
483 2006-06-06  Robert McQueen  <robot101@debian.org>
484
485         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
486           the iterators use gvalue_take_ptrarray_value (the GValues themselves
487           are discarded without unsetting, so it makes no difference whether
488           we take or set_static). Remove cases for G_TYPE_POINTER because
489           there really is nothing useful we can do with them in our
490           specialised types - we *need* boxed copy/free functions at the very
491           least.
492
493 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
494
495         * qt/dbus: Add directory. I had forgotten to add this
496         yesterday after the move...
497
498         * qt/examples/Makefile.am:
499         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
500
501         * qt/tools/Makefile.am:
502         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
503         Added feature to get and set properties.
504         Added validation of service, object path and interface names.
505
506         * qt/tools/dbusidl2cpp.cpp: Two new features:
507         1) Allow specifying both the header and the source file names,
508         by separating them with a colon.
509         2) Don't write an interface output if the -p switch wasn't
510         given, but the -a was.
511
512         * qt/src/*: Fix usage of Iterators and ConstIterators.
513         Fix shadowing of variables by other variables (-Wshadow).
514         Fix keyword-cleanliness in headers.
515         Fix ASCII-cast (QLatin1String, QLatin1Char).
516         Fix validation of member names.
517         Add extra checking of introspection data during XML parsing.
518         Various bug fixes.
519
520 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
521
522         * dbus/Makefile.am:
523         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
524         qt/dbus/qdbus.h now.
525
526 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
527
528         * configure.in: Make --disable-qt actually do
529           something. Patch inspired by Zack Rusin.
530
531 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
532
533         * qt/: Update to Subversion r548032.
534         This includes a big reorganisation of the files inside the
535         subdir.
536
537 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
538
539         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
540         clear:  
541         "Failed to connect to socket <host>:<port> <error>" instead of
542         "Failed to connect to socket <host>: <error>:<port>"
543
544         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
545         for a tcp transport. 
546
547 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
548
549         * qt/*: Update the QtDBus bindings up to revision 546310 in
550         Subversion.
551         This adds the dbuscpp2xml tool, that parses a C++ header and
552         outputs a D-BUS Introspection XML.
553
554 2006-05-21  Havoc Pennington  <hp@redhat.com>
555
556         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
557         is not NULL when it shouldn't be. Also a couple of possible fixes
558         for #4637 though I don't understand why the bug happens, to be
559         honest... also the object constructor has an assert name != NULL
560         and the name is only currently NULL for peer-to-peer proxies that 
561         I don't think anyone uses? So it should be asserting.
562         Anyway, for now at least see if we get an earlier assertion failure.
563
564         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
565         apparently broken code to be sure the tests fail and someone 
566         will fix them...
567
568 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
569
570         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
571         and arrays when they had a single element: has_next returns
572         false, even before you read the element. So, instead, check
573         the array length.
574
575 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
576
577         * qt/qdbusmessage.cpp:
578         * qt/qdbustypehelper_p.h:
579         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
580         the list is a const-reference
581
582 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
583
584         * Adding old doc patch that never got applied
585         
586         * dbus/bus.c (dbus_bus_add_match): Add documentation
587
588         * doc/dbus-specification.xml: Add documentation for the match rules
589           and the AddMatch and RemoveMatch methods
590
591 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
592
593         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
594         call (r535506)
595
596         * qt/dbusidl2cpp.cpp:
597         * qt/qdbusabstractadaptor.cpp:
598         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
599         sibling of the QDBusAbstractAdaptor objects instead of the
600         parent. (r535848)
601
602         * qt/dbusidl2cpp.cpp:
603         * qt/qdbusabstractinterface.cpp:
604         * qt/qdbusabstractinterface.h:
605         * qt/qdbusabstractinterface_p.h:
606         * qt/qdbusinterface.cpp: Make properties in interfaces
607         actually work. The code that was generated would not compile,
608         due to moc calls to functions that did not exist. They now
609         shall. (r536571)
610
611 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
612
613         * Makefile.am:
614         * configure.in:
615         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
616         Thanks to Brad Hards for providing the patch
617
618 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
619
620         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
621         call. (r535506)
622
623 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
624
625         * qt/examples/dbus.cpp: Enhance error messages and use
626         QDBusInterfacePtr.
627
628 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
629
630         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
631         and disable the copy operators. (r533772, r534746)
632
633         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
634
635         * qt/qdbusabstractinterface.cpp:
636         * qt/qdbusabstractinterface.h: Change the default call mode to
637         not use the event loop. Add convenience call() methods that
638         take a CallMode parameter. (r534042)
639
640         * qt/qdbusconnection.h: Change the default call mode to not
641         use the event loop. (r534042)
642
643         * qt/qdbusinterface.cpp:
644         * qt/qdbusinterface.h: Add a method to tell us if the
645         interface is valid (since we don't return a null pointer
646         anymore) (r534099)
647
648         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
649         (r534101)
650
651         * qt/qdbusinternalfilters.cpp: Decouple the introspection
652         function in two so taht we get the chance to introspect
653         without having a QDBusMessage (r534102)
654
655         * qt/qdbusbus.h:
656         * qt/qdbusconnection.cpp:
657         * qt/qdbusconnection_p.h:
658         * qt/qdbusintegrator.cpp: Keep a list of our own names to
659         avoid a round-trip to the server when attempting to introspect
660         one of our own objects. Also make sure the filter functions
661         match the empty interface as well. (r534108)
662         Don't keep the connection names. Instead, trust the unique
663         connection name (r534111)
664         Remove event loop usage (r534112)
665
666 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
667
668         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
669         Brad Hards.
670
671 2006-04-28  Robert McQueen  <robot101@debian.org>
672
673         * glib/dbus-gproxy.c: Fix properties so that they can be given in
674         any order, making it easier for people who inherit from this
675         object.
676
677 2006-04-28  Robert McQueen  <robot101@debian.org>
678
679         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
680         of memory from within pointer arrays and lists. Fixes bug #6300.
681
682 2006-04-28  Robert McQueen  <robot101@debian.org>
683
684         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
685         generating struct signatures. Fixes bug #6083.
686
687 2006-04-28  Robert McQueen  <robot101@debian.org>
688
689         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
690         to qdbusconnection_p.moc.
691
692 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
693
694         * README, INSTALL: Doc fixes
695         Patch from Brad Hards <bradh at frogmouth.net>
696
697 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
698
699         * qt/examples/dbus.cpp: Use the new merged-interface mode for
700         the dynamic meta object. No need to guess which interface to
701         call.
702
703 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
704
705         * qt/qdbusconnection_p.h:
706         * qt/qdbusmetaobject.cpp:
707         * qt/qdbusmetaobject_p.h:
708         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
709         for the dynamic meta object. No need to guess which
710         interface to call.
711         * qt/qdbusabstractinterface_p.h:
712         * qt/qdbusconnection.cpp:
713         * qt/qdbusintegrator.cpp:
714         * qt/qdbusinterface.cpp:
715         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
716         Add a QDBusRef that looks and behaves like DCOPRef.
717
718 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
719
720         * dbus/dbus-connection.c: Interfaces are optional in method
721         calls, so don't give up if the interface parameter is NULL.
722         Patch reviewed by Havoc Pennington.
723
724 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
725
726         * qt/qdbusreply.h: Add default constructor and operator=
727           (r532625)
728         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
729           in public headers (r532952)
730         * qt/qdbusabstractinterface.cpp:
731         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
732           make it the default (r532951)
733
734 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
735
736         * dbus/dbus-connection.c: Fix asserts
737         Patch from Tim Moloney <t.moloney at verizon.net>
738
739 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
740
741         * mono/Connection.cs, mono/Message.cs: Check Target type
742         Patch from Aaron Bockover (abockover at novell.com)
743
744 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
745
746         * INSTALL: fine-tune the requirements for the Qt4 binding.
747
748 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
749
750         * tools/dbus-print-message.c: Added support for printing of all 
751           remaining data types. Fixed logic for indentation of compound
752           data types.
753         
754 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
755
756         * INSTALL: fill out content of file providing DBus specific
757           build installations, followed by generic Auto* INSTALL file
758           content
759         
760 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
761
762         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
763           Patch by Stefan Eilers. (r529537)
764
765 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
766
767         * qt/qdbusinternalfilters.cpp: Don't show the parent's
768           contents (r528208)
769
770 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
771
772         * qt/Makefile.am: fix the dependency for
773           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
774           not in qdbusconnection.cpp.
775           Thanks to Jakub Stachowski <stachowski@hypair.net> for
776           spotting this.
777
778 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
779
780         * qt/examples/listnames.cpp:
781         * qt/examples/Makefile.am: Three ways to list the names on the
782           bus.
783
784 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
785
786         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
787           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
788
789 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
790
791         Merge from Subversion:
792         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
793           something that exists (r526315)
794         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
795           slots/signals (r526316)
796         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
797           also return an unknown-method error if the parameters don't
798           match for org.freedesktop.DBus.Properties. (r526842)
799         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
800         * qt/qdbusintegrator.cpp: Restore the proper order of
801           delivery: don't make method returns be delivered on priority
802           (r528150)
803
804 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
805
806         * configure.in qt/Makefile.am: add qt/examples
807         * qt/examples: Add QtDBus example programs:
808           - hello: Hello, World
809           - ping: Simple method-calling program
810           - pong: Simple object-exporting program (not using adaptors)
811           - complexping: Interactive method-calling program 
812                 (also gets and sets properties).
813           - complexpong: Sample program exporting methods, signals and
814                 properties, using adaptors.
815           - dbus: Simple implementation of a generic method-calling
816                 program, similar to 'dbus-send', but with semantics
817                 similar to 'dcop'.
818           - chat: Simplistic chat program, implemented using signals
819                 and the system bus. Looks like IRC.
820
821 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
822
823         * configure.in: Detect QtGui (necessary for one of the
824           example programs). Note: this increases the minimum required
825           version of Qt to 4.1.3.
826
827 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
828
829         * test/qt/*: Sync with KDE Subversion revision 523647.
830         Update the testcases to the new API. Remove testcases for
831         classes that are no longer public or have been removed.
832
833 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
834
835         * qt/*: 
836         * dbus/qdbus.h: Sync with KDE Subversion revision
837         523647. Hopefully, this will be the last of the
838         source-incompatible changes. Documentation has been improved;
839         support for QList<basic-types> has been added; QDBusObject is
840         gone; QDBus(Abstract)Interface is now a QObject with
841         auto-generated meta-object; QDBusIntrospection is marked
842         private, since QMetaObject can be used now; lots of bugfixes.
843
844 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
845
846         Patch from Milosz Derezynski <internalerror at gmail.com>
847         
848         * configure.in:
849         Output the service directory in the configure summary
850
851         * dbus-1.pc.in:
852         Add session_bus_services_dir
853
854 2006-03-10  Ross Burton  <ross@openedhand.com>
855
856         * tools/dbus-print-message.c:
857         Add support for object paths and signatures.
858
859 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
860
861         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
862         config reload.
863         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
864         information caches
865         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
866         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
867         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
868         * dbus/dbus-userdb.h: Add function to flush all user/group information
869         caches.
870
871 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
872
873         * qt/dbusidl2cpp.cpp:
874         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
875         for dcopidl2cpp, found in the KDE installations (or the more
876         modern kalyptus): generate Qt4 C++ code for the input XML
877         introspection. Currently no IDL parsing.
878
879 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
880
881         * test/qt/*: Update the self-tests.
882
883 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
884
885         * qt/*: 
886         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
887         represents the first feature-complete version of the Qt4
888         bindings since I took ove maintainership.
889
890 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
891
892         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
893         dir. This is C++, so we can't use the DBus ones.
894
895 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
896
897         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
898         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
899
900 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
901
902         * dbus/dbus-connection.c: 
903         (_dbus_connection_block_pending_call):
904         Check to see if our data has already been read off the connection
905         by another blocking pending call before we block in poll.
906         (check_for_reply_and_update_dispatch_unlocked):
907         Code taken from _dbus_connection_block_pending_call - checks for
908         an already read reply and updates the dispatch if there is one.
909
910         * test/name-test/test-pending-call-dispatch.c:
911         New test for making sure we don't get stuck polling a 
912         dbus connection which has no data on the socket when
913         blocking out of order on two or more pending calls.
914
915 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
916
917         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
918         make/automake don't detect that we're talking about the same
919         .lo file if I specify the full path to the source files.
920
921 2006-02-26  Havoc Pennington  <hp@redhat.com>
922
923         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
924
925         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
926         session bus variable is unset, suggest "man dbus-launch" and "man
927         dbus-daemon" to figure out how to fix the problem
928
929 2006-02-25  Havoc Pennington  <hp@redhat.com>
930
931         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
932         should make this thing use the new glib options parser
933
934 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
935
936         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
937         .lo files taking moc sources.
938
939 2006-02-25  Havoc Pennington  <hp@redhat.com>
940
941         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
942         and install it as a public header
943
944 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
945
946         * Released 0.61
947
948 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
949         
950         * proxies.py: Fix the callchain
951
952 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
953         
954         * patch from Sjoerd Simons <sjoerd at debian.org>:      
955
956         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
957         dbus/dbus-sysdeps.c
958
959         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
960         call _dbus_group_info_free_allocated which causes infinite loop,
961         correctly call _dbus_group_info_free
962
963 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
964
965         * qt/qdbusinterface_p.h:
966         * qt/qdbusinterface.cpp: Use the standard
967         org.freedesktop.DBus.Method.NoReply annotation for the "async"
968         calls instead of creating one for us.
969
970         * qt/qdbusconnection_p.h:
971         * qt/qdbusintegrator.cpp: Remove debugging code.
972
973         * qt/qdbusintegrator.cpp:
974         * qt/qdbusmessage.cpp:
975         * qt/qdbusmessage_p.h:
976         * qt/qdbusmessage.h: Change the behaviour of automatic
977         reply-sending: now a reply is always sent, unless the caller
978         didn't request one or if the user slot has already sent one.
979
980 2006-02-16  Robert McQueen  <robot101@debian.org>
981
982         * configure.in: Patch from Debian packages by Sjoerd Simons
983         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
984         arguments so it's possible to build both bindings in the
985         same tree.
986
987         * qt/Makefile.am: Fix truncated value so that make dist works.
988
989 2006-02-16  Robert McQueen  <robot101@debian.org>
990
991         * acinclude.m4, configure.in: Patch from Brad Hards
992         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
993         improving quoting, re-ordering a few checks, and a few other
994         aesthetic tidy-ups.
995
996 2006-02-16  Robert McQueen  <robot101@debian.org>
997
998         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
999         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1000         assertion that the next element to read from the iter is fixed in
1001         size. This is not the case when you are at the end of the iter,
1002         because the next element type is INVALID.
1003
1004         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1005         a bogus assert which means that you may not initialise a 0-length
1006         string unless you provide a non-NULL pointer. This prevented
1007         you from marshalling messages containing zero-length arrays in
1008         some cases.
1009
1010         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1011         from Rob to correct bogus asserts when trying to demarshal an
1012         array and get_fixed_array got you 0 elements. Append nothing to
1013         the GArray in this case.
1014
1015         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1016         an empty array via the glib bindings. Without all of the above
1017         patches, this new test fails.
1018
1019 2006-02-16  Robert McQueen  <robot101@debian.org>
1020
1021         * glib/dbus-gmain.c: Make the previous commit compile.
1022
1023         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1024         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1025         specify sender_keyword="foo", path_keyword="bar" when adding
1026         a signal listener, so that you can bind to signals generically
1027         but still do something useful in your callback.
1028
1029         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1030         chars so that they're not cast to chars and made negative. Thanks
1031         to Jakub Stachowski for reporting this and testing the fix.
1032
1033 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1034
1035         * dbus/dbus-glib.h:
1036         * glib/dbus-gmain.h:
1037         (dbus_g_connection_open): new method for openning
1038         a connection to an arbitrary address in the glib bindings
1039
1040         * ChangeLog: checkin last entry which doesn't seem to be commited
1041
1042 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1043
1044         * tools/dbus-launch.c: Fixed sh syntax output
1045
1046 2006-02-13  Robert McQueen  <robot101@debian.org>
1047
1048         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1049         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1050         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1051         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1052         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1053         missing piece of the glib bindings jigsaw puzzle. This modifies
1054         the existing specialised types to have N type parameters (rather
1055         than the current 1 or 2 for arrays and dictionaries respectively).
1056         You can then use this to get a glib type to represent any arbitrary
1057         D-Bus struct type using dbus_g_type_get_struct. The only
1058         implementation of these types is with GValueArrays as before,
1059         but it's now possible to store these in arrays, emit them in
1060         signals, etc.
1061
1062 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1063
1064         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1065         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1066         <thiago.macieira at trolltech.com>
1067
1068 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1069
1070         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1071         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1072
1073 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1074
1075         * bus/connection.c (bus_connections_expect_reply): Make
1076         pending reply limit not common to all connections (Bug #5416)
1077         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1078
1079 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1080
1081         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1082
1083 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1084
1085         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1086         patch from Doug Goldstein <cardoe at gentoo.org>
1087
1088 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1089
1090         * mono/Arguments.cs: Fix a magic number in the mono bindings
1091         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1092
1093 2006-01-27  Robert McQueen  <robot101@debian.org>
1094
1095         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1096         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1097         when generating the client-side methods, instead of overloading
1098         CSymbol which broke everything horribly. My apologies.
1099
1100 2006-01-27  Robert McQueen  <robot101@debian.org>
1101
1102         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1103         by me and Rob Taylor to add a simple_free function to D-Bus map
1104         and collection types, which allows those types which can be freed
1105         with a GDestroyNotify (such as GHashTables and GArrays, but not
1106         GPtrArrays) to be stored as the values in hashtables.
1107
1108         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1109         Patch by Rob Taylor to add nested dicts to the glib tests to check
1110         the above code works, and appears not to leak when called repeatedly.
1111
1112 2006-01-27  Robert McQueen  <robot101@debian.org>
1113
1114         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1115         to free a D-Bus allocated string with dbus_free () instead of
1116         g_free ().
1117
1118 2006-01-27  Iain Holmes  <iain@openedhand.com>
1119
1120         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1121         method from being called multiple times.
1122
1123 2006-01-19  Robert McQueen  <robot101@debian.org>
1124
1125         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1126         <rob.taylor@collabora.co.uk> to add support for generating bindings
1127         to arrays that are represented as GPtrArrays rather than GArrays (ie
1128         size-variable things, such as strings, objects, structs, etc).
1129
1130 2006-01-05  Robert McQueen  <robot101@debian.org>
1131
1132         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1133         <ricardo.kekki@movial.fi> to make it possible to inherit from
1134         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1135         a private part, and moving the setting of the DBusGProxyManager into a
1136         connection property, allowing proper GObject construction.
1137
1138 2006-01-05  Robert McQueen  <robot101@debian.org>
1139
1140         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1141         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1142         annotations when generating glib client bindings.
1143
1144 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1145
1146         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1147
1148         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1149
1150 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1151
1152         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1153
1154 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1155
1156         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1157
1158 2005-12-19  Ross Burton  <ross@openedhand.com>
1159
1160         * doc/dbus-tutorial.xml:
1161         Document the Glib client-side bindings, and list all possible annotations.
1162
1163 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1164
1165         * dbus/bus.c (dbus_bus_release_name): Add documentation
1166
1167 2005-12-06  Robert McQueen  <robot101@debian.org>
1168
1169         * python/service.py: s/sucessful/successful/ so we're allocating to
1170         and reading from the same variable. Oops.
1171
1172 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1173
1174         * Released 0.60
1175
1176 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1177
1178         * test/qt/Makefile.am: build from srcdir
1179
1180         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1181         Note - this code is wrong and needs to be fixed by the Qt binding
1182         developers.  The flags should be treated as bitfields and not enums.
1183
1184         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1185
1186 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1187
1188         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1189           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1190           in production code
1191
1192 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1193
1194         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1195         method for getting messages off the bus in the absence of a
1196         mainloop.  This method is much like 
1197         dbus_connection_read_write_dispatch except it does not dispatch
1198         the messages to a registered filter function.  Instead it
1199         allows a developer to process messages by directly popping
1200         them off the bus.
1201
1202 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1203
1204         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1205         the parser to continue instead of returning error
1206         (bus_desktop_file_load): Do not free parser data when
1207         parse_section_start or parse_key_value fails because it was 
1208         already freed by parser_free (patch from Carlos Garcia Campos  
1209         <carlosgc at gnome.org>)
1210
1211 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1212
1213         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1214         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1215         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1216         test/test-segfault.c, test/test-utils.c,
1217         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1218         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1219         Various cleanup of dead code and compiler warnings (patch from
1220         Kjartan Maraas <kmaraas at gnome.org>) 
1221
1222 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1223
1224         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1225         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1226
1227 2005-11-27  Robert McQueen  <robot101@debian.org>
1228
1229         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1230         part of the preceding one. Oops. Merge patch by Johan Hedberg
1231         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1232         on big-endian platforms.
1233
1234         * test/python/test-client.py: Add some 16-bit integers to the test
1235         values.
1236
1237 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1238
1239         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1240         method return message for property getters
1241
1242 2005-11-27  Robert McQueen  <robot101@debian.org>
1243
1244         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1245         with type v of an instance of dbus.Variant(foo, type='x') caused
1246         it to be boxed twice before sending over the bus.
1247
1248         * python/dbus_bindings.pyx, python/service.py,
1249         test/python/test-client.py: Update the constants for the new
1250         request_name flags, and update comments/test cases now that queueing
1251         is the default action.
1252
1253 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1254
1255         * configure.in:
1256         - Change version to 0.60 for impending release
1257         - upped the sonames because of ABI and API breakage
1258
1259 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1260
1261         * configure.in: Add test/name-test/Makefile to the generated
1262         Makefile list
1263
1264         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1265         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1266         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1267         not to queue an ower if it can't be the primary owner
1268
1269         * bus/bus.h: Add new internal BusOwner struct
1270
1271         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1272         to bus_registry_ensure and don't set the prohibit_replacement flag
1273         since they are now set per BusOwner and not per name.
1274         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1275         that returns the list of connections in a name's connection queue
1276         
1277         * bus/services.c (struct BusService): remove prohibit_replacement field
1278         (struct BusOwner): new struct for keeping track of queued connections
1279         and their associated flags for the queue
1280         (struct BusRegistry): add a BusOwner memory pool
1281         (bus_registry_new): initialize the BusOwner memory pool
1282         (bus_registry_unref): free the BusOwner memory pool
1283         (_bus_service_find_owner_link): new internal method for
1284         searching the queue for a specific connection
1285         (bus_owner_set_flags): new method for adding setting the flags on a
1286         bus owner
1287         (bus_owner_new): new method that creates a BusOwner object from the
1288         pool and sets its flags
1289         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1290         (bus_registry_ensure): Add the flags parameter
1291         (bus_registry_acquire_service): Switch from using raw connections to
1292         using the BusOwner struct
1293         Add new state machine for dealing with the new set of flags
1294         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1295         cancel_ownership, free_ownership_cancel_data, 
1296         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1297         restore_ownership, free_ownership_restore_data, 
1298         add_restore_ownership_to_transaction): Switch to using BusOwner 
1299         instead of raw connections
1300         (bus_service_add_owner): Add flags parameter
1301         Switch to using BusOwner instead of raw connections
1302         Add state machine for dealing with the new set of flags
1303         (bus_service_swap_owner): Swaps the first and second owners in the
1304         queue.  Used to make sure proper signals are sent when a service looses 
1305         or gains primary ownership.  We never insert an owner at the top of the
1306         queue.  Instead we insert it in the second position and then swap.
1307         (bus_service_remove_owner): Remove the owner from the queue sending
1308         out the NameLost and NameOwnerChanged signals if the we were the 
1309         primary owner
1310         (bus_service_get_primary_owners_connection): New method that extracts
1311         the connection from the primary owner
1312         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1313         connection
1314         (bus_service_get_allow_replacement): Changed from the old 
1315         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1316         primary owner and returns if it can be replaced or not
1317         (bus_service_set_prohibit_replacement): removed
1318         (bus_service_has_owner): returns TRUE if and owner with
1319         the specified connection exists in the queue
1320         
1321         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1322         method that only compiles if tests are enabled.  Allows us to get the 
1323         unique name of a connection so we can check it against the queue when
1324         doing regression tests
1325
1326         * bus/activation.c (bus_activation_send_pending_auto_activate),
1327         bus/dispatch.c (bus_dispatch),  
1328         bus/driver.c (bus_driver_handle_get_service_owner, 
1329         bus_driver_handle_get_connection_unix_user, 
1330         bus_driver_handle_get_connection_unix_process_id,
1331         bus_driver_handle_get_connection_selinux_security_context),
1332         bus/signals.c (connection_is_primary_owner): 
1333         use bus_service_get_primary_owners_connection instead of
1334         bus_service_get_primary_owner
1335
1336         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1337         _dbus_listen_unix_socket): Calculate the length of the socket
1338         path and use that instead of using a fixed length which was
1339         causing socket names to contain many trailing Nul bytes.
1340
1341         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1342         (dbus_g_method_get_sender): New method for extracting the sender 
1343         from a DBusGMethodInvocation
1344         (dbus_g_method_return_get_reply): changed name to 
1345         dbus_g_method_get_reply
1346         (dbus_g_method_return_send_reply): changed name to
1347         dbus_g_method_send reply
1348
1349         * doc/dbus-specification.xml: New docs that describe how the new
1350         queueing system works and talks about the changes to the how
1351         we specify socket names
1352
1353         * glib/examples/example-service.c, 
1354         glib/examples/example-signal-emitter.c,
1355         glib/examples/statemachine/statemachine-server.c:
1356         Changed the RequestName flags to the new system
1357
1358         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1359         regression test suite for testing various states of the new
1360         queueing system
1361         
1362 2005-11-15  Robert McQueen  <robot101@debian.org>
1363
1364         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1365         Taylor to add two methods, dbus_g_method_return_get_reply and
1366         dbus_g_method_return_send_reply, to allow you to get the reply
1367         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1368         and send it. The GLib bindings can't marshal a return value of
1369         something like a(s) if the array is empty - ultimately they should be
1370         made to heed the signature of the out arguments as the Python bindings
1371         now can, but this is a workable interim solution which might have
1372         other applications.
1373
1374 2005-11-15  Robert McQueen  <robot101@debian.org>
1375
1376         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1377         method to org.freedesktop.DBus to release a bus name or give up
1378         waiting in the queue for it.
1379
1380         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1381         dbus_bus_release_name method to send the ReleaseName method calls.
1382         Add constants for the return values to dbus/dbus-shared.h.
1383
1384         * doc/dbus-specification.xml: Document the new ReleaseName method
1385         in the specification.
1386
1387         * python/dbus_bindings.pyx: Add a low-level python binding for the
1388         release name method.
1389
1390         * python/exceptions.py, python/service.py: Make freeing BusName
1391         objects release the name. Add a NameExistsException, and fix a
1392         bug with creating UnknownMethodException.
1393
1394         * test/python/test-client.py: Add tests for freeing BusName
1395         objects causing names to be released.
1396
1397 2005-11-14  Robert McQueen  <robot101@debian.org>
1398
1399         * python/service.py: Include the traceback in the error reply when we
1400         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1401
1402 2005-11-14  David Zeuthen  <davidz@redhat.com>
1403
1404         Patch from Timo Hoenig <thoenig@suse.de>.
1405
1406         * bus/bus.c: I've recently investigated why the automatic reload
1407         of configuration files does not work as expected.
1408
1409         Currently, reloading configuration files does only work when
1410         running dbus-daemon with --nodaemon.  If we are running as daemon
1411         we're hitting a dnotify bug once we fork the process.
1412
1413         We're initializing the dnotify fds before calling fork().  Once
1414         the child process forked it does still have the fds (and they
1415         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1416         getting SIGIO as changes are made to the configuration files.
1417
1418         The attached patch moves the initialization of the dnotify fds to
1419         process_config_postinit().  This is safe for all current code
1420         paths and solves the dnotify disfunction.  If we're running
1421         dbus-daemon as daemon the fds for dnotify are now being
1422         initialized after fork() for the child process.
1423
1424         * configure.in: The current configure.in check for dnotify probes
1425         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1426         match for 'xlinux', too. Additionally I have adapted the configure
1427         option's style to match with the others.
1428
1429 2005-11-14  Robert McQueen  <robot101@debian.org>
1430
1431         * python/decorators.py, python/service.py: Add a new argument to the
1432         dbus.service.method decorator called sender_keyword, which if set,
1433         specifies the name of an argument which will be provided the bus
1434         name of the method caller.
1435
1436         * test/python/test-client.py, test/python/test-service.py: Add a
1437         method and test to check the sender_keyword functionality.
1438
1439 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1440
1441         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1442         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1443         Simons <sjoerd at luon.net>)
1444
1445         * AUTHORS: Add Robert McQueen for his work on the Python
1446         Bindings and other parts of D-Bus
1447
1448 2005-11-07  Robert McQueen  <robot101@debian.org>
1449
1450         * python/decorators.py: Change emit_signal function to use the
1451         signature annotation of the signal when marhsalling the arguments from
1452         the service. Fix a bug where the code checking signature length
1453         against argument length referenced the wrong variable.
1454
1455         * python/introspect_parser.py: Avoid adding the type signature of
1456         signal arguments to any methods which occur after them in the
1457         introspection data (!) by making the parser a little more careful
1458         about its current state.
1459
1460         * python/service.py: Remove debug prints from last commit (again :D).
1461
1462         * test/python/test-client.py, test/python/test-service.py: Add test
1463         signals with signature decorators to test the strict marshalling code
1464         gives errors at the right time. Could do with checking the signals
1465         actually get emitted too, given that the test does nothing with
1466         signals at the moment...
1467
1468 2005-11-07  Robert McQueen  <robot101@debian.org>
1469
1470         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1471         instances to stop madness of creating new instances representing
1472         the same bus connection all the time, rendering any tracking of
1473         match rules and bus names quite meaningless. Caught a bug where
1474         the private argument to SessionBus() and friends was being passed
1475         in as use_default_mainloop by mistake. Still some problems with
1476         multiple dbus_binding.Connection instances representing the same
1477         low-level connection (eg when you use both SessionBus() and
1478         StarterBus() in same process), but it's a lot better now than it
1479         was.
1480
1481         * python/dbus_bindings.pyx: Add constants with the return values
1482         for bus_request_name().
1483
1484         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1485         and retrieve the same instances for the same name, so deletion can be
1486         done with refcounting. Also now throws some kind of error if you
1487         don't actually get the name you requested, unlike previously...
1488
1489         * test/python/test-client.py: Add tests for instance caching of buses
1490         and bus name objects.
1491
1492 2005-11-04  Robert McQueen  <robot101@debian.org>
1493
1494         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1495         marshalling of boolean values. Add some booleans to the values in
1496         the test client.
1497
1498         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1499         argument to the dbus.service.method decorator, which allows you to
1500         name arguments to take two callback functions for replying with
1501         return values or an exception.
1502
1503         * test/python/test-client.py, test/python/test-service.py: Add test
1504         case using asynchronous method reply functions, both return values and
1505         errors, and from within both the function itself and from a mainloop
1506         callback.
1507
1508         * python/decorators.py, python/service.py: Perform checking that the
1509         number of method/signal arguments matches the number of types in the
1510         signature at class loading time, not when you first introspect the
1511         class.
1512
1513         * python/service.py: Remove debug print left by the last commit.
1514
1515 2005-11-03  Robert McQueen  <robot101@debian.org>
1516
1517         * python/service.py: Heavy refactoring of method invocation, with
1518         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1519         in favour of a new _message_cb that uses seperate functions for
1520         looking up the method to call, marshalling the return values, and
1521         sending exceptions as errors, and is easier to follow as a
1522         consequence.  Fixes some corner cases about returning things that
1523         don't match your declared out_signature, allows exceptions to define
1524         _dbus_error_name and have it be sent over the bus as the error name,
1525         and paves the way for cool stuff like heeding the message no reply
1526         flag, asynchronous method implementations, informing the method of the
1527         sender, and including backtraces in the error messages.
1528
1529         * test/python/test-client.py: Catch and print exceptions thrown in the
1530         async callback tests, rather than passing them to the low-level
1531         bindings to be ignored in a noisy and frustrating manner.
1532
1533 2005-11-03  Robert McQueen  <robot101@debian.org>
1534
1535         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1536         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1537         tweak others to be consistent.
1538
1539         * test/python/test-client.py: Tweak output of testInheritance.
1540
1541 2005-10-29  Robert McQueen  <robot101@debian.org>
1542
1543         * python/service.py: Major changes to allow multiple inheritance
1544         from classes that define D-Bus interfaces:
1545         
1546          1. Create a new Interface class which is the parent class of
1547             Object, and make the ObjectType metaclass into InterfaceType.
1548         
1549          2. Patch written with Rob Taylor to replace use of method_vtable
1550             with code that walks the class's __MRO__ (method resolution order)
1551             to behave like Python does when invoking methods and allow
1552             overriding as you'd expect. Code is quite tricky because
1553             we have to find two methods, the one to invoke which has the
1554             right name and isn't decorated with the /wrong/ interface,
1555             and the one to pick up the signatures from which is decorated
1556             with the right interface.
1557         
1558             The same caveats apply as to normal multiple inheritance -
1559             this has undefined behaviour if you try and inherit from two
1560             classes that define a method with the same name but are
1561             decorated with different interfaces. You should decorate
1562             your overriding method with the interface you want.
1563         
1564          3. Replace grungy introspection XML generation code in the metaclass
1565             with dictionaries that cope correctly with multiple inheritance
1566             and the overriding of methods. This also uses the signature
1567             decorations to provide correct introspection data, including
1568             the debut appearance of the types of your return values. :D
1569
1570         * test/python/test-client.py, test/python/test-service.py: Add a test
1571         case to try invoking an method that overrides one inherited from a
1572         D-Bus interface class.
1573
1574 2005-10-29  Robert McQueen  <robot101@debian.org>
1575
1576         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1577         Add checking for the end of struct character when marshalling a
1578         struct in MessageIter.append_strict.
1579
1580         * python/examples/example-service.py,
1581         python/examples/gconf-proxy-service.py,
1582         python/examples/gconf-proxy-service2.py: Update to use gobject
1583         mainloop directly rather than appearing to depend on gtk.
1584
1585         * python/test/test-client.py, python/test/test-server.py: Remove
1586         obsolete and broken test scripts for old bindings. We have up to date
1587         and working tests in test/python/.
1588
1589 2005-10-29  Robert McQueen  <robot101@debian.org>
1590
1591         * python/decorators.py: Add optional arguments to the method and
1592         signal decorators to allow you to specify the signature of arguments
1593         and return values. Preserve the doc strings of signal functions in the
1594         decorated version, for pydoc and friends.
1595
1596         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1597         parse_signature_block function with an iterable dbus.Signature()
1598         type. Fix a bug in MessageIter.append_strict where you could append
1599         anything by claiming it was a string.
1600
1601         * python/service.py: Use the out_signature decoration on methods to
1602         marshal return values, meaning you no longer require dbus.Array()
1603         or dbus.Dictionary() to indicate the type when returning empty
1604         arrays or dictionaries. Fix a bug where exceptions which are defined
1605         in __main__ are not turned into error replies.
1606
1607         * test/python/test-client.py, test/python/test-service.py: Add test
1608         for correct marshalling of return values according to out_signature.
1609         Fix a bug in the async call test where the error_handler is missing a
1610         self argument.
1611
1612 2005-10-29  Robert McQueen  <robot101@debian.org>
1613
1614         * glib/Makefile.am, glib/examples/Makefile.am,
1615         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1616         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1617
1618         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1619
1620         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1621         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1622         the command line.
1623
1624 2005-10-27  Ross Burton  <ross@openedhand.com>
1625
1626         * dbus/dbus-marshal-header.c:
1627         Remove dead code.
1628
1629         * glib/dbus-gobject.c:
1630         Stop compiler warning.
1631
1632 2005-10-25  Ross Burton  <ross@openedhand.com>
1633
1634         * dbus/dbus-auth.c:
1635         * dbus/dbus-server-unix.c:
1636         * dbus/dbus-transport-unix.c:
1637         * glib/dbus-gmain.c:
1638         * glib/dbus-gobject.c:
1639         Add some const keywords.
1640
1641 2005-10-25  Ross Burton  <ross@openedhand.com>
1642
1643         * doc/dbus-specification.xml:
1644         Document the NoReply annotation.
1645
1646         * glib/dbus-binding-tool-glib.h:
1647         * glib/dbus-binding-tool-glib.c:
1648         Respect the NoReply annotation.
1649
1650 2005-10-24  Robert McQueen <robot101@debian.org>
1651
1652         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1653         derive from unicode instead of str, and encode/decode UTF-8 when
1654         marshalling/unmarshalling bus messages
1655
1656         * python/introspect_parser.py: encode introspection data as UTF-8
1657         before passing the buffer into libxml2
1658
1659         * test/python/test-client.py: add unicode test strings
1660
1661         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1662         ignore generated python test files
1663
1664 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1665
1666         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1667         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1668         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1669
1670         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1671         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1672         when constructing struct signatures
1673
1674         * python/_dbus.py (Bus): handle private connections using the
1675         private keyword in the constructor. defaults to private=False
1676         (Bus::close): new method to close a connection to the bus
1677
1678         * python/dbus_bindings.pyx (Connection::close): renamed method
1679         was previously called disconnect
1680         (bus_get): now supports getting a private connection
1681
1682         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1683         keyword is set to True.  if it is, execute the method without waiting
1684         for a reply
1685         (ProxyObject::_introspect_execute_queue): new method for executing
1686         all the pending methods that were waiting for the introspect to
1687         finish.  this is called when introspect either succeeds or fails
1688         (ProxyObject::_introspect_error_handler): call queued methods
1689
1690 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1691
1692         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1693         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1694
1695         * python/service.py (Object::_message_cb): handle exceptions correctly
1696         by sending them over the wire to the calling app.  This makes sure
1697         the client returns immediately instead of waiting the 15 seconds to
1698         timeout.
1699
1700         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1701         Add a test to benchmark how long it takes to introspect a service and 
1702         call a method which returns a large element (pretty fast)
1703
1704         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1705         method which pushes a lot of data
1706
1707 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1708
1709         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1710         reclaim memory outside of the loop and use del istead of just setting
1711         the key to None
1712
1713 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1714
1715         * python/service.py (ObjectType::_reflect_on_signal): Always close
1716         signal tag even when there are no arguments
1717
1718 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1719
1720         * configure.in: Set mono, mono-docs and Qt3 to default
1721         to no instead of auto when building.  These bindings do not
1722         have full time maintainers and will not be supported for the
1723         1.0 release.
1724
1725 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1726
1727         patches from Michael Krivoruchko <misha at sun.com>: 
1728         
1729         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1730         _dbus_connection_message_sent, 
1731         _dbus_connection_send_preallocated_unlocked_no_update, 
1732         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1733         is NULL when calling _dbus_verbose
1734
1735         * configure.in: check for functions getpeerucred and getpeereid
1736
1737         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1738         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1739         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1740         Patch was only tested on Solaris 10 x86 so it might be issues
1741         with other platforms (i.e. BSDs and MacOSX)
1742         
1743
1744 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1745
1746         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1747         instead of marshal basic so we can handle recursive types in a variant
1748
1749         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1750         in variants
1751
1752         * test/glib/test-service-glib.c, test-service-glib.xml
1753         (my_object_echo_variant [EchoVariant], 
1754         my_object_process_variant_of_array_of_ints123
1755         [ProcessVariantOfArrayOfInts123]): 
1756         Add two test methods
1757
1758         * python/introspect_parser.py: New module for parsing introspect
1759         data.
1760
1761         * python/dbus_bindings.pyx:
1762         (various places): when throwing errors fix to use errormsg instead 
1763         of message local variable because Pyrex can get confused with other 
1764         message variables (initial patch by Robert McQueen 
1765         <robert.mcqueen at collabora.co.uk>)
1766         (MessageIter::parse_signature_block): new method for getting the next
1767         block in a signiture.
1768         (MessageIter::append_strict): new method for appending values strictly
1769         using the passed in signature instead of guessing at the type
1770         (MessageItter:: append_dict, append_struct, append_array): use 
1771         signatures to marshal children if the signature is available
1772         
1773         * python/exceptions.py (IntrospectionParserException): new exception
1774
1775         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1776         introspected signatures if available, else we fall back to the
1777         old way of doing things.
1778         (ProxyObject::_introspect_reply_handler ): parse introspection data
1779         
1780         * python/service.py (ObjectType::_reflect_on_method): Properly
1781         terminate <method> if there are no args in the reflection data
1782
1783         * test/python/test-client.py: add tests for talking with the GLib
1784         test server.  This gives us better coverage for introspection since
1785         python to python will always generate arguments as variants.  It also
1786         allows us to test the robustness of the GLib bindings and interlanguage
1787         communications.
1788
1789         
1790 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1791
1792         * bus/driver.c (bus_driver_handle_introspect): Add signals
1793         to the introspect data. (patch from Daniel P. Berrange 
1794         <dan at berrange.com>)
1795
1796         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1797         
1798         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1799         _dbus_connection_run_builtin_filters): Changed these to
1800         be unlock_no_update functions and call 
1801         _dbus_connection_send_unlocked_no_update instead of
1802         dbus_connection_send to avoid locking errors.
1803         
1804         * doc/TODO: Removed the make Ping test TODO
1805         
1806 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1807
1808         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1809         We now copy the message from a DBusError and then free 
1810         the error object befor throwing the error
1811
1812         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1813         DBusBindingOutputMode enum which was causing a warning.
1814         #include <time.h> so using time_t is explicitly defined
1815
1816 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1817
1818         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1819         - dbus/dbus-bus.c
1820         (internal_bus_get): new method that take over the heavy lifting
1821         of dbus_bus_get and adds the ability to get a private connection
1822         to the bus
1823         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1824         interface as in previous versions
1825         (dbus_bus_get_private): new method that is a wrapper to 
1826         internal_bus_get to get a private connection to the bus
1827
1828         - dbus/dbus-bus.h
1829         (dbus_bus_get_private): add as a public libdbus interface
1830
1831         - dbus-1.pc.in: output system_bus_default_address and 
1832         sysconfdir variables so apps can use them when compiling
1833
1834 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1835         * dbus/qt: New Qt bindings
1836
1837 2005-09-12  Waldo Bastian  <bastian@kde.org>
1838
1839         * dbus/dbus-marshal-validate.c,
1840         doc/dbus-specification.xml, test/Makefile.am,
1841         test/test-names.c: allow hyphens in bus names.
1842
1843 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1844
1845         * test/data/auth/fallback.auth-script: we don't
1846         retry the EXTERNAL method when we know its going
1847         to fail anymore.
1848
1849 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1850
1851         * dbus/dbus-connection-internal.h: rename
1852         (add|remove|toggle)_(watch|timeout) to unlocked()
1853         
1854         * dbus/dbus-connection.c: ditto.
1855         
1856         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1857         Update some callers for the renaming.
1858
1859 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1860
1861         * dbus/dbus-auth.c: (record_mechanisms): don't
1862         retry the first auth mechanism because we know
1863         we're just going to get rejected again.
1864         
1865         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1866         Fix thinko ... and what a nasty little bugger to
1867         track down you were ...
1868
1869         * dbus/dbus-connection.c:
1870         (_dbus_connection_add_watch),
1871         (_dbus_connection_remove_watch): add note about
1872         these needing the connection to be locked.
1873         (_dbus_connection_get_dispatch_status_unlocked):
1874         set status to DATA_REMAINS when we queue the
1875         disconnected message.
1876         
1877         * bus/dispatch.c:
1878         (bus_dispatch): fix warning.
1879         (check_existent_service_no_auto_start):
1880         Expect ChildSignaled error too.
1881         (check_existent_hello_from_self): fix another
1882         couple of warnings.
1883         
1884 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1885
1886         Patches from James Willcox <snorp@snorp.net>
1887
1888         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1889
1890         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1891         support array "out" parameters.
1892
1893         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1894         for 16-bit int support.
1895
1896 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1897
1898         * Released 0.50
1899
1900         * Patch from Steve Grubb:
1901         - bus/activation.c (bus_activation_service_reload_test): clean up
1902         some indentation
1903         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1904         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1905         buffer overflows in the test suite.  This is non critical because
1906         it can not be exploited and this code is only run when doing a 
1907         make check.
1908
1909         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1910         - configure.in: Don't check and link against kdecore, only qt headers
1911         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1912         - gcj/org/freedesktop/dbus/Makefile.am:
1913         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1914         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1915         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1916         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1917         - tools/Makefile.am: Add platform extentions to binaries 
1918         (i.e. .exe on windows)
1919
1920         * configure.in: 
1921         - Make it so if no suitable version of python is found we only 
1922         disable building python instead of exiting the configure script
1923         - Require version 2.4 of glib for glib bindings
1924         - Up version to 0.50
1925
1926         * python/__init__.py: Sync version with libdbus to (0,50,0)
1927         
1928 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1929
1930         * dbus/dbus-object-tree.c (find_subtree_recurse):
1931         a couple of optimizations (bug #710):
1932         - do a binary search in the tree
1933         - insert a new child at the right place directly, no need for
1934           qsort anymore
1935         - do the "double alloc" thing when allocating children
1936
1937 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1938
1939         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1940
1941         * python/dbus_bindings.pyx: Memory management foo
1942         (global): remove hacky _user_data_references global list
1943         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1944         tuples. Unref user_data
1945         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1946         (Connection::__del__): Remove and replace with __dealloc__ method
1947         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1948         to keep tuple from being deallocated instead of the global var hack
1949         (Connection::register_object_path): Stuff user_data into a tuple.
1950         Use Py_INCREF to keep tuple from being deallocated instead of the 
1951         global var hack
1952         (Connection::register_fallback): Stuff user_data into a tuple.
1953         Use Py_INCREF to keep tuple from being deallocated instead of the 
1954         global var hack
1955         (GIL_safe_pending_call_notification): Don't unref the message
1956         because it gets unreffed when going out of scope.  Py_XDECREF
1957         the user_data
1958         (PendingCall::__del__): Remove and replace with __dealloc__ method
1959         (PendingCall::set_notify): ref the pending call because we will
1960         need it to stick around for when the notify callback gets called
1961         (Message::__del__): Remove and replace with __dealloc__ method
1962
1963         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1964         gthreads_init to match up with the dbus call
1965
1966         * python/glib.py (init_threads): Changed to threads_init to match
1967         up with gobject.threads_init().  init_threads is kept for backwards
1968         compat but will most likely be deprecated in the future
1969
1970         * test/python/test-client.py: 
1971         - revamp to use Python's unittest functionality
1972         - add async call tests
1973         - setup threads in glib and dbus so we make sure locks are working
1974         
1975 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1976
1977         * python/dbus_bindings.pyx 
1978         (_pending_call_notification, cunregister_function_handler, 
1979         cmessage_function_handler): All callback functions have been rearranged 
1980         to workaround a bug in Pyrex when working with the GIL which is Python's 
1981         global lock when dealing with threads.  They have been split into
1982         a wrapper function (which assumes the name of the old function) and
1983         a _GIL_safe_<function name> function which contains the functionality
1984         of the old function.  This ensures that Pyrex does not write code
1985         the lock is released.
1986         
1987
1988 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1989
1990         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1991         GIL global lock when calling back into Python
1992
1993 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1994
1995         * Release 0.36.2
1996
1997         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1998
1999         * bus/policy.c (bus_policy_allow_user): change default "user is
2000         allowed" to be "user has same uid as the bus itself"; any
2001         allow/deny rules will override.
2002
2003         * bus/session.conf.in: don't allow all users, since now by default
2004         the user that ran the bus can connect.
2005
2006 2005-08-26  Colin Walters  <walters@verbum.org>
2007
2008         * tools/dbus-print-message.c (print_message): Flush stdout
2009         after printing a message, so that redirecting to a file, then
2010         hitting Ctrl-C works.
2011
2012 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2013
2014         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2015         (EmptyMessage): new class that subclasses Message.  This is a workaround
2016         to a Pyrex bug that fails to call __del__ when the Message object goes out
2017         of scope.  For some reason subclassing Message fixes this bug
2018         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2019         - s/Message(_create=0)/EmptyMessage everywhere else
2020         
2021         * test/python/test-{server|client}.py: add the python/.libs directory
2022         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2023         get picked up from the system
2024
2025 2005-08-25  Colin Walters  <walters@verbum.org>
2026
2027         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2028         to Ryan Lortie for the suggestion.
2029
2030 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2031
2032         * test/python: Add python regression test
2033
2034         * configure.in: Add test/python/Makefile
2035
2036         * test/Makefile.am: Add the python directory to SUBDIRS
2037
2038 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2039
2040         * Release 0.36.1
2041
2042         * python/_dbus.py: 
2043         (Interface::connect_to_signal): propigate keywords for match on args
2044         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2045
2046         * python/proxies.py (ProxyObject::connect_to_signal):
2047         propigate keywords for match on args
2048
2049         * Makefile.am: point everything to pyexecdir since python borks
2050         on multilib
2051
2052 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2053
2054         * Release 0.36
2055
2056 2005-08-23  Colin Walters  <walters@verbum.org>
2057
2058         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2059
2060 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2061
2062         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2063         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2064         of defining DBusConnection ourselves.
2065
2066 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2067
2068         * python/dbus.pth: New path file to fix up problems when installing
2069         c libraries to lib64 and python files to lib.
2070
2071         * python/Makefile.am: install dbus.pth in the correct spot
2072
2073 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2074         * ChangeLog: clean up my last entry a bit
2075
2076         * doc/introspect.xsl: New stylesheet for converting introspection data
2077         into browser renderable xhtml. Contributed by Lennart Poettering.
2078
2079         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2080         Poettering.
2081
2082         * doc/dbus-tutorial.xml: 
2083         - Add Colin Walter to the Authors section for authoring the GLib
2084         section
2085         - Add descriptions of the new signature and type functionality
2086         in the Python complex type mapping section
2087         - Add a sidenote on the new args matching functionality in 
2088         the Python bindings
2089         - Fixed up some of the examples to use the gobject.MainLoop
2090         instead of gtk.main
2091         
2092         * python/_dbus.py:
2093         (Bus::_create_args_dict): New. Converts a hash of arg matches
2094         to a more useable format
2095         (Bus::add_signal_receiver): add a **keywords parameter for catching
2096         arg match parameters
2097         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2098         arg match parameters
2099         
2100         * python/matchrules.py:
2101         (MatchTree::exec_matches): Check for arg matches
2102         (SignalMatchRule::add_args_match): New method
2103         (SignalMatchRule::execute): Added args_list parameter as an optimization
2104         so we don't have to marshal the args more than once
2105         (SignalMatchRule::match_args_from_list): New method that checks to see
2106         if the rule's arg matches match an argument list.  Only arguments
2107         set in the rule are checked.
2108         (SignalMatchRule::match_args_from_rule): New method that checks to see
2109         if the rule's arg matches match another rule's.  All args have to match
2110         in order for this method to return true.  If either rule has more args
2111         then it is not a match.
2112         (SignalMatchRule::is_match): Add args match
2113         (SignalMatchRule::repr): Add args to the final output if they exist
2114
2115 2005-08-17  Ross Burton  <ross@burtonini.com>
2116
2117         * glib/dbus-gproxy.c:
2118         (dbus_g_proxy_call_no_reply): unref the message once sent.
2119         (dbus_g_proxy_call): protect against NULL proxy.
2120
2121 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2122
2123         * python/__init__.py: Version updated (0, 43, 0)
2124         
2125         * python/dbus_bindings.pyx: 
2126         - Fixed type objects to have self passed into __init__
2127         - Added the Variant type
2128         - Add the ability to specify types or signatures for Array, Variant 
2129         and Dictionary
2130         (Connection::send_with_reply_handlers): return a PendingCall object
2131         (_pending_call_notification): handle the case when an error is returned 
2132         without an error message in the body
2133         (MessageIter::get_boolean): return True or False instead of an integer
2134         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2135         and add checks for objects with embeded signatures or types (Array, 
2136         Variant and Dictionary)
2137         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2138         (MessageIter::append_dict): handle embeded types or signatures
2139         (MessageIter::append_array): handle embeded types or signatures
2140         (MessageIter::append_variant): new method
2141         
2142         * python/proxies.py:
2143         (DeferedMethod): New. Dummy executable object used when queuing calls 
2144         blocking on introspection data
2145         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2146         or shorter timeouts for method calls
2147         (ProxyObject): Add first pass at an introspection state machine
2148         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2149         introspection. 
2150         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2151         the usual mechanisms for sending messages.  This is to avoid a deadlock
2152         where the Intospect call would be queued waiting for the Introspect 
2153         call to finish ;-)
2154         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2155         when introspection returns with no error
2156         (ProxyObject::_introspect_error_handler): New.  This method is called 
2157         when introspection encounters an error
2158         (ProxyObject::__getattr__): Code to handle different introspection 
2159         states.  Queue async calls or block blocking calls if we are 
2160         introspecting.  Pass through as normal if we are not or are done with 
2161         introspecting.
2162         
2163         * python/service.py: Import signal and method from decorators.py
2164
2165         * python/types.py: Add Variant type
2166
2167 2005-08-16  Colin Walters  <walters@verbum.org>
2168
2169         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2170         DBusError message is NULL.
2171
2172 2005-08-09  Havoc Pennington  <hp@redhat.com>
2173
2174         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2175         malloc'd copy of the name parameter
2176
2177 2005-08-09  Havoc Pennington  <hp@redhat.com>
2178
2179         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2180         warning if the reply serial is set to 0
2181
2182 2005-08-04  Colin Walters  <walters@verbum.org>
2183
2184         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2185         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2186         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2187         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2188         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2189         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2190         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2191         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2192         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2193         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2194         
2195         Prefix name with _ to ensure they're not exported.  All callers
2196         updated.
2197
2198         * glib/dbus-gvalue.c (typecode_to_gtype)
2199         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2200         (signature_iter_to_g_type_dict)
2201         (signature_iter_to_g_type_array)
2202         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2203         (dbus_gtypes_from_arg_signature):
2204         Move to dbus-gsignature.c.
2205
2206         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2207         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2208         (dbus_binding_tool_output_glib_client): Ditto.
2209
2210         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2211         and dbus-gsignature.h
2212
2213         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2214         unused variable.
2215
2216 2005-08-03  Colin Walters  <walters@verbum.org>
2217
2218         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2219         catch any incompatible changes accidentally made.
2220
2221 2005-08-03  Havoc Pennington  <hp@redhat.com>
2222
2223         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2224         typo, from Julien Puydt
2225
2226         * bus/connection.c (bus_connection_disconnected): we were always
2227         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2228
2229 2005-08-01  Colin Walters  <walters@verbum.org>
2230
2231         Patch from Joe Markus Clarke:   
2232         
2233         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2234         use-after-free.
2235
2236 2005-08-01  Colin Walters  <walters@verbum.org>
2237         
2238         Patch from Joe Markus Clarke:   
2239         
2240         * tools/dbus-send.c (main): 
2241         
2242         Don't use C99 style initializers (bug #3933).
2243         
2244 2005-08-01  Colin Walters  <walters@verbum.org>
2245
2246         Patch from Joe Markus Clarke:   
2247
2248         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2249         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2250         * glib/dbus-gobject.c (write_interface):
2251
2252         Don't use C99 style initializers (bug #3933).
2253
2254 2005-07-31  Havoc Pennington  <hp@redhat.com>
2255
2256         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2257         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2258
2259 2005-07-30  Havoc Pennington  <hp@redhat.com>
2260
2261         * fix a bunch of Doxygen warnings and mistakes
2262
2263 2005-07-30  Havoc Pennington  <hp@redhat.com>
2264
2265         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2266         DBUS_BUILD_TESTS since it's now used in production code
2267
2268 2005-07-29  Havoc Pennington  <hp@redhat.com>
2269
2270         * test/glib/test-profile.c (write_junk): initialize the junk
2271         buffer so valgrind doesn't have a breakdown
2272
2273 2005-07-29  Havoc Pennington  <hp@redhat.com>
2274
2275         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2276         (match_rule_matches): remove unused arg
2277         (test_matching): add tests for match_rule_matches()
2278
2279         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2280         do arg0='foo' arg5='bar' in the match rules
2281         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2282
2283         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2284
2285 2005-07-29  Ross Burton  <ross@openedhand.com>
2286
2287         * dbus/dbus-connection.c:
2288         Don't create a DBusCondVar which is never used.
2289
2290 2005-07-27  Ross Burton  <ross@openedhand.com>
2291
2292         * dbus/dbus-message.c:
2293         Reduce the size of the maximum cached message to 10K.
2294
2295 2005-07-25  Ross Burton  <ross@openedhand.com>
2296
2297         * glib/dbus-gproxy.c:
2298         Remove matches when all proxies are unregistered.
2299
2300 2005-07-24  Colin Walters  <walters@verbum.org>
2301
2302         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2303         typedata; recursive arrays won't have it.
2304
2305         * test/glib/test-dbus-glib.c:
2306         * test/glib/test-service-glib.c:
2307         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2308         
2309 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2310
2311         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2312         proxies.py, service.py: Cleanup of code after running it through the
2313         pyflakes code checker mostly dealing with undefined names.  
2314         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2315
2316 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2317
2318         * NEWS: Update to 0.35.2
2319
2320 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2321
2322         * python/_dbus.py: Remove import of the dbus.services
2323         module as it no longer exists (patch from Dimitur Kirov)
2324
2325         * python/service.py (Object::__init__): Fixed typo
2326         s/name/bus_name (patch from Dimitur Kirov)
2327
2328         * python/examples/example-signal-emitter.py: import dbus.glib
2329         to get the main loop and use glib mainloop instead of gtk so
2330         X doesn't have to be running.
2331
2332         * python/examples/example-signal-recipient.py: import dbus.glib
2333         to get the main loop and use glib mainloop instead of gtk so
2334         X doesn't have to be running. Import the decorators module
2335         directly.
2336
2337         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2338         didn't pick up on but are needed to build
2339
2340         * configure.in: upped version to 0.35.2
2341
2342         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2343         added Colin Walters' SELinux API rename patch from head 
2344         s/unix sercurity context/selinux security context/
2345
2346 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2347
2348         * python/Makefile.am: dbus_binding.pxd.in should be included 
2349         in EXTRA_DIST not dbus_binding.pxd
2350         fix up $(srcdir) hopefully for the last time
2351
2352         * NEWS: Update to 0.35.1
2353
2354 2005-07-16  Colin Walters  <walters@verbum.org>
2355
2356         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2357         from bus_driver_handle_get_connection_unix_security_context.  Update for
2358         error usage.
2359         (message_handlers): Update for renames.
2360
2361         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2362         _dbus_string_init failure correctly.
2363         (bus_selinux_append_context): Convert SID to context.  Append it
2364         as a byte array.
2365         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2366         hasn't been called.
2367
2368         * bus/selinux.h: Update prototype.
2369
2370         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2371         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2372
2373 2005-07-15  Colin Walters  <walters@verbum.org>
2374
2375         * doc/TODO: Add note about convenience wrappers.
2376
2377 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2378
2379         * NEWS: Update to 0.35
2380
2381 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2382
2383         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2384         so distcheck doesn't fail
2385
2386         * glib/examples/Makefile.am: Add example-service.xml and 
2387         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2388
2389         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2390         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2391
2392         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2393         compiler looks in the right places during distcheck
2394
2395 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2396
2397         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2398         to fail
2399
2400 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2401
2402         * python/examples/example-service.py,
2403         python/examples/example-signal-emitter.py: Fixed up examples
2404         for API changes
2405
2406 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2407
2408         * python/__init__.py: Upped to version (0,42,0) because of
2409         the API change
2410
2411 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2412
2413         * ChangeLog: fix date in last entry
2414
2415         * configure.in, bus/system.conf.in: add the ability to configure 
2416         the system bus user at compiletime with the --with-dbus-user flag
2417         (patch from Kristof Vansant)
2418
2419 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2420
2421         * bus/dispatch.c, test/test-service.c: Add testcase
2422         for sending messages to oneself (TODO item).
2423
2424         * python/service.py (class Object): Swap ordering of bus_name 
2425         and object_path parameters to better support inheritance.
2426
2427         * doc/dbus-tutorial.xml: change Python docs to reflect change
2428         in parameter ordering and fix the inheritance section.
2429
2430         * doc/TODO: remove sending message to oneself TODO item
2431
2432 2005-07-15  Ross Burton  <ross@openedhand.com>
2433
2434         * glib/dbus-gproxy.c:
2435         Fix a leak when calling methods via the proxy.
2436
2437 2005-07-15  Colin Walters  <walters@verbum.org>
2438
2439         * bus/selinux.c (bus_selinux_append_context): Wrap in
2440         HAVE_SELINUX.
2441
2442 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2443
2444         * python/_dbus.py (Bus::remove_signal_receiver):
2445         don't add a callback to the match if none has been passed in
2446         
2447         * python/matchrules.py (SignalMatchTree::remove): if the rule
2448         being matched does not have a callback treat it as a wildcard
2449         fix matching logic
2450
2451         * doc/dbus-tutorial.xml: Add Python tutorial
2452
2453 2005-07-14  Colin Walters  <walters@verbum.org>
2454
2455         * bus/driver.c
2456         (bus_driver_handle_get_connection_unix_security_context): New function.
2457         (message_handlers): Add.
2458
2459         * bus/selinux.c (bus_selinux_append_context): New function; appends
2460         security context to message.
2461
2462         * bus/selinux.h: Prototype.
2463
2464         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2465
2466 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2467
2468         * bus/activation.c: clean up all tabs to be 8 spaces 
2469         (bus_activation_activate_service): make sure we clean up
2470         if activation fails
2471
2472         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2473         (check_shell_fail_service_auto_start): New function
2474         tests to make sure we get fail properly when trying to auto start a service
2475         with a faulty command line
2476         (check_shell_service_success_auto_start): New function tests to make sure
2477         auto started services get the arguments on the command line
2478
2479         * test/test-shell-service.c: Added service for testing auto-starting with 
2480         command line arguments
2481
2482         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2483         test/data/valid-service-files/debug-shell-echo-success.service.in:
2484         Added service files for testing auto-starting with command line arguments
2485
2486         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2487
2488 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2489
2490         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2491         
2492         * dbus/Makefile.am: added new files to build.
2493
2494         * bus/activation.c (bus_activation_activate_service): support
2495         activation commands with parameters.
2496
2497         * test/shell-test.c: added test program for the shell parsing
2498         code.
2499
2500 2005-07-13  David Zeuthen  <davidz@redhat.com>
2501
2502         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2503         64 bit signed and unsigned parameters
2504
2505 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2506
2507         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2508
2509         * python/service.py (class Name): renamed BusName to make it clearer
2510         what the object is for (a name on the bus)
2511
2512         * python/examples/example-service.py,
2513         python/examples/example-signal-emitter.py: change the Name object to
2514         BusName
2515
2516 2005-07-12  Colin Walters  <walters@verbum.org>
2517
2518         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2519
2520         * tools/dbus-launch.c: Include sys/select.h.
2521
2522 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2523         * python/dbus_bindings.pyx.in: removed
2524
2525         * python/dbus_bindings.pyx: Added.
2526         - Fixed some memleaks (patch from 
2527         Sean Meiners <sean.meiners@linspireinc.com>)
2528         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2529         own pxd file (Pyrex definition)
2530         - Broke out glib dependancies into its own pyx module
2531         
2532         * python/dbus_bindings.pdx: Added.
2533         - Defines C class Connection for exporting to other modules
2534
2535         * python/dbus_glib_bindings.pyx: Added.
2536         - New module to handle lowlevel dbus-glib mainloop integration
2537
2538         * python/glib.py: Added.
2539         - Registers the glib mainloop when you import this module
2540
2541         * python/services.py: Removed (renamed to service.py)
2542         
2543         * python/service.py: Added.
2544         - (class Server): renamed Name
2545
2546         * python/__init__.py: Bump ro version (0,41,0)
2547         -don't import the decorators or service module
2548         by default.  These now reside in the dbus.service namespace
2549
2550         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2551         setup function on creation 
2552
2553         * python/examples/example-service.py,
2554         python/examples/example-signal-emitter.py: update examples
2555
2556         * python/examples/gconf-proxy-service.py,
2557         python/examples/gconf-proxy-service2.py: TODO fix these up
2558
2559         * doc/TODO: Addition
2560         - Added a Python Bindings 1.0 section
2561         - added "Add match on args or match on details to match rules"
2562
2563
2564 2005-07-12  Colin Walters  <walters@verbum.org>
2565
2566         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2567         (statemachine-glue.h): 
2568         * glib/examples/Makefile.am (example-service-glue.h) 
2569         (example-signal-emitter-glue.h): 
2570         * glib/Makefile.am (dbus-glib-error-switch.h): 
2571         Add libtool --mode=execute so we use the built library instead
2572         of any installed one.
2573
2574 2005-07-11  Colin Walters  <walters@verbum.org>
2575
2576         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2577         (dbus_g_value_types_init): Remove assertion.
2578         (dbus_g_value_get_g_type, dbus_g_value_open)
2579         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2580         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2581         functions related to DBusGValue.  Now we marshal/demarshal
2582         structures as GValueArray.
2583         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2584         structures.
2585         (signature_iter_to_g_type_array): Don't call
2586         signature_iter_to_g_type_struct.
2587         (signature_iter_to_g_type_struct): Delete.
2588         (dbus_gvalue_to_signature): Delete.
2589         (dbus_gvalue_to_signature): New function with same name as other
2590         one; we can convert structures to signatures.
2591         (demarshal_valuearray): New function.
2592         (get_type_demarshaller): Use it.
2593         (demarshal_recurse): Delete.
2594         (marshal_proxy): New function.
2595         (marshal_map): Warn if we can't determine signature from type.
2596         (marshal_collection_ptrarray): Ditto.
2597         (marshal_collection_array): Ditto.
2598         (get_type_marshaller): Use marshal_valuearray.
2599         (marshal_recurse): Delete.
2600         (_dbus_gvalue_test): Add some tests.
2601
2602         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2603         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2604         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2605         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2606         (dbus_g_value_free): Remove prototypes.
2607
2608         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2609         G_TYPE_VALUE_ARRAY.
2610
2611         * glib/examples/example-service.c:
2612         * glib/examples/example-client.c: Implement GetTuple.
2613
2614         * test/glib/test-dbus-glib.c:
2615         * test/glib/test-service-glib.c:
2616         * test/glib/test-service-glib.xml: Add structure tests.
2617
2618 2005-07-10  Colin Walters  <walters@verbum.org>
2619
2620         * doc/TODO: Knock off some GLib items with this patch.
2621
2622         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2623         (_dbus_gvalue_signals_error): New functions.
2624
2625         * glib/dbus-gvalue-utils.h: Prototype them.
2626
2627         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2628         and change to not output const/retval flags for input args.  All
2629         callers updated.
2630         (invoke_object_method): Refactor to handle return values.  Add
2631         some more comments in various places.  Remove debug g_print.
2632
2633         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2634
2635         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2636         Handle G_TYPE_NONE.
2637         (compute_gsignature): New function; refactored from code from
2638         compute_marshaller and compute_marshaller_name.  Enhance to
2639         handle return values and async ops more cleanly.  Update for
2640         async ops returning NONE instead of BOOLEAN.
2641         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2642         and output appropriate string.
2643         (generate_glue): Handle return value annotation.  Also don't dump
2644         constness flag for input arguments.
2645
2646         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2647         files shared between installed library and utilities.
2648         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2649         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2650         binding tool can access gtype utility functions.
2651
2652         * test/glib/test-service-glib.c: 
2653         * test/glib/test-service-glib.xml: 
2654         * test/glib/test-dbus-glib.c: Add some tests for return values.
2655
2656 2005-07-09  Colin Walters  <walters@verbum.org>
2657
2658         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2659         argument if available, not method.
2660
2661         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2662         (invoke_object_method): First, remove some redundant
2663         GValues (object_value, error_value) in favor of working on
2664         array directly.  Second, rework constness to be less buggy.
2665         Now we iterate directly over the argument metadata instead
2666         of parallel iterating over output signature and metadata.
2667
2668         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2669
2670         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2671         annotation on input args.
2672         
2673 2005-07-09  Colin Walters  <walters@verbum.org>
2674
2675         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2676         Define.
2677
2678         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2679         annotation.
2680
2681         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2682         (method_dir_signature_from_object_info): Handle arg_iterate change.
2683         (write_interface): Ditto.
2684         (lookup_object_info): Don't barf if format_version is > 0.
2685         (invoke_object_method): Handle arg constness.
2686
2687         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2688         (arg_info_new): Create.
2689         (arg_info_unref): Destroy.
2690         (arg_info_get_annotations, arg_info_get_annotation) 
2691         (arg_info_add_annotation): New functions.
2692
2693         * glib/dbus-gidl.h: Prototype them.
2694
2695         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2696         args, disallow them in properties.
2697         (parse_annotation): Handle arg annotations.
2698
2699         * test/glib/test-service-glib.xml: 
2700         * test/glib/test-service-glib.c: Update to make some methods
2701         const.
2702
2703 2005-07-08  Colin Walters  <walters@verbum.org>
2704
2705         * test/glib/test-service-glib.xml: 
2706         * test/glib/test-service-glib.c:
2707         * test/glib/test-dbus-glib.c: Test a{sv}.
2708
2709         * glib/examples/statemachine/statemachine.c:
2710         * glib/examples/statemachine/statemachine-server.c:
2711         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2712         add progress bar, etc.
2713
2714         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2715         needed anymore due to generic array/map marshalling.
2716         (dbus_g_value_types_init): Don't register basic arrays or the
2717         string/string hash.
2718         (dbus_gtype_from_signature_iter): Don't try to recurse into
2719         variants.
2720         (dbus_gtype_to_signature): Check collection/map before type
2721         metadata.
2722         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2723         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2724         generic map creation/append functions instead of hash table
2725         specifically.
2726         (get_type_demarshaller): Handle maps.
2727         (demarshal_collection): Dispatch on collection type to either
2728         demarshal_collection_ptrarray or demarshal_collection_array.
2729         (get_type_marshaller): Handle maps.
2730         (marshal_collection): Dispatch collection type to either
2731         marshal_collection_ptrarray or marshal_collection_array.
2732         (_dbus_gvalue_test): New test.
2733
2734         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2735         (hash_free_from_gtype): Use it to free GValues.
2736         (hashtable_append): New function.
2737         (ptrarray_append): Fix prototype.
2738         (slist_append): Ditto.
2739         (_dbus_gvalue_utils_test): Extend tests.
2740
2741         * glib/dbus-gtype-specialized.c
2742         (dbus_g_type_specialized_init_append): Renamed from
2743         dbus_g_type_specialized_collection_init_append.  Remove const from
2744         value, since we steal it.
2745         (dbus_g_type_specialized_map_append): New function.
2746
2747         * glib/dbus-gtype-specialized.h: Update prototypes.
2748         Add DBusGTypeSpecializedMapAppendFunc.
2749
2750         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2751         _dbus_gvalue_test.
2752         
2753         * glib/dbus-gtest.h: Prototype it.
2754
2755 2005-07-08  Ross Burton  <ross@openedhand.com>
2756
2757         * dbus/dbus-glib.h:
2758         Add DBysGAsyncData for the async bindings.
2759
2760         * glib/dbus-binding-tool-glib.c:
2761         Re-enable the async bindings.
2762
2763         * test/glib/test-dbus-glib.c:
2764         Add a test for the generated async bindings.
2765
2766 2005-07-08  Colin Walters  <walters@verbum.org>
2767
2768         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2769         connection concept.
2770         
2771 2005-07-08  Colin Walters  <walters@verbum.org>
2772         
2773         * tools/Makefile.am: Kill of print-introspect in favor of using
2774         dbus-send --print-reply=literal.
2775
2776         * test/glib/test-service-glib.xml: 
2777         * test/glib/test-service-glib.c (my_object_get_objs): New test
2778         for "ao".
2779
2780         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2781         (main): Test GetObjs.
2782
2783         * glib/examples/statemachine/Makefile.am:
2784         * glib/examples/statemachine/sm-marshal.list:
2785         * glib/examples/statemachine/statemachine-client.c:
2786         * glib/examples/statemachine/statemachine-server.c:
2787         * glib/examples/statemachine/statemachine-server.xml:
2788         * glib/examples/statemachine/statemachine.c:
2789         * glib/examples/statemachine/statemachine.h:
2790         * glib/examples/statemachine/statemachine.xml:
2791
2792         New example.
2793
2794         * glib/examples/example-service.c (main): Move invocation
2795         of dbus_g_object_type_install_info earlier, to emphasize it
2796         should only be done once.
2797
2798         * glib/examples/example-signal-emitter.c (main): Ditto.
2799
2800         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2801
2802         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2803         (dbus_gvalue_marshal): Update prototypes.
2804
2805         * glib/dbus-gvalue.c: Update all marshalling functions to take
2806         const GValue instead of GValue.
2807         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2808         types.
2809         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2810         change.
2811         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2812         Return a newly-allocated string.
2813         (demarshal_proxy, demarshal_object_path, demarshal_object)
2814         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2815         we get the wrong types from message.
2816         (get_type_demarshaller): New function, extracted from
2817         dbus_gvalue_demarshal.
2818         (demarshal_collection): New function, demarshals generic
2819         collection.
2820         (dbus_gvalue_demarshal): Just invoke result of
2821         get_type_demarshaller.  Throw error if we don't have one.
2822         (marshal_garray_basic): Abort on OOM.
2823         (get_type_marshaller): New function, extracted from
2824         dbus_gvalue_marshal.
2825         (collection_marshal_iterator, marshal_collection): New functions;
2826         implements generic marshalling for an iteratable specialized
2827         collection.
2828         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2829
2830         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2831         G_TYPE_STRING.
2832         (ptrarray_value_from_gvalue): Ditto.
2833         (ptrarray_append, ptrarray_free): New functions.
2834         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2835         (slist_append, slist_end_append, slist_free): New functions.
2836         (dbus_g_type_specialized_builtins_init): Add append fuctions
2837         for GPtrArray and GSList.  Register GSList.
2838         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2839
2840         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2841         New.
2842         (dbus_g_type_specialized_collection_init_append)
2843         (dbus_g_type_specialized_collection_append)
2844         (dbus_g_type_specialized_collection_end_append): Prototype.
2845         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2846         end_append_func.
2847
2848         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2849         (dbus_g_type_specialized_collection_append) 
2850         (dbus_g_type_specialized_collection_end_append): New functions.
2851         (dbus_g_type_map_value_iterate): Take const GValue.
2852         (dbus_g_type_collection_value_iterate): Ditto.
2853
2854         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2855         _dbus_gvalue_utils_test.
2856         
2857         * glib/dbus-gtest.h: Prototype it.
2858
2859         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2860         using uninitialized owner_list.
2861         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2862         public API.
2863         (dbus_g_proxy_end_call_internal): Update to use error set
2864         from dbus_gvalue_demarshal instead of setting it here.
2865         (dbus_g_proxy_begin_call): Move return_if_fail here.
2866
2867         * glib/dbus-gobject.c (write_interface): Update for
2868         dbus_gtype_to_signature returning new string.
2869
2870         * configure.in: Add glib/examples/statemachine.
2871
2872 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2873
2874         * configure.in: Add a configure option, --with-console-auth-dir
2875         
2876         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2877         new setting.  Patch from Kay Sievers.
2878
2879 2005-07-06  Colin Walters  <walters@verbum.org>
2880
2881         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2882         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2883         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2884         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2885         Delete in favor of dbus_g_proxy_begin_call and
2886         dbus_g_proxy_cancel_call.
2887         (DBusGProxyCall, DBusGProxyCallNotify): New.
2888         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2889         data, and destroy function.  This replaces
2890         dbus_g_pending_call_set_notify.
2891         (dbus_g_proxy_cancel_call): Prototype.
2892         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2893
2894         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2895         pending_calls map.
2896         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2897         internal proxy for calls to the bus. Remove
2898         pending_nameowner_calls, now the internal proxy keeps track.
2899         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2900         pending_nameowner_calls.
2901         (got_name_owner_cb): Update prototype, and use
2902         dbus_g_proxy_end_call.
2903         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2904         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2905         favor of using internal proxy.
2906         (dbus_g_proxy_manager_unregister): Update to use
2907         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2908         (dbus_g_proxy_init): Initialize pending calls map.
2909         (dbus_g_proxy_constructor): New.
2910         (dbus_g_proxy_class_init): Add get/set property functions,
2911         constructor, and add NAME, PATH, and INTERFACE properties.
2912         (cancel_pending_call): New function.
2913         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2914         cancel them.
2915         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2916         (GPendingNotifyClosure): New structure.
2917         (d_pending_call_notify, d_pending_call_free): Moved here from
2918         dbus-glib.c.
2919         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2920         ordering.
2921         (manager_begin_bus_call): New internal function for talking to
2922         internal bus proxy.
2923         (dbus_g_proxy_new): Construct object using GObjet properties.
2924         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2925         Create closure of same, and insert call into map of pending calls.
2926         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2927         call.  Look up pending call in current set.  Remove it when we've
2928         completed.
2929         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2930         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2931         and destroy function directly.
2932         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2933         (dbus_g_proxy_call): Invoke with NULL callback.
2934         (dbus_g_proxy_cancel_call): New function, replaces
2935         dbus_g_pending_call_cancel.
2936
2937         * glib/dbus-gparser.c (validate_signature): Fix call to
2938         dbus_set_g_error.
2939
2940         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2941         New quark for attaching metadata to GType.
2942         (info_hash): Delete.
2943         (lookup_object_info): Look up using quark.
2944         (dbus_g_object_type_install_info): Check that a type is classed,
2945         not that it's an object.  Also just install type data using quark
2946         instead of using global hash.
2947
2948         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2949         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2950         (GPendingNotifyClosure): Delete.
2951         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2952         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2953
2954         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2955         client method generation until we can fix it...
2956         
2957         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2958         (load_from_service_thread_func): Ditto.
2959
2960         * tools/dbus-names-model.c (struct NamesModel): Hold
2961         DBusGProxyCall.
2962         (have_names_notify): Update prototype, use
2963         dbus_g_proxy_cancel_call.
2964         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2965
2966         * tools/dbus-monitor.c (filter_func): Update for print_message
2967         API change.
2968
2969         * test/glib/test-dbus-glib.c: Add more tests for async
2970         invocations.  Update many begin_call/end_call pairs to just use
2971         dbus_g_proxy_call.
2972
2973         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2974         allows us to dump print-introspect.c.
2975
2976         * tools/dbus-print-message.h (print_message): Add literal argument
2977         to print_message which is intended to allow printing arguments without
2978         metadata like "string=".
2979
2980         * tools/dbus-print-message.c (print_iter): Add literal argument.
2981         (print_message): Allow printing string messages literally.
2982
2983 2005-07-05  Colin Walters  <walters@verbum.org>
2984
2985         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2986         Remove value refcount leak, original patch from Jorn Baayen
2987         <jorn@openedhand.com>.  Also remove useless extra value in favor
2988         of prepending to value array directly.
2989
2990 2005-07-02  Colin Walters  <walters@verbum.org>
2991
2992         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2993
2994 2005-07-01  Colin Walters  <walters@verbum.org>
2995
2996         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2997         
2998         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2999         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3000         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3001         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3002
3003 2005-06-30  Colin Walters  <walters@verbum.org>
3004
3005         * test/glib/test-dbus-glib.c:
3006         * test/glib/test-service-glib.c:
3007         * test/glib/test-service-glib.xml: Update tests for new error
3008         setting bits, also add async tests (patch from Ross Burton).
3009
3010         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3011         DBUS_GLIB_THREADS_LIBS.
3012
3013         * glib/dbus-gproxy.c (get_name_owner)
3014         (dbus_g_pending_call_end_valist): Ditto.
3015
3016         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3017         domain (GQuark) to DBusGErrorInfo.  
3018         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3019         quark in error_metadata.  Take message interface as default
3020         error message interface.
3021         (gerror_to_dbus_error_message): Pass message interface.
3022         (dbus_set_g_error): Resurrected.
3023         (dbus_g_error_info_free): New function.
3024         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3025         of _peek to actually create the object class if it hasn't been
3026         created yet.
3027         (dbus_g_error_domain_register): New function.
3028
3029         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3030
3031         * glib/dbus-gparser.c (validate_signature): Ditto.
3032
3033         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3034         (dbus_g_error_domain_register): Prototype.
3035
3036         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3037         Update tests.
3038
3039 2005-06-29  Colin Walters  <walters@verbum.org>
3040
3041         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3042         DBUS_TYPE_G_OBJECT_PATH.
3043
3044         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3045         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3046         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3047         (dbus_g_object_path_get_g_type): New function.
3048         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3049         to DBUS_TYPE_G_OBJECT_PATH by default.
3050         (demarshal_proxy): Remove unused name variable.
3051         (demarshal_object_path, marshal_object_path): New functions.
3052         (demarshal_proxy_array, marshal_proxy_array): Delete.
3053         
3054         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3055         DBUS_TYPE_G_OBJECT_PATH to char *.
3056         (dbus_g_type_get_lookup_function): Map builtin
3057         DBUS_TYPE_G_OBJECT_PATH.
3058
3059         * test/glib/test-dbus-glib.c
3060         * test/glib/test-service-glib.c (my_object_objpath): 
3061         Adapt tests to new object path marshalling.
3062
3063 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3064
3065         * configure.in: force check for Python >= 2.4
3066
3067 2005-06-29  Colin Walters  <walters@verbum.org>
3068         
3069         Patch from Ross Burton <ross@openedhand.com>
3070         
3071         * glib/dbus-gobject.c (invoke_object_method): Unset object
3072         value in all cases, not only in async case.
3073
3074 2005-06-29  Colin Walters  <walters@verbum.org>
3075
3076         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3077         name_call for keeping track of any outgoing GetNameOwner call.
3078         Also add for_owner and associated.
3079         (struct _DBusGProxyManager): Add owner_names, which is hash table
3080         that maps a base name to a list of names it owns (that we're
3081         interested in).  Add pending_nameowner_calls which is a list of
3082         all outstanding GetNameOwner; avoids us having to iterate over
3083         every proxy.  Add unassociated_proxies which keeps track of name
3084         proxies with no associated name owner.
3085         (dbus_g_proxy_manager_unref): Destroy owner_names.
3086         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3087         name refcounts.
3088         (find_name_in_info, name_owner_foreach)
3089         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3090         (dbus_g_proxy_manager_monitor_name_owner)
3091         (dbus_g_proxy_manager_unmonitor_name_owner)
3092         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3093         New functions; they manipulate the owner_names mapping.
3094         (got_name_owner_cb): New function.
3095         (get_name_owner): New function, extracted from
3096         dbus_g_proxy_new_for_name_owner.
3097         (dbus_g_proxy_manager_register): For now we need to keep track of
3098         all NameOwnerChanged.  Also if the proxy is for a name, if we
3099         don't already know the name owner, queue a new GetNameOwner
3100         request and add it to our list of unassociated proxies.  Otherwise
3101         inc the refcount.
3102         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3103         cancel any pending GetNameOwner call, etc.
3104         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3105         the owner_names mapping to look up the current names for the
3106         signal source, and dispatch to any proxies for that name.
3107         (dbus_g_proxy_new): Initialize new members.
3108         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3109         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3110         (dbus_g_pending_call_end_valist): New function, extracted from
3111         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3112         but want to use the GLib infrastructure.  Also note how many
3113         arguments in reply were over.
3114         (dbus_g_pending_call_end): New function, just call
3115         dbus_g_pending_call_end_valist.
3116         (dbus_g_proxy_end_call_internal): Just call
3117         dbus_g_pending_call_end_valist.
3118
3119         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3120         of builtin marshaller for STRING_STRING_STRING.
3121
3122         * test/glib/test-dbus-glib.c: 
3123         * test/glib/test-service-glib.c:
3124         * test/glib/test-service-glib.xml:
3125         Extend tests to cover name proxies, destruction of owner proxies,
3126         etc.
3127         
3128         * glib/examples/example-signal-recipient.c
3129         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3130         
3131         * tools/dbus-send.c (main): Print D-BUS error name in addition
3132         to message.
3133
3134 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3135
3136         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3137         cmessage_function_handler): Patch from 
3138         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3139         by using the Py_GILState_Ensure/Release to synchronize with the
3140         python runtime.
3141         
3142 2005-06-28  Ray Strode  <rstrode@redhat.com>
3143
3144         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3145         babysitter helper process on last unref, bug #2813.
3146
3147 2005-06-27  Colin Walters  <walters@verbum.org>
3148
3149         * test/glib/test-dbus-glib.c: 
3150         * test/glib/test-service-glib.c:
3151         * test/glib/test-service-glib.xml:
3152         Test hash table signal emitting.
3153
3154         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3155         types to their fundamental basis types, since this is what
3156         marshallers operate on.  Also add an entry for VOID__BOXED.
3157         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3158
3159 2005-06-26  Havoc Pennington  <hp@redhat.com>
3160
3161         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3162         from Don Park
3163
3164 2005-06-26  Colin Walters  <walters@verbum.org>
3165
3166         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3167         (dbus_g_error_set): New public function from its ashes; used by
3168         both service-side method implementation and GLib bindings
3169         internals.
3170         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3171         (_dbus_glib_test): Add some tests.
3172
3173         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3174
3175         * test/glib/test-service-glib.c (my_object_throw_error): Use
3176         dbus_g_error_set.
3177
3178         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3179         errors thrown by dbus_g_error_set.
3180
3181         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3182
3183         * glib/dbus-gparser.c (validate_signature): Ditto.
3184
3185         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3186         (dbus_g_proxy_end_call_internal): Ditto.
3187
3188         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3189         converts DBUS_ERROR_x to DBUS_GERROR_x.
3190         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3191
3192         * doc/TODO: Remove error TODO.
3193
3194         * doc/dbus-tutorial.xml: Update with documentation about error
3195         handling.
3196
3197         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3198         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3199         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3200
3201 2005-06-22  Colin Walters  <walters@verbum.org>
3202         
3203         Patch from Ross Burton <ross@openedhand.com>
3204
3205         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3206
3207 2005-06-20  Colin Walters  <walters@verbum.org>
3208
3209         * configure.in: Add glib/examples.
3210
3211         * glib/Makefile.am: Add examples/
3212
3213         * glib/examples/.cvsignore
3214         * glib/examples/Makefile.am
3215         * glib/examples/example-client.c
3216         * glib/examples/example-service.c
3217         * glib/examples/example-service.xml
3218         * glib/examples/example-signal-emitter.c
3219         * glib/examples/example-signal-emitter.xml
3220         * glib/examples/example-signal-recipient.c:
3221         New files; GLib binding examples, ported from
3222         python/examples.
3223
3224 2005-06-20  Colin Walters  <walters@verbum.org>
3225
3226         * dbus/dbus-glib.h: 
3227         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3228         dbus_g_proxy_call.
3229
3230         * glib/dbus-binding-tool-glib.c: 
3231         * doc/dbus-tutorial.xml: 
3232         * test/glib/test-dbus-glib.c: Update for rename.
3233         
3234 2005-06-20  Colin Walters  <walters@verbum.org>
3235
3236         Patch suggested by Ross Burton <ross@openedhand.com>
3237
3238         * glib/dbus-gobject.c (export_signals): Free signal name.
3239         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3240         memory leak.  Add a bit of documentation.
3241         (dbus_g_method_return_error): Free context, and note we do
3242         so.
3243
3244 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3245
3246         * dbus/dbus-glib.h:
3247         * glib/dbus-gobject.c:
3248         * glib/dbus-gproxy.c:
3249         * glib/dbus-gvalue.c: Predeclare structs as 
3250         typedef struct _Something Something instead of 
3251         typedef struct Something Something, so we can 
3252         redeclare the prototypes. Other GNOME libraries 
3253         do this already.
3254
3255 2005-06-17  Colin Walters  <walters@verbum.org>
3256
3257         * tools/dbus-names-model.c (have_names_notify): Fix call
3258         to dbus_g_proxy_end_call.
3259         
3260 2005-06-17  Colin Walters  <walters@verbum.org>
3261
3262         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3263         spew warnings if we get malformed remote signals.
3264
3265         * glib/dbus-gobject.c (propsig_iterate): New function.
3266         (lookup_object_info): New function, extracted from
3267         lookup_object_and_method.
3268         (introspect_properties, introspect_signals): Delete; these
3269         are merged into write_interface.
3270         (write_interface): Write out signals and properties here;
3271         dump the org.gtk.object stuff and use the interface given
3272         in the introspection data blob.  Also fix up property XML.
3273         (lookup_values): New function.
3274         (introspect_interfaces): Gather a mapping from interface to a
3275         list of its methods, signals, and properties, then write out
3276         each interface.
3277         (lookup_object_and_method): Use lookup_object_info.
3278         (struct DBusGSignalClosure): Add interface.
3279         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3280         we can just use the constant data.
3281         (dbus_g_signal_closure_finalize): Don't free signal name.
3282         (signal_emitter_marshaller): Use interface from signal closure.
3283         (export_signals): Only export signals mentioned in introspection
3284         blob.
3285         (dbus_g_connection_register_g_object): Warn if we have no
3286         introspection data for an object.
3287         (funcsig_equal): Remove unused variable.
3288         (dbus_g_object_register_marshaller): Take varargs instead of
3289         list.
3290         (dbus_g_object_register_marshaller_array): New function,
3291         extracted from old dbus_g_object_register_marshaller.
3292
3293         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3294         signals and property data.
3295         (write_quoted_string): New function, extracted from generate_glue.
3296         (generate_glue): Write signals and properties to introspection
3297         blob.
3298
3299         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3300         exported_signals and exported_properties.
3301         (dbus_g_object_register_marshaller): Update prototype.
3302         (dbus_g_object_register_marshaller_array): Prototype.
3303         
3304         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3305
3306         * test/glib/test-service-glib.c: Add new test signals and method
3307         to emit them.
3308
3309         * test/glib/test-service-glib.xml: Add some test signals.
3310
3311         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3312         and my-object-marshal.h
3313         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3314         my-object-marshal.c.
3315         (my-object-marshal.c, my-object-marshal.h): Implement.
3316
3317         * test/glib/.cvsignore: Update.
3318
3319         * doc/TODO: Remove two GLib TODO items fixed by this
3320         patch.
3321
3322 2005-06-16  Colin Walters  <walters@verbum.org>
3323
3324         * doc/TODO: Update for GLib bindings.
3325         
3326 2005-06-16  Colin Walters  <walters@verbum.org>
3327
3328         * glib/dbus-binding-tool-glib.c:
3329         * glib/dbus-gobject.c:
3330         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3331         from Ross Burton, for his GLib bindings work.
3332
3333 2005-06-16  Colin Walters  <walters@verbum.org>
3334
3335         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3336         to iterate instead of walking to G_TYPE_INVALID.
3337
3338         Patch based on a patch from Ryan Gammon.
3339
3340 2005-06-16  Colin Walters  <walters@verbum.org>
3341
3342         * bus/bus.c (bus_context_new): Set parser to NULL
3343         after we unref it (Patch from Chris Boscolo, #2174).
3344         
3345 2005-06-16  Colin Walters  <walters@verbum.org>
3346
3347         * python/dbus_bindings.pyx.in: Import size_t,
3348         __int64_t, __uint64_t, and __signed.
3349
3350         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3351         Define cmsg struct, output it.
3352         (_dbus_read_credentials_unix_socket):
3353         Use cmsg struct.
3354         
3355         Patch from Joe Markus Clarke for FreeBSD support.
3356         
3357 2005-06-16  Colin Walters  <walters@verbum.org>
3358
3359         * tools/dbus-send.c (append_array): Use strtok.
3360         (append_dict): New function.
3361         (type_from_name): New function, extracted from main.
3362         (main): Handle sending dicts.
3363
3364         * tools/dbus-print-message.c (print_iter): Print dict
3365         entries.
3366         
3367 2005-06-16  Colin Walters  <walters@verbum.org>
3368
3369         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3370         values as the empty string (#2948).
3371         
3372 2005-06-16  Colin Walters  <walters@verbum.org>
3373
3374         * dbus/Makefile.am:
3375         * mono/doc/Makefile.am:
3376         * test/glib/Makefile.am:
3377
3378         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3379
3380 2005-06-16  Colin Walters  <walters@verbum.org>
3381
3382         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3383         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3384
3385         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3386         Increment pointer after swapping fixed array.  Add assertion
3387         for array length.
3388                 
3389 2005-06-15  Colin Walters  <walters@verbum.org>
3390
3391         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3392         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3393         
3394 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3395
3396         * NEWS: Update to 0.34
3397
3398 2005-06-15  David Zeuthen  <davidz@redhat.com>
3399
3400         * configure.in (LT_CURRENT): Revert back to 1 as the library
3401         hasn't changed and we've certainly not committed to protocol
3402         stability yet.  All this does is to break ABI. See commit note
3403         from hp@redhat.com 2005-05-05 for details.
3404         
3405 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3406
3407         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3408         (_dbus_connection_run_builtin_filters): New method
3409         (dbus_connection_dispatch): Run the builtin filters which in turn
3410         runs the peer filter which handles Ping messages.
3411
3412         * doc/TODO: 
3413          - Ping isn't handled: This patch fixes it
3414          
3415          - Add a test case for the Ping message: added TODO item
3416
3417 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3418
3419         * dbus/dbus-message.c:
3420         (dbus_message_has_path): New method
3421         (dbus_message_has_interface): New method
3422         (dbus_message_has_member): New method
3423
3424         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3425         New method
3426
3427         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3428         the keyring directory is private to the user
3429
3430         * doc/TODO:
3431          - The convenience functions in dbus-bus.h should perhaps have
3432          the signatures that they would have if they were autogenerated
3433          stubs. e.g. the acquire service function. We should also evaluate
3434          which of these functions to include, in light of the fact that
3435          GLib/Qt native stubs will probably also exist.: Punted
3436
3437          - add dbus_message_has_path(), maybe has_member/interface:
3438          fixed in this patch
3439
3440          - in dbus-keyring.c, enforce that the keyring dir is not
3441          world readable/writable: Fixed in this patch
3442
3443 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3444
3445         * dbus/dbus-marshal-validate.h: Added a new validation
3446         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3447         out of memory errors when validating signitures
3448
3449         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3450         in places where we previously used DBUS_VALID and a FALSE return 
3451         value to indicate OOM
3452         
3453         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3454         Use a stack to track the number of elements inside containers.  The 
3455         stack values are then used to validate that dict entries have only two
3456         elements within them.
3457         (validate_body_helper): check the reason for failure when validating
3458         varients
3459         
3460         * dbus/dbus-message.c (load_message): use 
3461         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3462         DBUS_VALID and a FALSE return value to indicate OOM
3463
3464         * doc/TODO: remove "- validate dict entry number of fields" as this
3465         patch fixes it
3466
3467 2005-06-14  David Zeuthen  <davidz@redhat.com>
3468
3469         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3470         watches (if applicable) and add new watches
3471
3472         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3473         (main): Setup SIGIO signal handler if using D_NOTIFY
3474
3475         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3476
3477         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3478         (merge_included): Also merge conf_dirs list
3479         (bus_config_parser_unref): Clear conf_dirs list
3480         (include_dir): Add directory to conf_dirs list
3481         (bus_config_parser_get_conf_dirs): New function
3482
3483         * bus/dir-watch.[ch]: New files
3484
3485         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3486
3487         * configure.in: Add checks for D_NOTIFY on Linux
3488
3489 2005-06-14  Colin Walters  <walters@verbum.org>
3490
3491         * glib/dbus-binding-tool-glib.c:
3492         * glib/dbus-gobject.c:
3493         * glib/dbus-gvalue.c: Fix indentation and brace style.
3494         
3495 2005-06-14  Ross Burton <ross@openedhand.com>.
3496
3497         * glib/dbus-glib.h: Make DBusGMethodInvocation
3498         a private structure.  Rearrange prototypes a bit.
3499         
3500         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3501         documentation for first_arg_type.
3502         
3503         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3504         here, add documentation.  Move dbus_g_method_return
3505         and dbus_g_method_return_error into public API
3506         section.
3507
3508 2005-06-14  Colin Walters  <walters@verbum.org>
3509
3510         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3511         Add missing return statements, noticed by Ross Burton.
3512         
3513 2005-06-13  Ross Burton <ross@openedhand.com>.
3514
3515         * glib/dbus-gobject.c: Handle errors on message
3516         demarshalling by sending error message back.
3517         * glib/dbus-gvalue.c: Initialize return variables.
3518
3519 2005-06-13  Colin Walters  <walters@verbum.org>
3520
3521         * glib/Makefile.am: Fix thinko in last patch.
3522
3523 2005-06-13  Colin Walters  <walters@verbum.org>
3524
3525         * glib/Makefile.am: Move dbus-gtype-specialized.c
3526         and dbus-gtype-specialized.h into a _HEADERS variable,
3527         install them.
3528
3529 2005-06-12  Colin Walters  <walters@verbum.org>
3530
3531         Async signals and various bugfixes and testing by
3532         Ross Burton <ross@openedhand.com>.
3533
3534         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3535         (dbus_gvalue_genmarshal_name_from_type)
3536         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3537         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3538         (dbus_g_value_types_init, dbus_gtype_from_signature)
3539         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3540         (dbus_gtypes_from_arg_signature): New function prototypes.
3541         (dbus_gvalue_demarshal): Take context and error arguments.
3542         (dbus_gvalue_demarshal_variant): New function.
3543         (dbus_gvalue_demarshal_message): New function.
3544         (dbus_gvalue_store): Delete.
3545
3546         * glib/dbus-gvalue.c:
3547
3548         File has been almost entirely rewritten; now we special-case
3549         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3550         hash tables correctly, etc.  Full support for recursive values
3551         is not yet complete.
3552
3553         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3554         argument of signal to G_TYPE_POINTER since we now pass a
3555         structure.
3556         (lookup_g_marshaller): Delete in favor of
3557         _dbus_gobject_lookup_marshaller.
3558         (marshal_dbus_message_to_g_marshaller): Use
3559         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3560         to handle remote signal callbacks.
3561         (dbus_g_proxy_new_from_proxy): New function; creates a new
3562         DBusGProxy by copying an existing one.
3563         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3564         (dbus_g_proxy_get_path): New functions.
3565         (dbus_g_proxy_marshal_args_to_message): New function;
3566         factored out of existing code.
3567         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3568         from a varargs array.
3569         (dbus_g_proxy_begin_call_internal): New function.
3570         (dbus_g_proxy_end_call_internal): New function.
3571         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3572         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3573         after collecting args into value array.
3574         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3575         invoke dbus_g_proxy_end_call_internal.
3576         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3577         end_call_internal.
3578         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3579         types.
3580         (array_free_all): New function.
3581         (dbus_g_proxy_add_signal): Take GTypes.
3582
3583         * glib/dbus-gobject.h:
3584         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3585         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3586         Prototype.
3587
3588         * glib/dbus-gobject.c: Add a global marshal_table hash which
3589         stores mappings from type signatures to marshallers.  Change lots
3590         of invocations of dbus_gtype_to_dbus_type to
3591         dbus_gtype_to_signature.
3592         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3593         (introspect_signals): Fix test for query.return_type.
3594         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3595         (invoke_object_method): Many changes.  Handle asynchronous
3596         invocations.  Convert arguments with
3597         dbus_gvalue_demarshal_message.  Handle errors.  Use
3598         DBusSignatureIter instead of strlen on args. Handle all arguments
3599         generically.  Special-case variants.
3600         (dbus_g_method_return, dbus_g_method_return_error): New function.
3601         (DBusGSignalClosure): New structure, closes over signal
3602         information.
3603         (dbus_g_signal_closure_new): New function.
3604         (dbus_g_signal_closure_finalize): New function.
3605         (signal_emitter_marshaller): New function; is special marshaller
3606         which emits signals on bus.
3607         (export_signals): New function; introspects object signals and
3608         connects to them.
3609         (dbus_g_object_type_install_info): Take GType instead of
3610         GObjectClass.
3611         (dbus_g_connection_register_g_object): Invoke export_signals.
3612         (dbus_g_connection_lookup_g_object): New function.
3613         (DBusGFuncSignature) New structure; used for mapping type
3614         signatures to marshallers.
3615         (funcsig_hash): New function; hashes DBusGFuncSignature.
3616         (funcsig_equal): New function; compares DBusGFuncSignature.
3617         (_dbus_gobject_lookup_marshaller): New function.
3618         (dbus_g_object_register_marshaller): New function; used to
3619         register a marshaller at runtime for a particular signature.
3620
3621         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3622
3623         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3624         which notes a server method implementation should be
3625         asynchronous.
3626
3627         * glib/dbus-binding-tool-glib.c
3628         (dbus_binding_tool_output_glib_server): Call
3629         dbus_g_value_types_init.
3630         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3631         variants specially.
3632         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3633         of a lookup function.
3634         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3635         (write_untyped_out_args): New method; write output arguments.
3636         (write_formal_declarations_for_direction): Function for
3637         writing prototypes.
3638         (write_formal_parameters_for_direction): Function for
3639         writing implementations.
3640         (write_typed_args_for_direction): Function for writing
3641         arguments prefixed with GTypes.
3642         (write_async_method_client): Write out async version
3643         of method.
3644
3645         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3646         (dbus_g_type_get_marshal_name): Move mapping from GType
3647         to marshal name into here.
3648         (dbus_g_type_get_c_name): Move into here.
3649         (compute_marshaller): Convert signature to type with
3650         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3651         (compute_marshaller_name): Ditto.
3652         (compute_marshaller): Handle async signal annotations.
3653         (gather_marshallers): Return if we don't have a known
3654         prefix.
3655         (generate_glue): Collect introspection blob here, and
3656         write all of the blob at the end.  This allows an object
3657         with multiple interfaces to work.
3658         Mark async methods in introspection blob.
3659
3660         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3661         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3662         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3663
3664         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3665         avoids people accidentally using DBUS_TYPE_* which should
3666         not be necessary anymore.
3667         Do include dbus-gtype-specialized.h, which are utilities
3668         for GLib container types.
3669         Add various #defines for types such as
3670         DBUS_TYPE_G_BOOLEAN_ARRAY.
3671         (DBusGValueIterator, DBusGValue): Define, not fully used
3672         yet.
3673         (dbus_g_value_get_g_type): Type for recursive value.
3674         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3675         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3676         (dbus_g_value_free): Prototypes.
3677         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3678         (dbus_g_proxy_set_interface): Prototype.
3679         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3680         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3681         types.
3682         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3683         Accessors.
3684         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3685         doing async invocations.
3686         (dbus_g_method_return, dbus_g_method_return_error):
3687         Prototypes.
3688         * doc/dbus-tutorial.xml: Update GLib section.
3689         
3690         * tools/dbus-viewer.c (load_child_nodes): Update
3691         for new invocation type of dbus_g_proxy_end_call.
3692         (load_from_service_thread_func): Ditto.
3693
3694         * tools/print-introspect.c (main): Ditto.
3695
3696         * tools/dbus-names-model.c (have_names_notify)
3697         (names_model_reload, names_model_set_connection)
3698         Use GTypes.
3699
3700         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3701         needed since Python bindings use GLib bindings.
3702
3703         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3704         Add --prefix argument.
3705
3706         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3707         unneeded --ignore-unsupported arg.
3708         
3709         * test/glib/test-service-glib.c: 
3710         * test/glib/test-service-glib.xml:
3711         * test/glib/test-dbus-glib.c: Add many more tests.
3712
3713 2005-06-06  David Zeuthen  <davidz@redhat.com>
3714
3715         * doc/TODO: Add item about need to remove deprecated functions.
3716
3717         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3718
3719         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3720         to repair the ABI which was broken with the last commit.
3721
3722 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3723
3724         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3725         (dbus_connection_disconnect): renamed to dbus_connection_close 
3726         for API symmetry with dbus_connection_open
3727         (_dbus_connection_open_internal): 
3728         s/dbus_connection_disconnect/dbus_connection_close
3729
3730         * dbus/dbus-bus.c (dbus_bus_get):
3731         s/dbus_connection_disconnect/dbus_connection_close
3732
3733         * bus/connection.c (bus_connections_unref, 
3734         bus_connections_setup_connection, bus_connections_expire_incomplete):
3735         s/dbus_connection_disconnect/dbus_connection_close
3736
3737         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3738         kill_client_connection_unchecked, check_hello_connection):
3739         s/dbus_connection_disconnect/dbus_connection_close
3740
3741         * bus/bus.c (new_connection_callback):
3742         s/dbus_connection_disconnect/dbus_connection_close
3743
3744         * tools/dbus-send.c (main):
3745         s/dbus_connection_disconnect/dbus_connection_close
3746
3747         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3748         s/dbus_connection_disconnect/dbus_connection_close
3749         
3750         * test/test-service.c (path_message_func, filter_func):
3751         s/dbus_connection_disconnect/dbus_connection_close
3752         
3753         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3754         
3755 2005-05-25  Colin Walters  <walters@verbum.org>
3756
3757         * dbus/dbus-protocol.h: Move various bus service #defines such
3758           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3759           dbus/dbus-shared.h.
3760         * dbus/dbus-shared.h: Various defines moved here.
3761         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3762
3763 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3764
3765         * python/__init__.py: Python bindings deserve a minor version
3766         update.  Upped to (0, 40, 2)
3767
3768 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3769
3770         * python/decorators.py: add explicitly_pass_message decorator
3771         for passing in the dbus message as keyword for edge case signal
3772         handling
3773
3774         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3775         to conform with what dbus expects for match rules
3776         (SignalMatchRule.execute): add the dbus message as a keyword
3777         if the signal handler has requested it
3778
3779         * python/examples/example/signal-recipient.py: added some more
3780         examples on how to hook up to signals
3781
3782 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3783
3784         * python/decorators.py: import dbus_bindings
3785
3786         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3787         SignalMatchNode): new classes that implement wildcard signal
3788         callback matching using a tree lookup. Heavily modified from a
3789         patch sent by Celso Pinto (fd.o bug #3241)
3790
3791         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3792         use new match classes to handle signals.
3793
3794 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3795         
3796         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3797
3798 2005-05-18  Havoc Pennington  <hp@redhat.com>
3799
3800         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3801         gettext. Not really worth requiring yet perhaps, but any
3802         production quality 1.0 would require it so we should go ahead and
3803         get things set up. We do have a couple token calls to
3804         bindtextdomain in the code already.
3805
3806 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3807
3808         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3809         when using recursive g_main_loops
3810
3811         * python/_dbus.py (class Bus): add the ProxyObjectClass
3812         alias for ProxyObject to make it easier for the Twisted 
3813         networking framework to integrate dbus.
3814
3815         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3816         alias for ProxyMethod to make it easier for the Twisted 
3817         networking framework to integrate dbus. 
3818
3819 2005-05-11  Ross Burton  <ross@openedhand.com>
3820
3821         * glib/dbus-glib-tool.c: Add --prefix argument.
3822         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3823         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3824         Add prefix argument.
3825         (generate_glue): Pass prefix argument down.
3826         (dbus_binding_tool_output_glib_server): Pass prefix to
3827         glib-genmarshal.
3828         
3829 2005-05-11  Colin Walters  <walters@verbum.org>
3830
3831         * tools/dbus-send.c (append_array): New function.
3832         (append_arg): Broken out from main.
3833         (main): Add cheesy hack to send arrays and variants.
3834         (usage): Update.
3835         * tools/dbus-print-message.c (print_iter): Broken out
3836         from main.
3837
3838 2005-05-11  Colin Walters  <walters@verbum.org>
3839
3840         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3841         New function, returns signature string for signature iter.
3842         * dbus/dbus-signature.h: Prototype it.
3843         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3844         New function, returns signature string for message iter.
3845         (dbus_message_iter_get_array_len): New function, returns
3846         length of array.
3847         (dbus_message_iter_get_fixed_array): Fix assertion; this
3848         function should be used when the iter is pointing to the
3849         contents of an array
3850         * dbus/dbus-message.h: Prototypes.
3851         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3852         New function; returns length of an array.
3853         * dbus/dbus-marshal-recursive.h: Prototype it.
3854         
3855 2005-05-11  Colin Walters  <walters@verbum.org>
3856
3857         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3858         compilation error.
3859         
3860 2005-05-08  Havoc Pennington  <hp@redhat.com>
3861
3862         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3863         daemon's pid, not the parent's pid, to the file descriptor.
3864         Reported by Taj Morton.
3865
3866 2005-05-05  Havoc Pennington  <hp@redhat.com>
3867
3868         * configure.in (LT_*): add notes on how the libtool versioning
3869         works to save thinking. Increment soname to indicate protocol
3870         breakage (though really the library interface hasn't changed I
3871         guess)
3872
3873         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3874         verify the GUID received from server matches what we were
3875         expecting, if we had an expectation
3876
3877         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3878         (_dbus_auth_get_guid_from_server): new function
3879         (send_begin): parse the OK args
3880
3881         * doc/dbus-specification.xml: add GUID to the auth protocol
3882
3883 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3884
3885         * Fix my name in previous changelog ;)
3886
3887         * python/proxies.py (ProxyObject.__getattr__): add further patch
3888         from Anthony Baxter to throw an AttributeError when python 
3889         __special__ functions are called instead of marshling them over 
3890         the bus (Bug#1685 comment 3).
3891
3892 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3893
3894         * python/Makefile.am: changed to use pyexecdir for the binding
3895         shared libraries (Bug#2494)
3896
3897         * python/exceptions.py: bring exceptions over from the bindings
3898         so they can be used in applications (Bug#2036)
3899         Make all exceptions derive from DBusException
3900
3901         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3902         of classes so that print obj doesn't throw an exception (Bug #1685)
3903
3904 2005-05-03  Ross Burton  <ross@openedhand.com>
3905
3906         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3907         Return if we get an error during registration.  Set up a
3908         weak reference on object to unregister if object is destroyed.
3909         (unregister_gobject): New function.
3910         
3911 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3912
3913         * python/dbus_bindings.pyx.in: 
3914         - added new type classes for hinting to the marashaler what type 
3915         to send over the wire
3916         - added int16 and uint16 marshalers
3917         - Fixed a bug in the type constants that caused int32 to go out
3918         as uint16 over the wire
3919         * python/dbus.py: split up into different files and renamed _dbus.py
3920         * python/__init__.py, python/_util.py, python/decorators.py, 
3921         python/exceptions.py, python/proxies.py, python/services.py,
3922         python/types.py: new files split off from dbus.py
3923         * python/Makefile.am: Add new files, remove dbus.py and 
3924         install all python files to <python module dir>/dbus
3925         * python/examples/*: Added #!/usr/bin/env python to the top of
3926         every example.  Patch provided by Tatavarty Kalyan
3927
3928 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3929
3930         * NEWS: Update to 0.33
3931
3932 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3933
3934         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3935         method for doing async calls
3936         (_pending_call_notification): New C function for handling pendning call
3937         callbacks
3938         (set_notify): New method for setting pending call notification
3939         
3940         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3941         Async capabilities added to remote method calls
3942         (Sender): class removed
3943         (RemoteService): class removed
3944         (ObjectTree): class removed for now
3945         (RemoteObject): Renamed to ProxyObject
3946         (RemoteMethod): Renamed to ProxyMethod
3947         (method): Decorator added for decorating python methods as dbus methods
3948         (signal): Decorator added for decorating python methods as signal emitters
3949         (ObjectType): Metaclass added for generating introspection data and the
3950         method callback vtable
3951         (Interface): Wrapper class added to wrap objects in a dbus interface
3952         (Object): Uses ObjectType as its metaclass and exports Introspect
3953         of the org.freedesktop.DBus.Introspectable interface
3954         (ValidationException, UnknownMethodException): new exceptions
3955
3956         * python/examples/*: Modified to fit with the new bindings
3957
3958 2005-04-23  Havoc Pennington  <hp@redhat.com>
3959
3960         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3961         reported by Tony Houghton
3962
3963         * test/test-service.c (main): test
3964         dbus_connection_get_object_path_data()
3965
3966         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3967         the exact_match
3968         (_dbus_object_tree_get_user_data_unlocked): new function used by
3969         dbus_connection_get_object_path_data()
3970         (do_register): add assertion test for get_user_data_unlocked
3971         (object_tree_test_iteration): more tests
3972
3973         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3974         new function from Dan Reed to let you get the user data from 
3975         dbus_connection_register_object_path()
3976
3977 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3978
3979         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3980         in numerous places that did not account for the NULL terminator
3981         (signature_from_seed): changed the manual string copy loop to 
3982         just use strcpy instead
3983         make check should now pass
3984
3985 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3986
3987         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3988         so that it allows messages that are not signals to pass in 
3989         NULL as the interface.
3990
3991 2005-04-18  David Zeuthen  <davidz@redhat.com>
3992
3993         * glib/dbus-gmain.c (io_handler_destroy_source): 
3994         (timeout_handler_destroy_source, connection_setup_free): 
3995         Also unref the source to avoid memory leaks.
3996
3997 2005-04-13  David Zeuthen  <davidz@redhat.com>
3998
3999         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4000         more reasonable, yet still totally arbitrary, value :-). 
4001
4002 2005-04-13  David Zeuthen  <davidz@redhat.com>
4003
4004         * doc/TODO: Added an "important for 1.0" item about selinux
4005         allow/deny messages
4006
4007 2005-04-13  David Zeuthen  <davidz@redhat.com>
4008
4009         * bus/selinux.c: Add c-file-style to top of file
4010         (log_audit_callback): Don't free the data here anymore
4011         (bus_selinux_check): Don't take spid and tpid since appending
4012         that to auxdata may OOM.
4013         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4014         to the caller if we are OOM by taking an error object.
4015         (bus_selinux_allows_send): -do-
4016
4017         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4018         and bus_selinux_allows_send
4019
4020         * bus/bus.c (bus_context_check_security_policy): Pass error and
4021         pass on OOM thrown by bus_selinux_allows_send()
4022
4023         * bus/services.c (bus_registry_acquire_service): Pass error and
4024         pass on OOM thrown by bus_selinux_allows_acquire_service()
4025
4026 2005-04-13  Havoc Pennington  <hp@redhat.com>
4027
4028         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4029         message at a time to avoid monopolizing the main loop, bug 
4030         #2953 from Benjamin Otte
4031
4032 2005-04-09  Havoc Pennington  <hp@redhat.com>
4033
4034         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4035         possible overlap, fix from Daniel Reed
4036         (fixup_alignment): fix signedness warnings
4037         (_dbus_string_append_unichar): ditto
4038
4039 2005-04-09  Havoc Pennington  <hp@redhat.com>
4040
4041         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4042
4043         * glib/dbus-glib-tool.c (main): fix warning
4044
4045         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4046
4047         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4048         add a new function that can be used in simple applications that
4049         don't have a main loop and are willing to block
4050
4051 2005-04-05  David Zeuthen  <davidz@redhat.com>
4052
4053         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4054
4055         * glib/dbus-gmain.c:
4056         (io_handler_destroy_source): Remove from list of IO handlers
4057         of the ConnectionSetup object
4058         (timeout_handler_destroy_source): -do- for timeout handlers
4059         (io_handler_source_finalized): Don't remove from list since
4060         we now do that in io_handler_destroy_source(). Renamed from
4061         io_handler_source_destroyed
4062         (timeout_handler_source_destroyed): -do- for timeout handlers
4063         (connection_setup_free): It is now safe to iterate over all
4064         IO and timeout handlers as the _destroy_source removes them
4065         from the list synchronously
4066
4067 2005-03-30  Havoc Pennington  <hp@redhat.com>
4068
4069         * configure.in: change check to gtk 2.4
4070
4071         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4072         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4073         to 2.4
4074
4075 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4076
4077         * News: Update 0.32
4078
4079         * HACKING: Fixed realease instructions.  configure.in should be updated to
4080           the next release by the person who made the last release.
4081
4082 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4083
4084         * python/lvalue_cast_post_process.py - removed.  Patch has been
4085           submitted to Pyrex maintainers that fixes gcc4.0 errors
4086
4087         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4088
4089 2005-03-24  Daniel Reed  <n@ml.org>
4090
4091         * tools/Makefile.am: Make print-introspect and
4092         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4093
4094 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4095
4096         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4097
4098         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4099           had in Red Hat packages for a while but for some reason never 
4100           got merged upstream
4101           (_dbus_is_a_number): New checks if a string
4102           can be converted to a number and does the conversion if it can
4103           (_dbus_user_database_lookup): Add check to see if the given username
4104           is a udi.  This allows udi's to be used instead of usernames in the
4105           config file.
4106           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4107           is a gdi.  This allows gdi's to be used instead of groupnames in the
4108           config file.
4109
4110 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4111
4112         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4113           code so that it compiles with gcc4.0
4114
4115         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4116           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4117           results back to dbus_binding.c
4118
4119 2005-03-20  Colin Walters  <walters@verbum.org>
4120
4121         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4122
4123         * configure.in: Require GTK+ 2.6.
4124         
4125 2005-03-20  Colin Walters  <walters@verbum.org>
4126
4127         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4128
4129 2005-03-17  Tom Parker  <palfrey@tevp.net>
4130
4131         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4132         print DBUS_UID_UNSET; instead print passed username.  Also
4133         be sure to actually use gid looked up in cache.
4134         
4135         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4136         for DBUS_GID_UNSET and groupname.
4137
4138 2005-03-17  Colin Walters  <walters@verbum.org>
4139
4140         * bus/print-introspect.c: Move to tools/.
4141         * bus/run-with-tmp-session-bus.sh: Ditto.
4142         
4143         * glib/Makefile.am (dbus-glib-bindings.h): Move
4144         generation to tools/Makefile.am.
4145
4146         * test/glib/run-test.sh: Update to handle move
4147         of run-with-tmp-session-bus.sh.
4148
4149         * test/glib/test-service-glib.c: Update to handle
4150         move of dbus-glib-bindings.h.
4151
4152         * tools/print-introspect.c: Moved here
4153         from bus/, and ported to GLib bindings.
4154
4155         * tools/run-with-tmp-session-bus.sh: Moved here
4156         from bus/.
4157
4158         * tools/Makefile.am: Generate dbus-glib-bindings.h
4159         and dbus-bus-introspect.xml here.
4160
4161         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4162         Update.
4163
4164 2005-03-17  Colin Walters  <walters@verbum.org>
4165
4166         * bus/driver.c (write_args_for_direction): Use
4167         _dbus_string_get_const_data to retrieve string;
4168         _dbus_string_get_const_data_len doesn't actually return
4169         a NULL-terminated substring.
4170
4171         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4172         (main): Change to use org_freedesktop_DBus_request_name
4173         instead of using g_proxy_begin_call/end_call.
4174
4175 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4176
4177         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4178         generating the finalizer.  Fixes from Ben Maurer.
4179
4180 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4181
4182         * mono/BusDriver.cs: Update method names: ListServices
4183         becomes ListNames; GetOwner becomes GetNameOwner.
4184
4185         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4186         onto the eval stack when removing the delegate.
4187
4188 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4189
4190         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4191         LT_CURRENT.  Set it to the autoconf variable.
4192                                                                                 
4193         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4194         classes that disconnects the signal handler delegate from the
4195         service object.  Fixes a big leak of proxy objects on the
4196         client side of things.  Patch from Ben Maurer
4197         <bmaurer@ximian.com>
4198
4199 2005-03-12  Colin Walters  <walters@verbum.org>
4200
4201         * bus/driver.c (write_args_for_direction): New function,
4202         parses a type signature into arguments and outputs to
4203         XML.
4204         (bus_driver_handle_introspect): Use it instead of
4205         hardcoding XML for certain signatures.
4206         
4207         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4208         dependency on dbus-daemon.
4209
4210         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4211         argument, pass it to dbus_binding_tool_output_glib_client.
4212
4213         * glib/dbus-binding-tool-glib.c
4214         (generate_client_glue): Protect against multiple inclusion.
4215         (dbus_binding_tool_output_glib_client): Add
4216         G_BEGIN_DECLS/G_END_DECLS.
4217
4218         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4219         Change to just take iface prefix directly.
4220         (write_formal_parameters): Clarify error message.
4221         (check_supported_parameters): New function; checks to see type
4222         signatures of method parameters are supported.
4223         (generate_client_glue): Handle ignore_unsupported flag.
4224         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4225         parameter.
4226
4227         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4228         --ignore-unsupported by default until glib bindings
4229         support arrays.
4230
4231 2005-03-11  Colin Walters  <walters@verbum.org>
4232
4233         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4234         install it.
4235
4236         * bus/print-introspect.c: New file; prints introspection
4237         data for a given name and object path.
4238
4239         * bus/run-with-tmp-session-bus.sh: New file, refactored
4240         from test/glib/run-test.sh.  Creates a temporary session
4241         bus and runs another program.
4242
4243         * test/glib/run-test.sh: Refactor to invoke
4244         run-with-tmp-session-bus.sh.
4245
4246         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4247         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4248         macros instead of hardcoding.
4249
4250         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4251
4252 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4253
4254         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4255         this unref; it doesn't match up evenly in some codepaths.
4256         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4257         this evenly matches with the ref near the top of this function.
4258
4259 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4260
4261         * dbus/dbus-object-tree.c
4262         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4263         and we try to unregister a path that's not registered, still go
4264         through the process of unlocking and don't just return.
4265
4266 2005-03-09  Colin Walters  <walters@verbum.org>
4267
4268         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4269         to this are generated for client-side wrappers.  Invokes a
4270         D-BUS method and returns reply values.  
4271
4272         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4273         function; writes signature string for argument direction.
4274         (write_args_for_direction): Change to pass input values directly
4275         instead of via address, and fix indentation.
4276         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4277         make generated wrappers inlineable.
4278
4279         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4280         note about using dbus_type_is_fixed.
4281
4282         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4283         dbus/dbus-signature.c as dbus_type_is_fixed.
4284
4285         All callers updated.
4286
4287         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4288         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4289
4290         * dbus/dbus-signature.h: Prototype.
4291
4292         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4293         error printf code.
4294
4295         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4296         appropriate instead of just freeing it.
4297         (main): Free returned strings using g_free.
4298
4299         * test/glib/Makefile.am (test-service-glib-glue.h)
4300         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4301
4302         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4303         simply maps a simple D-BUS type to GType.
4304         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4305         GType.
4306         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4307         initialize the value with it.
4308         (dbus_gvalue_binding_type_from_type): Unused, delete.
4309         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4310         various types instead of unmarshalling to value data directly.
4311         Remove can_convert boolean.
4312         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4313         returning directly instead of using can_convert boolean.
4314         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4315         Stores a GValue in a pointer to a value of its corresponding C
4316         type.
4317
4318         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4319         add dbus_gvalue_store.
4320
4321 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4322
4323         Fix a bunch of lifecycle and memory management problems
4324         in the mono bindings.
4325
4326         * mono/Arguments.cs (Arguments): Implement IDisposable
4327
4328         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4329         strictly a static class.
4330
4331         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4332         delegates into this file.
4333         (Connection): Implement IDisposable.
4334         (Dispose): Disconnect the connection and set the raw connection
4335         pointer to IntPtr.Zero.
4336         (~Connection): Call Dispose().
4337         (RegisterObjectPath): Added.  Manages the registration of object
4338         paths so we can cleanly disconnect them at dispose/finalize time.
4339         (UnregisterObjectPath): Ditto.
4340         (set_RawConnection): Unregister all of the object paths when
4341         changing the underlying DBusConnection.  Add them back onto the
4342         new connection, if any.
4343
4344         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4345         more unmanaged resources anymore, so it's not necessary.  Move all
4346         the DBusObjectPathVTable stuff out of here.
4347         (Handler): Save references to our delegates so that they don't get
4348         finalized.  Call Connection.RegisterObjectPath() instead of
4349         dbus_connection_register_object_path() directly.
4350         (Message_Called): Dispose the message after we're finished with
4351         it.
4352
4353         * mono/Message.cs (Message): Implement IDisposable.
4354         (Dispose): Dispose the Arguments, and set the RawMessage to
4355         IntPtr.Zero.
4356         (SendWithReplyAndBlock): We own the ref to the reply that comes
4357         back from dbus_connection_send_with_reply_and_block() so add a
4358         comment about that and unref it after we've constructed a managed
4359         MethodReturn class around it.  Fixes a big, big leak.
4360
4361         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4362         method.
4363         (BuildSignalHandler): After we've sent the Signal message, dispose
4364         of it.
4365         (BuildMethod): Dispose of the method call and reply messages after
4366         we've sent the message and extracted the data we want from the
4367         reply.
4368
4369         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4370         anymore.
4371         (Service_FilterCalled): Dispose of the message after we're
4372         finished with it.
4373
4374 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4375
4376         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4377         After we attach our pending call to the connection, unref
4378         it.  Fixes a leak.
4379  
4380         * mono/Connection.cs (set_RawConnection): Disconnect our
4381         filter and match callbacks from the old connection and
4382         reconnect them to the new connection, if any.
4383
4384         * mono/DBusType/Array.cs: "Code" is a static member, so
4385         don't use "this" to refer to it.  Fix for stricter checking
4386         in Mono 1.1.4.
4387  
4388         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4389         object path that we pass into unmanaged code.
4390  
4391         * mono/DBusType/String.cs (Append): Don't leak the string
4392         that we pass into unmanged code.
4393
4394 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4395         * NEWS: Update for 0.31
4396
4397         * configure.in: Release 0.31
4398         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4399
4400         * qt/Makefile.am: fixed build
4401
4402         * dbus/Makefile.am: soname bump for libdbus
4403
4404         * glib/Makefile.am: soname bump for libdbus-glib
4405
4406 2005-03-05  Havoc Pennington  <hp@redhat.com>
4407
4408         * dbus/dbus-sysdeps.c:
4409         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4410         value
4411         (_dbus_generate_random_bytes_buffer): fix return value
4412
4413         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4414         checks actually work, from Tom Parker <fdo@tevp.net>
4415
4416 2005-03-01  Colin Walters  <walters@verbum.org>
4417
4418         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4419         functions copied from dbus-glib-tool.c.
4420         (main): Convert lots of error code to use them.
4421         Also add some testing for introspection bits.
4422
4423 2005-03-01  Colin Walters  <walters@verbum.org>
4424         
4425         * doc/TODO: Remove introspection signature TODO.
4426
4427 2005-02-27  Colin Walters  <walters@verbum.org>
4428
4429         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4430         Change return value to const char * instead of int so we can do
4431         full signatures.
4432         (struct PropertyInfo, struct ArgInfo): Store char *.
4433         (property_info_new, arg_info_new): Update parameters, strdup.
4434         (property_info_unref, arg_info_unref): Free.
4435
4436         * glib/dbus-gidl.h: Update prototypes.
4437
4438         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4439         (validate_signature): New function, just validates signature and
4440         sets GError.
4441         (parse_property, parse_arg): Invoke validate_signature.  Store
4442         signature instead of just type code.
4443
4444         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4445         function to return a primary type for a signature, dropping
4446         information about types in container types.
4447         (dbus_gvalue_genmarshal_name_from_type)
4448         (dbus_gvalue_binding_type_from_type)
4449         (dbus_gvalue_ctype_from_type): Update to take full signature
4450          instead of type code.
4451         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4452
4453         * glib/dbus-gvalue.h: Update prototypes for above.
4454
4455         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4456         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4457         (introspect_properties, introspect_signals, write_interface):
4458         Update to handle signatures, and remove usage of
4459         _dbus_gutils_type_to_string.
4460         (handle_introspect): Print out type codes instead of e.g. "string"
4461         in hardcoded introspection XML; also use x_AS_STRING constants
4462         instead of hardcoding in string.
4463
4464         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4465         to string.  Remove usage of _dbus_gutils_type_to_string.
4466
4467         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4468
4469         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4470         deletion.
4471         
4472         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4473         (compute_marshaller_name, generate_glue): Handle signature change
4474         to string.
4475         (write_formal_parameters, write_args_for_direction): Ditto, and
4476         remove FIXME.
4477
4478         * tools/dbus-tree-view.c (type_to_string): Delete.
4479         (info_set_func_text): Update to print full signatures.
4480
4481         * test/glib/test-service-glib.xml: Change types to new
4482         introspection format.
4483
4484 2005-02-26  Havoc Pennington  <hp@redhat.com>
4485
4486         * doc/TODO: remove the "guid" item
4487
4488         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4489         (with_bus_thread_func): use open_private
4490
4491         * dbus/dbus-connection.c (dbus_connection_open_private): new
4492         function that works like the old dbus_connection_open()
4493         (dbus_connection_open): now returns an existing connection if
4494         possible
4495
4496         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4497         through the GUID to the transport
4498
4499         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4500         GUID in hex-encoded form.
4501
4502         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4503         pass GUID argument in to the transport
4504
4505         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4506         guid argument
4507
4508         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4509
4510         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4511
4512 2005-02-25  Havoc Pennington  <hp@redhat.com>
4513
4514         * doc/dbus-specification.xml: document the GUID thing
4515
4516         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4517         globally unique ID for the server, and put a "guid=hexencoded"
4518         field in the address
4519
4520         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4521
4522         * dbus/dbus-message.c: ditto
4523
4524         * dbus/dbus-dataslot.c: ditto
4525
4526         * dbus/dbus-list.c: ditto
4527
4528         * dbus/dbus-internals.h: wait, just include
4529         dbus-threads-internal.h here
4530         
4531         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4532         use in main library
4533
4534         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4535
4536 2005-02-24  Colin Walters  <walters@verbum.org>
4537
4538         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4539
4540 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4541
4542         * glib/Makefile.am: added dbus-gobject.h to sources list
4543         so distcheck doesn't fail
4544         
4545 2005-02-24  Havoc Pennington  <hp@redhat.com>
4546
4547         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4548         you must disconnect before unref, since locking and other things
4549         are screwed up otherwise. Fix assorted other locking stuff.
4550
4551         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4552         fix compilation
4553
4554         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4555         into a private header and don't export from the library
4556
4557         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4558
4559 2005-02-24  Colin Walters  <walters@verbum.org>
4560         
4561         * dbus/dbus-signature.c: New file; implements various functions
4562         related to type signatures.  Includes an interator for parsing,
4563         validation functions.
4564         (dbus_type_is_basic): Moved here from
4565         dbus-marshal-basic.c:_dbus_type_is_basic.
4566         (dbus_type_is_container): Moved here from
4567         dbus-marshal-basic.c:_dbus_type_is_container.
4568
4569         All callers of _dbus_type_is_container and _dbus_type_is_basic
4570         updated, and include dbus-signature.h.
4571
4572         * dbus/dbus-signature.h: New file; prototypes for the above.
4573
4574         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4575         dbus-signature.h.
4576
4577         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4578         function factored out of _dbus_first_type_in_signature.
4579         (_dbus_first_type_in_signature_c_str): New function; returns first
4580         type code for a type signature character.
4581
4582         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4583         handle function moves.
4584
4585         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4586
4587         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4588         function; skips to next complete type in type signature.
4589         Implemented using previous skip_one_complete_type.  Now
4590         skip_one_complete_type just delegates to
4591         _dbus_type_signature_next.
4592
4593         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4594         to dbus-signature.c
4595         (_dbus_type_is_container): Ditto.
4596
4597         * doc/dbus-specification.xml: Update introspection sample to
4598         use real type signatures.
4599
4600         * dbus/dbus-test.h: Prototype signature test.
4601
4602         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4603         signature tests.
4604
4605         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4606
4607 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4608
4609         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4610         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4611
4612 2005-02-21  Colin Walters  <walters@verbum.org>
4613
4614         * dbus/dbus-test-main.c (main): Take optional specific test
4615         argument.
4616
4617         * dbus/dbus-test.c (run_test): New function, runs a test function
4618         with no data directory.
4619         (run_data_test): Like above, but takes data directory.
4620         (dbus_internal_do_not_use_run_tests): Take
4621         specific test argument.  Replace lots of cut n' paste code
4622         with run_test and run_data_test.
4623
4624         * dbus/dbus-test.h: Update prototype for
4625         dbus_internal_do_not_use_run_tests.
4626
4627 2005-02-20  Havoc Pennington  <hp@redhat.com>
4628
4629         Fix bugs reported by Daniel P. Berrange
4630         
4631         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4632         (protected_change_watch): new function
4633         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4634         (_dbus_server_add_watch): change to work like the
4635         dbus-connection.c equivalents; like those, probably kind of
4636         busted, but should at least mostly work for now
4637         (dbus_server_disconnect): drop the lock if we were already
4638         disconnected, patch from Daniel P. Berrange
4639
4640         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4641         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4642         same stuff
4643
4644         * doc/TODO: todo about unscrewing this mess
4645
4646 2005-02-19  Colin Walters  <walters@verbum.org>
4647
4648         * glib/dbus-binding-tool-glib.c
4649         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4650
4651         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4652         as errno.h and sys/stat.h.
4653         (lose): New function, prints error with
4654         newline and exits.
4655         (lose_gerror): Similar, but takes GError for message.
4656         (main): Add --output argument to specify output file to write to,
4657         instead of always printing to stdout.  In this mode, determine
4658         timestamps on source files to see whether any are newer than the
4659         target file.  If not, exit.  Also convert a number of error
4660         messages to use lose (since it's shorter), and switch to using
4661         g_io_channel_shutdown.
4662
4663 2005-02-19  Havoc Pennington  <hp@redhat.com>
4664
4665         * glib/dbus-gobject.c
4666         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4667
4668         * glib/dbus-glib.c: fix doxygen warnings
4669
4670         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4671         is found on an <arg>
4672
4673 2005-02-17  Colin Walters  <walters@verbum.org>
4674
4675         * glib/dbus-gobject.h: Don't export
4676         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4677         
4678         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4679         (invoke_object_method): Handle it.
4680
4681         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4682         Handle rename.
4683         
4684 2005-02-17  Colin Walters  <walters@verbum.org>
4685
4686         * bus/.cvsignore, doc/.cvsignore
4687         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4688         Update.
4689
4690 2005-02-17  Colin Walters  <walters@verbum.org>
4691         
4692         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4693         Rename to DBUS_SERVICE_DBUS.
4694         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4695         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4696         Change the value from "org.freedesktop.Local"
4697         to "org.freedesktop.DBus.Local".
4698         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4699         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4700         DBUS_INTERFACE_INTROSPECTABLE.
4701         Change the value from "org.freedesktop.Introspectable"
4702         to "org.freedesktop.DBus.Introspectable".
4703         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4704         DBUS_INTERFACE_PROPERTIES.
4705         Change the value from "org.freedesktop.Properties"
4706         to "org.freedesktop.DBus.Properties".
4707         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4708         DBUS_INTERFACE_PEER.
4709         Change the value from "org.freedesktop.Peer"
4710         to "org.freedesktop.DBus.Peer".
4711         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4712         DBUS_INTERFACE_LOCAL.
4713         Change the value from "org.freedesktop.Local"
4714         to "org.freedesktop.DBus.Local".
4715
4716         All other users of those constants have been changed.
4717
4718         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4719
4720         * glib/dbus-gobject.c (handle_introspect): Use constants.
4721
4722         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4723
4724 2005-02-17  Colin Walters  <walters@verbum.org>
4725
4726         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4727         (parse_node, parse_interface, parse_method, parse_signal)
4728         (parse_property, parse_annotation): Lose if we're currently in an
4729         annotation.
4730         (parse_annotation): New function.
4731         (parser_start_element, parser_end_element): Handle annotation.
4732         (parse_method, parse_interface): Remove support for c_name attribute,
4733         switch to annotations.
4734
4735         * glib/dbus-gidl.h (interface_info_get_binding_names)
4736         (method_info_get_binding_names)
4737         (interface_info_get_binding_name, method_info_get_binding_name)
4738         (interface_info_set_binding_name, method_info_set_binding_name):
4739         Remove.
4740         (interface_info_get_annotations, method_info_get_annotations)
4741         (interface_info_get_annotation, method_info_get_annotation)
4742         (interface_info_add_annotation, method_info_add_annotation):
4743         Prototype.
4744
4745         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4746         for "bindings".
4747         (struct MethodInfo): Ditto.
4748         Straightfoward conversion of binding methods into annotation methods
4749         as prototyped.
4750
4751         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4752
4753         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4754
4755         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4756         Use new annotation API.
4757
4758         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4759         annotation element.
4760         
4761         * doc/dbus-specification.xml: Discuss introspection annotations,
4762         include list of well-known annotations.
4763
4764         * test/glib/test-service-glib.xml: Make validate against new DTD.
4765
4766 2005-02-17  Colin Walters  <walters@verbum.org>
4767
4768         This patch is based on initial work from
4769         Paul Kuliniewicz <kuliniew@purdue.edu>.
4770
4771         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4772         initialization of GValue from dbus type to here.
4773         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4774         for the "glib-genmarshal" program from a DBus type.
4775         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4776         into the C name for it we use in the glib bindings.
4777         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4778         glib C type (not GValue).
4779         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4780
4781         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4782         from dbus-gobject.c.
4783
4784         * glib/dbus-gutils.h: Prototype it.
4785
4786         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4787         (marshal_dbus_message_to_g_marshaller): Use new shared function
4788         dbus_glib_marshal_dbus_message_to_gvalue_array.
4789
4790         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4791         Will be changed once we have annotations.
4792
4793         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4794         GStaticRWLock.  Callers updated.
4795         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4796         (string_table_next): New function for iterating over zero-terminated
4797         string value array.
4798         (string_table_lookup): New function; retrieves specific entry in
4799         array.
4800         (get_method_data): New function; look up method data in object data chunk.
4801         (object_error_domain_prefix_from_object_info)
4802         (object_error_code_from_object_info): New functions, but not implemented yet.
4803         (method_interface_from_object_info): New function; retrieve interface name.
4804         (method_name_from_object_info): New function; retrieve method name.
4805         (method_arg_info_from_object_info): New function; retrieve argument data.
4806         (arg_iterate): New function; iterates over serialized argument data.
4807         (method_dir_signature_from_object_info): New function; returns a
4808         GString holding type signature for arguments for just one
4809         direction (input or output).
4810         (method_input_signature_from_object_info)
4811         (method_output_signature_from_object_info): New functions.
4812         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4813         converts dbus message arguments into a GValue array.  Used for both
4814         signal handling and method invocation.
4815         (struct DBusGlibWriteIterfaceData): New utility structure.
4816         (write_interface): New function; generate introspection XML for
4817         an interface.
4818         (introspect_interfaces): New function; gathers all interface->methods,
4819         generates introspection XML for them.
4820         (handle_introspect): Invoke introspect_interfaces.
4821         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4822         (lookup_object_and_method): New function; examines an incoming message
4823         and attempts to match it up (via interface, method name, and argument
4824         signature) with a known object and method.
4825         (gerror_domaincode_to_dbus_error_name): New function; converts a
4826         GError domain and code into a DBus error name.  Needs GError data
4827         added to object introspection to work well.
4828         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4829         GError.
4830         (invoke_object_method): New function to invoke an object method
4831         looked up via lookup_object_and_method.  Parses the incoming
4832         message, turns it into a GValue array, then invokes the marshaller
4833         specified in the DBusGMethodInfo.  Creates a new message with
4834         either return values or error message as appropriate.
4835         (gobject_message_function): Invoke lookup_object_and_method and
4836         invoke_object_method.
4837
4838         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4839         (enum DBusBindingOutputMode): New enum for binding output modes.
4840         (pretty_print): Print binding names.
4841         (dbus_binding_tool_error_quark): GError bits.
4842         (version): Fix typo.
4843         (main): Create GIOChannel for output.  Parse new --mode argument,
4844         possible values are "pretty-print", "glib-server", "glib-client".
4845         Use mode to invoke appropriate function.
4846         
4847         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4848
4849         * glib/dbus-glib-tool.h: New header, just includes GError bits
4850         for now.
4851
4852         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4853         maps binding style to name.
4854         (struct MethodInfo): Ditto.
4855         (get_hash_keys, get_hash_key): Utility function, returns keys for
4856         a GHashTable.
4857         (interface_info_new, method_info_new): Initialize bindings.
4858         (interface_info_unref, method_info_unref): Destroy bindings.
4859         (method_info_get_binding_names, method_info_get_binding_name)
4860         (interface_info_get_binding_names, interface_info_get_binding_name):
4861         Functions for retrieving binding names.
4862         (method_info_set_binding_name, interface_info_set_binding_name):
4863         Functions for setting binding names.
4864
4865         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4866         for glib binding generation.
4867
4868         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4869         and client-side glib glue generation.
4870
4871         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4872         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4873         dbus-glib-tool.h.
4874
4875         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4876         of using GClosureMarshal directly.
4877         (struct DBusGObjectInfo): Add n_infos member.
4878
4879         * test/glib/test-service-glib.xml: New file; contains introspection data
4880         for MyTestObject used in test-service-glib.c.
4881
4882         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4883         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4884         (my_object_uppercase, my_object_many_args): New test methods.
4885         (main): Use dbus_g_object_class_install_info to include generated object
4886         info.
4887
4888         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4889         as well as client-side bindings.
4890
4891         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4892         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4893         using both the dbus_gproxy stuff directly as well as the generated bindings.
4894
4895 2005-02-15  Havoc Pennington  <hp@redhat.com>
4896
4897         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4898         complete a pending call, don't run filters first.
4899
4900         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4901         dbus_pending_call_steal_reply
4902
4903         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4904         _dbus_connection_block_pending_call
4905         (dbus_pending_call_get_reply): change to steal_reply and return a
4906         ref
4907
4908         * dbus/dbus-connection.c
4909         (dbus_connection_send_with_reply_and_block): port to work in terms
4910         of DBusPendingCall
4911         (_dbus_connection_block_pending_call): replace block_for_reply
4912         with this
4913
4914 2005-02-14  Havoc Pennington  <hp@redhat.com>
4915
4916         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4917         properly handle looking up group information by name; fix 
4918         from j@bootlab.org
4919
4920 2005-02-13  Havoc Pennington  <hp@redhat.com>
4921
4922         * dbus/dbus-connection.c (dbus_connection_return_message) 
4923         (dbus_connection_borrow_message): hold dispatch lock while message
4924         is outstanding
4925         (_dbus_connection_block_for_reply): hold dispatch lock while we
4926         block for the reply, so nobody steals our reply
4927         (dbus_connection_pop_message): hold the dispatch lock while we
4928         pluck the message
4929
4930 2005-02-13  Havoc Pennington  <hp@redhat.com>
4931
4932         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4933         (_dbus_connection_release_dispatch)
4934         (_dbus_connection_acquire_io_path)
4935         (_dbus_connection_release_io_path): make the mutex and condvar
4936         control access to the "acquired" flag. Drop the connection lock
4937         while waiting on the condvar. Hopefully these are baby steps in
4938         roughly the right direction.
4939
4940 2005-02-13  Havoc Pennington  <hp@redhat.com>
4941
4942         * dbus/dbus-connection.c: use separate mutexes for the condition
4943         variables; this is some kind of baseline for sanity, but the
4944         condition variables still aren't used correctly afaict
4945
4946 2005-02-13  Havoc Pennington  <hp@redhat.com>
4947
4948         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4949         fix a double-unlock
4950
4951         * dbus/dbus-connection.c
4952         (_dbus_connection_detach_pending_call_unlocked): add this
4953
4954         Initial semi-correct pass through to fix thread locking; there are
4955         still some issues with the condition variable paths I'm pretty
4956         sure
4957         
4958         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4959         lock/unlock calls
4960
4961         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4962         rename to add _unlocked
4963         (struct DBusConnection): move "dispatch_acquired" and
4964         "io_path_acquired" to use only one bit each.
4965         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4966         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4967         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4968         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4969         (_dbus_connection_remove_timeout) 
4970         (_dbus_connection_toggle_timeout): drop lock when calling out to
4971         user functions; done in a hacky/bad way.
4972         (_dbus_connection_send_and_unlock): add a missing unlock
4973         (_dbus_connection_block_for_reply): add a missing unlock
4974
4975         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4976         drop lock in a hacky probably unsafe way to call out to user
4977         function
4978
4979 2005-02-12  Havoc Pennington  <hp@redhat.com>
4980
4981         * tools/dbus-tree-view.c (info_set_func_text): display more
4982         details on args
4983
4984         * bus/driver.c (bus_driver_handle_list_services): list the bus
4985         driver
4986
4987         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4988
4989         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4990         (method_info_get_n_args): new function
4991
4992 2005-02-12  Havoc Pennington  <hp@redhat.com>
4993
4994         * bus/driver.c (bus_driver_handle_introspect): add introspection
4995         for bus driver
4996
4997 2005-02-12  Havoc Pennington  <hp@redhat.com>
4998
4999         * bus/driver.c: put the signature of each bus driver method in the
5000         table of handlers and check it on incoming calls; this isn't
5001         really useful, but going to add introspect support in a minute.
5002
5003 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5004
5005         * mono/Connection.cs: The unpredictability of finalizers in mono
5006         prevents us from deterministically disconnecting the filters from
5007         the Service class's finalizer, so move tracking of filters and
5008         matches here.  Add API for that.
5009
5010         * mono/Service.cs: Remove the code, add code which calls the
5011         methods now on the Connection class.
5012
5013 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5014
5015         * python/dbus.py (class Sender): added to support dbus signals better
5016         (Bus::add_signal_receiver): added expand_args parameter which defaults
5017         to True.  When expand args is True the signal handler will pass the 
5018         message arguments as parameters to the signal handler.  If False
5019         revert to previous behavior where the signal handler must get the
5020         argument list from the message.  This is to help port applications
5021         like HAL that have a tendancy to send variable length argument lists.
5022         self._match_rule_to_receivers is now a dict of dicts.
5023         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5024         removing it from a list
5025         (Bus::_signal_func): change signal handlers so that interface,
5026         signal_name, service, path and message are packed into a Sender
5027         object and that is passed to the handler.  If expand_args is True
5028         extract the args list from the message and append it to the parameter
5029         list
5030         
5031         * python/dbus_bindings.pyx.in (class Signature): added to support 
5032         signiature types
5033         (MessageIter::__init__): changed iteration limit to match D-BUS
5034         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5035         STRUCT and VARIENT type support
5036         (MessageIter::python_value_to_dbus_sig): made recursive to support
5037         recursive types
5038         (MessageIter::append*): added Signature, dict, tuple 
5039         support
5040
5041         * python/examples/example-client.py: added examples of getting tuples
5042         and dicts
5043
5044         * python/examples/example-service.py: added examples of sending tuples
5045         and dicts
5046
5047         * python/examples/example-signal-recipient.py: Fixed to handle new
5048         signal callback format
5049
5050 2005-02-10  Havoc Pennington  <hp@redhat.com>
5051
5052         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5053         (call dbus_g_proxy_add_signal)
5054
5055         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5056         escape the hostname
5057         (_dbus_server_new_for_domain_socket): escape the path
5058
5059         * dbus/dbus-address.c (dbus_address_escape_value): new
5060         (dbus_address_unescape_value): new
5061         (dbus_parse_address): unescape values
5062
5063         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5064
5065         * doc/dbus-specification.xml: explain how to escape values in
5066         addresses
5067
5068 2005-02-10  Havoc Pennington  <hp@redhat.com>
5069
5070         * dbus/dbus-message-factory.c (generate_special): modify test to
5071         avoid using a non-basic dict key
5072
5073         * dbus/dbus-marshal-validate-util.c: add test for the below
5074
5075         * doc/dbus-specification.xml: require that dict keys are a basic
5076         type
5077
5078         * dbus/dbus-marshal-validate.c
5079         (_dbus_validate_signature_with_reason): require that dict key is a
5080         basic type
5081
5082 2005-02-10  Havoc Pennington  <hp@redhat.com>
5083
5084         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5085         change to be _and_unlock instead of _unlocked
5086
5087         * dbus/dbus-connection.c
5088         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5089         have no_update so we can find this bug quickly in future
5090
5091 2005-02-10  Havoc Pennington  <hp@redhat.com>
5092
5093         * dbus/dbus-message-util.c (verify_test_message): tests for string
5094         array
5095
5096         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5097         support for arrays of string/signature/path
5098
5099 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5100
5101         * dbus/dbus-connection.c
5102         (_dbus_connection_queue_received_message_link,
5103         _dbus_connection_message_sent): Add the path to
5104         the verbose output.
5105         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5106         _dbus_connection_send_preallocated_unlocked(), updated the
5107         dispatch status, and unlocks.  Fixes a bug where certain
5108         situations (like a broken pipe) could cause a Disconnect message
5109         to not be sent, tricking the bus into thinking a service was still
5110         there when the process had quit.
5111         (_dbus_connection_send_preallocated): Call
5112         _dbus_connection_send_preallocated_and_unlock().
5113         (_dbus_connection_send_and_unlock): Added.  Calls
5114         _dbus_connection_send_preallocated_and_unlock().
5115         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5116         (dbus_connection_send_with_reply): Update the dispatch status and
5117         unlock.
5118
5119         * mono/Service.cs (~Service): Added.  Removes the filter so that
5120         we don't get unmanaged code calling back into a GCed delegate.
5121         (RemoveFilter); Added.
5122
5123 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5124
5125         * dbus/dbus-message.c (dbus_message_iter_open_container):
5126         - Removed check for iterator type being an array because
5127         get_arg_type does not work with writer iterators
5128         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5129
5130 2005-02-07  Havoc Pennington  <hp@redhat.com>
5131
5132         * doc/dbus-specification.xml: some more language cleanups; add
5133         stuff about how to deal with invalid protocol and extension
5134         points; add _ to allowed chars in auth commands; add EXTENSION_
5135         auth command prefix
5136
5137 2005-02-06  Havoc Pennington  <hp@redhat.com>
5138
5139         * s/expected/required/ in a couple places for clarity
5140
5141 2005-02-07  Colin Walters  <walters@verbum.org>
5142
5143         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5144         sender or proposed_recipient.
5145
5146 2005-02-06  Havoc Pennington  <hp@redhat.com>
5147
5148         * dbus/dbus-message-factory.c (generate_special): more tests
5149
5150         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5151         array length that exceeds the maximum
5152
5153 2005-02-05  Havoc Pennington  <hp@redhat.com>
5154
5155         * dbus/dbus-message-factory.c (generate_special): more test cases,
5156         increasing coverage
5157
5158         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5159         reason why a signature was invalid
5160
5161         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5162         skip the length of the string before we look at it in validation
5163
5164         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5165         equal_substring
5166
5167         * dbus/dbus-message.c (_dbus_message_loader_new): default
5168         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5169
5170 2005-02-05  Havoc Pennington  <hp@redhat.com>
5171
5172         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5173         if the signature of a variant was empty
5174         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5175         struct with no element type)
5176
5177         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5178         mangled messages to break things
5179
5180 2005-02-04  Havoc Pennington  <hp@redhat.com>
5181
5182         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5183         g_quark_try_string() so it actually can return 0
5184         (dbus_g_proxy_connect_signal): ditto
5185
5186 2005-02-04  Havoc Pennington  <hp@redhat.com>
5187
5188         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5189         bogus warning
5190         (tristring_from_message): assert cleanly on null path/interface
5191         (should not be possible though I decided later)
5192         (dbus_g_proxy_dispose): move proxy manager unregistration here
5193         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5194         g_return_if_fail() checks
5195
5196 2005-02-04  Havoc Pennington  <hp@redhat.com>
5197
5198         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5199
5200         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5201         (with some minor changes)
5202
5203         * doc/dbus-specification.xml: add deprecated attribute to
5204         introspection format
5205
5206 2005-01-31  Havoc Pennington  <hp@redhat.com>
5207
5208         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5209         think it's sort of right
5210
5211 2005-01-30  Havoc Pennington  <hp@redhat.com>
5212
5213         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5214
5215 2005-01-30  Havoc Pennington  <hp@redhat.com>
5216
5217         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5218
5219         * autogen.sh: change to autotools 1.9
5220
5221         * glib/dbus-gproxy.c: completely change how signals work
5222         (dbus_g_proxy_add_signal): new function to specify signature of a
5223         signal
5224         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5225         and g_warning if the incoming message has the wrong signature.
5226
5227 2005-01-30  Havoc Pennington  <hp@redhat.com>
5228
5229         * tools/dbus-names-model.c (have_names_notify): fix this
5230
5231         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5232         up the string array handling a bit 
5233
5234 2005-01-30  Havoc Pennington  <hp@redhat.com>
5235
5236         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5237         (dbus_g_pending_call_cancel): new function
5238
5239         * dbus/dbus-glib.h: move GType decls for connection/message here;
5240         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5241         here, just kind of rationalizing how we handle all that
5242
5243         * tools/dbus-names-model.c: new file for a tree model listing the
5244         services on a bus
5245
5246         * tools/dbus-tree-view.c (model_new): use proper typing on the
5247         model rows
5248
5249 2005-01-30  Havoc Pennington  <hp@redhat.com>
5250
5251         * glib/dbus-gmain.c: add a custom GSource back that just checks
5252         whether the message queue has anything in it; otherwise, there are 
5253         cases where we won't see messages in the queue since there was no 
5254         IO visible to the glib main loop
5255
5256         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5257         increase default message timeout to 25 seconds
5258
5259 2005-01-30  Havoc Pennington  <hp@redhat.com>
5260
5261         * test/glib/test-profile.c (no_bus_stop_server): remove the
5262         warning about the g_warning that I just fixed
5263
5264         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5265         custom source, seems to be a lot easier to understand and work
5266         better.
5267
5268 2005-01-30  Havoc Pennington  <hp@redhat.com>
5269
5270         I think this main loop thing is conceptually broken, but here are 
5271         some band aids. I'll maybe rewrite it in a minute.
5272         
5273         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5274         custom GSource, so don't pass it in; confusing
5275         (gsource_server_finalize, gsource_connection_finalize): add
5276         finalize handlers that remove all the watches.  
5277
5278 2005-01-30  Havoc Pennington  <hp@redhat.com>
5279
5280         * glib/dbus-gobject.c (introspect_properties): fix the XML
5281         generated
5282
5283         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5284         which effectively detects the use of freed messages
5285
5286         * glib/dbus-gobject.c (handle_introspect): modify and return the
5287         reply message instead of the incoming message
5288
5289         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5290         gee, maybe it should SEND THE XML instead of just making a string
5291         and freeing it again ;-)
5292
5293         * tools/dbus-print-message.c (print_message): improve printing of
5294         messages
5295
5296         * configure.in: add debug-glib.service to the output
5297
5298 2005-01-30  Havoc Pennington  <hp@redhat.com>
5299
5300         dbus-viewer introspected and displayed the bus driver
5301         
5302         * dbus/dbus-object-tree.c 
5303         (object_tree_test_iteration): add tests for a handler registered on "/"
5304
5305         * dbus/dbus-object-tree.c
5306         (_dbus_decompose_path): fix to handle path "/" properly
5307         (run_decompose_tests): add tests for path decomposition
5308         
5309         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5310         properly
5311
5312         * glib/dbus-gobject.c (handle_introspect): fix quotes
5313
5314         * test/glib/run-test.sh: support launching the bus, then running
5315         dbus-viewer
5316
5317         * test/glib/test-service-glib.c (main): put in a trivial gobject
5318         subclass and register it on the connection
5319
5320         * bus/driver.c (bus_driver_handle_introspect): implement
5321         introspection of the bus driver service
5322
5323         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5324         identifiers, doctype decl
5325
5326         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5327         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5328         returning the service unchanged.
5329         (bus_driver_handle_message): remove old check for reply_serial in
5330         method calls, now the message type deals with that
5331         (bus_driver_handle_message): handle NULL interface
5332
5333         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5334
5335         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5336         -1 for len
5337
5338         * tools/dbus-viewer.c: add support for introspecting a service on
5339         a bus
5340
5341         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5342         (dbus_g_pending_call_unref): add
5343
5344 2005-01-29  Havoc Pennington  <hp@redhat.com>
5345
5346         * tools/dbus-tree-view.c: add support for displaying properties.
5347         (run dbus-viewer with an introspect xml file as arg, then resize
5348         the window so the tree elements show up, not sure what that is)
5349
5350         * glib/dbus-gobject.c (handle_introspect): return
5351         org.freedesktop.Properties and org.freedesktop.Introspectable
5352         interfaces when we are introspected.
5353
5354         * doc/dbus-specification.xml: allow empty interface name when 
5355         Get/Set a property
5356
5357 2005-01-29  Havoc Pennington  <hp@redhat.com>
5358
5359         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5360         though it uses glib, it could be extended for any binding in
5361         principle
5362
5363         * glib/dbus-gobject.c (gobject_message_function): change to the
5364         new way properties work
5365
5366         * dbus/dbus-protocol.h: add the new interfaces
5367
5368         * doc/dbus-specification.xml: document the introspection format,
5369         Introspectable interface, and add an org.freedesktop.Properties
5370         interface.
5371
5372         * glib/dbus-gparser.c: add support for a <property> element
5373
5374         * glib/dbus-gidl.c: add PropertyInfo
5375
5376         * glib/dbus-gobject.c (handle_introspect): put the outermost
5377         <node> outside the signal and property descriptions.
5378         (introspect_properties): export properties as <property> rather
5379         than as method calls
5380
5381 2005-01-28  Havoc Pennington  <hp@redhat.com>
5382
5383         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5384         related to authentication protocol
5385
5386 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5387
5388         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5389                 - BUS_ACTIVATION -> BUS_STARTER
5390                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5391                 - class MessageIter (__init__): Added recursion checking 
5392                 so we throw a nice error instead of just disconnecting from the
5393                 bus.
5394                 (get): Added arg_type parameter for recursion.
5395                 Removed the nil type
5396                 Added signiture type placeholder (not implemented)
5397                 Added struct type placeholder (not implemented)
5398                 Added varient type placeholder (not implemented)
5399                 Commented out dict type for now     
5400                 (get_element_type): renamed from get_array_type
5401                 (get_*): changed to use the dbus_message_iter_get_basic API
5402                 (get_*_array): removed in favor of recursive get_array method
5403                 (get_array): new recursive method which calls get to marshal
5404                 the elements of the array
5405                 (value_to_dbus_sig): New method returns the corrasponding
5406                 dbus signiture to a python value
5407                 (append): Comment out dict handling for now
5408                 Handle lists with the new recursive API
5409                 Comment out None handling for now
5410                 (append_nil): removed
5411                 (append_*): changed to use dbus_message_iter_append_basic API
5412                 (append_*_array): removed in favor of recursive append_array 
5413                 method
5414                 (__str__): Make it easier to print out recursive iterators
5415                 for debugging
5416                 - class Message (__str__): moved type inspection to the
5417                 MessageIter class' __str__ method
5418                 (get_iter): Added an append parameter wich defaults to False
5419                 If True use the new API's to create an append iterator
5420
5421         * python/dbus.py: Update to use new bindings API
5422                 - TYPE_ACTIVATION -> TYPE_STARTER
5423                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5424                 - class ActivationBus -> class StarterBus
5425                 - class RemoteObject (__call__): get an append iterator
5426                 - (_dispatch_dbus_method_call): get an append iterator
5427                 - class Object (emit_signal): get an append iterator
5428
5429         * python/examples/: Fixed up the examples to work with the new API
5430                 
5431 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5432
5433         * configure.in: Bump version up to 0.30.
5434
5435         * HACKING: Add a release item to bump the version number up after 
5436         a release.
5437
5438 2005-01-28  Havoc Pennington  <hp@redhat.com>
5439
5440         * doc/dbus-specification.xml: update to describe 16-bit types and
5441         dict entries
5442
5443         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5444         assertion
5445
5446         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5447         type
5448
5449         * dbus/dbus-marshal-recursive.c: implement
5450
5451 2005-01-27  Havoc Pennington  <hp@redhat.com>
5452
5453         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5454
5455         * configure.in: find the right type for 16 and 32 bit ints as well
5456         as 64
5457
5458         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5459         the 16-bit types so people don't have to stuff them in 32-bit or
5460         byte arrays.
5461
5462 2005-01-27  Havoc Pennington  <hp@redhat.com>
5463
5464         * dbus/dbus-message.c: byteswap the message if you init an
5465         iterator to read/write from it
5466         
5467         * dbus/dbus-marshal-byteswap.c: new file implementing 
5468         _dbus_marshal_byteswap()
5469
5470         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5471
5472 2005-01-26  Havoc Pennington  <hp@redhat.com>
5473         
5474         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5475         build, apparently - nobody noticed?)
5476         
5477 2005-01-26  Havoc Pennington  <hp@redhat.com>
5478
5479         * dbus/dbus-marshal-recursive.h: remove todo comment
5480
5481 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5482
5483         * Land the mono binding changes to conform to the new APIs.
5484
5485         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5486         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5487
5488         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5489         type code as a string.
5490         (InitAppending): Rename dbus_message_append_iter_init() to
5491         dbus_message_iter_init_append().
5492
5493         * mono/BusDriver.cs: Rename ServiceEventHandler to
5494         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5495         Rename ServiceOwnerChanged to NameOwnerChanged.
5496
5497         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5498         underlying C call.
5499
5500         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5501
5502         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5503         dbus_bus_acquire_service() to dbus_bus_request_name().
5504
5505         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5506         of Type.UnderlyingSystemType to get the correct element type for
5507         the array.
5508         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5509         dbus_message_get_{element|arg}_type() instead of
5510         dbus_message_iter_init_array_iterator().
5511         (Append): Replace dbus_message_iter_append_array() with
5512         dbus_message_iter_open_container() and
5513         dbus_message_iter_close_container().
5514
5515         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5516         types have been removed.
5517         
5518         * mono/DBusType/*.cs: Replace calls of
5519         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5520         but specify the type in the DllImport extern declaration.  Ditto
5521         for dbus_message_iter_append_[type]() ->
5522         dbus_message_iter_append_basic().
5523
5524         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5525         NameOwnerChangedHandler.
5526
5527 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5528
5529         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5530                 - get_base_service -> get_unique_name
5531                 - bus_get_base_service -> bus_get_unique_name
5532                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5533                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5534                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5535                 - bus_activate_service -> bus_start_service_by_name
5536                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5537                 - bus_acquire_service -> bus_request_name
5538                 - dbus_bus_acquire_service -> dbus_bus_request_name
5539                 - bus_service_exists -> bus_name_has_owner
5540                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5541
5542         * python/dbus.py: Rename of methods
5543                 - activate_service -> start_service_by_name
5544                 - bus_acquire_service -> bus_request_name
5545                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5546                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5547
5548         
5549 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5550
5551         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5552         signature for the method that can't be found.
5553
5554         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5555         the message has any arguments, we need to call
5556         _dbus_type_reader_get_current_type(), not
5557         _dbus_type_reader_has_next().
5558
5559 2005-01-24  Havoc Pennington  <hp@redhat.com>
5560
5561         * dbus/dbus-message-factory.c: more testing of message validation
5562
5563         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5564         header
5565
5566 2005-01-23  Havoc Pennington  <hp@redhat.com>
5567
5568         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5569         get this all working, not many tests in the framework yet though
5570
5571 2005-01-22  Havoc Pennington  <hp@redhat.com>
5572
5573         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5574         tutorial, based on work from David Wheeler.
5575
5576 2005-01-21  Havoc Pennington  <hp@redhat.com>
5577
5578         * dbus/dbus-bus.c: add more return_if_fail checks
5579
5580         * dbus/dbus-message.c (load_message): have the "no validation"
5581         mode (have to edit the code to toggle the mode for now though)
5582
5583         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5584         skips all validation; I want to use this at least for benchmark
5585         baseline, I'm not sure if it should be a publicly-available switch.
5586
5587 2005-01-21  Havoc Pennington  <hp@redhat.com>
5588
5589         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5590         toplevel doxygen group as the low-level API stuff
5591
5592         * dbus/dbus.h: note that libdbus is the low-level API
5593
5594 2005-01-20  Havoc Pennington  <hp@redhat.com>
5595
5596         * update-dbus-docs.sh: script to update docs on the web site, only
5597         works for me though. neener.
5598
5599 2005-01-20  Havoc Pennington  <hp@redhat.com>
5600
5601         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5602         code can reveal bugs in it
5603
5604 2005-01-20  Havoc Pennington  <hp@redhat.com>
5605
5606         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5607         select() version, patches from Tor Lillqvist
5608
5609 2005-01-20  Havoc Pennington  <hp@redhat.com>
5610
5611         * doc/dbus-tutorial.xml: replace > with &gt;
5612
5613         * bus/services.c (bus_registry_acquire_service): validate the name
5614         and return a better error if it's no good.
5615
5616         * doc/dbus-specification.xml: note NO_AUTO_START change
5617
5618         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5619         from AUTO_START, we're toggling the default
5620
5621         * bus/dispatch.c: adapt the tests to change of auto-start default
5622
5623 2005-01-18  Havoc Pennington  <hp@redhat.com>
5624
5625         * rename dbus-daemon-1 to dbus-daemon throughout
5626
5627 2005-01-18  Havoc Pennington  <hp@redhat.com>
5628
5629         * Throughout, grand renaming to strip out the use of "service",
5630         just say "name" instead (or "bus name" when ambiguous).  Did not
5631         change the internal code of the message bus itself, only the
5632         programmer-facing API and messages.
5633         
5634         * doc/dbus-specification.xml: further update the message bus section
5635         
5636         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5637         in error case
5638
5639 2005-01-17  Havoc Pennington  <hp@redhat.com>
5640
5641         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5642         ever
5643
5644         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5645         "invalid name character" not only non-ASCII
5646
5647         * doc/dbus-specification.xml: further update spec, message bus 
5648         parts are still out-of-date but the marshaling etc. stuff is now
5649         accurate-ish
5650
5651 2005-01-17  Havoc Pennington  <hp@redhat.com>
5652
5653         * doc/dbus-specification.xml: partially update spec
5654
5655 2005-01-17  Havoc Pennington  <hp@redhat.com>
5656
5657         * Throughout, align variant bodies according to the contained
5658         type, rather than always to 8. Should save a fair bit of space in
5659         message headers.
5660         
5661         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5662         fix handling of case where p == end
5663
5664         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5665
5666 2005-01-17  Havoc Pennington  <hp@redhat.com>
5667
5668         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5669
5670         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5671         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5672         are marshaling/unmarshaling a boolean.
5673
5674 2005-01-16  Havoc Pennington  <hp@redhat.com>
5675
5676         This is about it on what can be disabled/deleted from libdbus
5677         easily, back below 150K anyhow. Deeper cuts are more work than 
5678         just turning the code off as I've done here.
5679         
5680         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5681         signed int convenience funcs
5682
5683         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5684         verbose mode
5685
5686         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5687         things out of libdbus
5688
5689         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5690         
5691         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5692         tests-enabled-only, though it should probably be deleted)
5693
5694         * dbus/dbus-message-util.c: same stuff
5695
5696         * dbus/dbus-auth-util.c: same stuff
5697
5698 2005-01-16  Havoc Pennington  <hp@redhat.com>
5699
5700         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5701
5702         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5703         way for stripping down dbus-userdb.c stuff included in libdbus.
5704         Rename _dbus_parse_uid for consistency.
5705
5706 2005-01-16  Havoc Pennington  <hp@redhat.com>
5707
5708         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5709         name the assertion failed in
5710
5711         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5712         (_dbus_return_val_if_fail): assert that the name of the function
5713         containing the check doesn't start with '_', since we only want to 
5714         use checks on public functions
5715         
5716         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5717         checks to assertions
5718
5719         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5720         change checks to asserts for private function
5721
5722         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5723         to asserts for private function
5724
5725         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5726         broken assertion that was breaking make check
5727         (_dbus_type_reader_array_is_empty): remove this rather than fix
5728         it, was only used in assertions
5729
5730 2005-01-16  Havoc Pennington  <hp@redhat.com>
5731
5732         * test/unused-code-gc.py: hacky script to find code that's used
5733         only by the bus (not libdbus) or used only by tests or not used at
5734         all. It has some false alarms, but looks like we can clean up a
5735         lot of size from libdbus.
5736
5737         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5738         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5739         
5740 2005-01-16  Havoc Pennington  <hp@redhat.com>
5741
5742         * Add and fix docs according to Doxygen warnings throughout
5743         source.
5744         
5745         * dbus/dbus-marshal-recursive.c
5746         (_dbus_type_reader_array_is_empty): change this to just call
5747         array_reader_get_array_len() and make it static
5748
5749         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5750         from get_array_type
5751         (dbus_message_iter_init_append): rename from append_iter_init
5752
5753         * dbus/dbus-marshal-recursive.c
5754         (_dbus_type_reader_get_element_type): rename from
5755         _dbus_type_reader_get_array_type
5756
5757 2005-01-15  Havoc Pennington  <hp@redhat.com>
5758
5759         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5760
5761         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5762         when DBUS_DISABLE_ASSERT
5763         (_dbus_marshal_set_basic): be sure we align for the string length
5764
5765         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5766         this look faster
5767
5768         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5769         inline macro version
5770         (_dbus_string_set_byte): provide inline macro version
5771
5772 2005-01-15  Havoc Pennington  <hp@redhat.com>
5773
5774         * Land the new message args API and type system.
5775
5776         This patch is huge, but the public API change is not 
5777         really large. The set of D-BUS types has changed somewhat, 
5778         and the arg "getters" are more geared toward language bindings;
5779         they don't make a copy, etc.
5780
5781         There are also some known issues. See these emails for details
5782         on this huge patch:
5783         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5784         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5785         
5786         * dbus/dbus-marshal-*: all the new stuff
5787
5788         * dbus/dbus-message.c: basically rewritten
5789
5790         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5791         freed blocks to be all non-nul bytes so using freed memory is less
5792         likely to work right
5793
5794         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5795         DBUS_FAIL_MALLOC=N environment variable, so you can do
5796         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5797         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5798         thorough.
5799
5800         * qt/message.cpp: port to the new message args API
5801         (operator<<): use str.utf8() rather than str.unicode()
5802         (pretty sure this is right from the Qt docs?)
5803
5804         * glib/dbus-gvalue.c: port to the new message args API
5805
5806         * bus/dispatch.c, bus/driver.c: port to the new message args API
5807
5808         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5809         "locked" flag to TRUE and align_offset to 0; I guess we never
5810         looked at these anyhow, but seems cleaner.
5811
5812         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5813         move allocation padding macro to this header; use it to implement
5814         (_DBUS_STRING_STATIC): ability to declare a static string.
5815
5816         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5817         change to return TRUE if the interface is not set.
5818
5819         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5820         to dbus-marshal-validate.[hc]
5821
5822         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5823         dbus-internals.c
5824
5825         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5826         to dbus-marshal-*.[hc]
5827
5828         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5829         function here from dbus-marshal.c
5830
5831 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5832
5833         * NEWS: Update for 0.23.
5834
5835         * configure.in: Release 0.23.
5836
5837 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5838
5839         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5840         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5841         behind.
5842
5843         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5844         uninstall"
5845
5846         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5847         is an enum, get the enum's underlying type.  Another mono
5848         1.1.3 fix.
5849
5850 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5851
5852         Patch from Sjoerd Simons <sjoerd@luon.net>
5853
5854         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5855         DESTDIR.  It breaks stuff.
5856
5857 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5858
5859         Patch from Tambet Ingo <tambet@ximian.com>
5860
5861         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5862         calling type.GetElementType().  The code previously depended on
5863         broken Mono behavior, which was fixed in Mono 1.1.3.
5864
5865         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5866         Activator.CreateInstance() so that the class's constructor is
5867         called with the right parameters.
5868
5869 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5870
5871         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5872
5873         * dbus/dbus-connection.c
5874         (_dbus_connection_queue_received_message_link): Call
5875         _dbus_connection_remove_timeout() instead of the _locked()
5876         variant, since it's always called from
5877         _dbus_connection_handle_watch(), which handles the locking.
5878         Removed the _locked() variant since it's no longer used.
5879
5880 2005-01-03  Havoc Pennington  <hp@redhat.com>
5881
5882         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5883         return
5884         
5885 2004-12-26  Havoc Pennington  <hp@redhat.com>
5886
5887         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5888
5889 2005-01-03  Havoc Pennington  <hp@redhat.com>
5890
5891         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5892         floating point
5893
5894         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5895
5896 2005-01-02  Havoc Pennington  <hp@redhat.com>
5897
5898         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5899
5900 2005-01-01  Havoc Pennington  <hp@redhat.com>
5901
5902         * configure.in: add -Wfloat-equal
5903
5904 2005-01-01  Havoc Pennington  <hp@redhat.com>
5905
5906         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5907         for a variety of reasons '==' doesn't do this.
5908
5909 2004-12-31  Havoc Pennington  <hp@redhat.com>
5910
5911         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5912         I keep wishing I had
5913
5914 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5915
5916         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5917
5918 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5919
5920         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5921         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5922         dbus-protocol.h.  Because they are defines and not enums they are not
5923         autogenerated.
5924
5925 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5926
5927         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5928         dbus_bus_activate_service
5929
5930         * python/dbus.py (Bus.activate_service): activate a service on the
5931         bus.
5932
5933 2004-12-24  Havoc Pennington  <hp@redhat.com>
5934
5935         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5936         file format has also changed and I haven't adapted to that yet
5937         
5938         * Makefile.am: load .gcno files from latest gcc
5939
5940 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5941         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5942
5943         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5944         lowlevel binding
5945
5946         * python/dbus.py (get_unix_user): Added binding to 
5947         call dbus_bindings.bus_get_unix_user
5948
5949         * python/extract.py: Modified the proto_pat regex to
5950         handle unsigned long
5951
5952 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5953
5954         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5955         better POSIX compliance.
5956
5957 2004-12-19  Havoc Pennington  <hp@redhat.com>
5958
5959         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5960         (_dbus_string_insert_8_aligned): new functions
5961
5962         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5963
5964 2004-12-18  Havoc Pennington  <hp@redhat.com>
5965
5966         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5967         macro
5968
5969         * dbus/dbus-message.c: fix a comment, and add a still-unused
5970         not-implemented function
5971
5972         * dbus/dbus-marshal.h: fix comment
5973
5974         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5975
5976 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5977
5978         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5979         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5980         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5981         Type.UnderlyingSystemType to get the actual system type
5982         underneath.  This code previously depended on the broken Mono
5983         behavior, which was fixed in 1.1.3.
5984
5985 2004-11-27  Havoc Pennington  <hp@redhat.com>
5986
5987         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5988         are disabled
5989         (_dbus_string_get_const_data): inline when asserts are disabled
5990
5991         * dbus/dbus-message.c: record the _dbus_current_generation of
5992         creation so we can complain if dbus_shutdown() is used improperly.
5993         Do this only if checks are enabled.
5994
5995         * dbus/dbus-connection.c: ditto
5996         
5997 2004-11-26  Havoc Pennington  <hp@redhat.com>
5998
5999         * test/glib/test-profile.c: add with_bus mode to profile echoes
6000         that go through the bus.
6001
6002         * test/glib/run-test.sh: add ability to run test-profile
6003
6004         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6005         config file reload.
6006
6007 2004-11-26  Havoc Pennington  <hp@redhat.com>
6008
6009         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6010         thing was implemented
6011
6012 2004-11-26  Havoc Pennington  <hp@redhat.com>
6013
6014         * test/glib/test-profile.c: tweak a bit, add support for some
6015         made-up minimal malloc overhead with plain sockets, since in 
6016         real life some sort of buffers are unavoidable thus we could 
6017         count them in the theoretical best case
6018
6019 2004-11-26  Havoc Pennington  <hp@redhat.com>
6020
6021         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6022         where I was trying to cache one too many messages
6023
6024 2004-11-26  Havoc Pennington  <hp@redhat.com>
6025
6026         * dbus/dbus-message.c: reimplement message cache as an array which 
6027         makes the cache about twice as fast and saves maybe 1.5% overall
6028
6029 2004-11-26  Havoc Pennington  <hp@redhat.com>
6030
6031         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6032         message cache lock here
6033
6034 2004-11-26  Havoc Pennington  <hp@redhat.com>
6035
6036         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6037         the "char byte_order" next to each other to save 4 bytes
6038         (dbus_message_new_empty_header): reduce preallocation, since the
6039         message cache should achieve a similar effect
6040         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6041         message cache that keeps a few DBusMessage around in a pool,
6042         another 8% speedup or so.
6043
6044         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6045
6046 2004-11-25  Havoc Pennington  <hp@redhat.com>
6047
6048         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6049         to write, without reading or blocking, try it before the poll()
6050         and skip the poll() if nothing remains to write. This is about a
6051         3% speedup in the echo client/server
6052
6053 2004-11-25  Havoc Pennington  <hp@redhat.com>
6054
6055         The primary change here is to always write() once before adding
6056         the write watch, which gives us about a 10% performance increase.
6057         
6058         * dbus/dbus-transport-unix.c: a number of modifications to cope
6059         with removing messages_pending
6060         (check_write_watch): properly handle
6061         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6062         messages_pending stuff
6063         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6064         AUTHENTICATED cases
6065         (unix_handle_watch): after writing, see if the write watch can be
6066         removed
6067         (unix_do_iteration): assert that write_watch/read_watch are
6068         non-NULL rather than testing that they aren't, since they 
6069         aren't allowed to be NULL. check_write_watch() at the end so 
6070         we add the watch if we did not finish writing (e.g. got EAGAIN)
6071
6072         * dbus/dbus-transport-protected.h: remove messages_pending call,
6073         since it resulted in too much inefficient watch adding/removing; 
6074         instead we now require that the transport user does an iteration 
6075         after queueing outgoing messages, and after trying the first
6076         write() we add a write watch if we got EAGAIN or exceeded our 
6077         max bytes to write per iteration setting
6078
6079         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6080         function
6081
6082         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6083         freed and then accessed, valgrind flagged this bug, fix it
6084
6085         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6086         as the last valid field plus 1, where really it is equal to the
6087         last valid field. Corrects some message corruption issues.
6088
6089         * dbus/dbus-mainloop.c: verbosity changes
6090
6091         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6092         instead of aborting in one of the test codepaths
6093
6094         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6095         caused not printing the pid ever again if a verbose was missing
6096         the newline at the end
6097         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6098
6099         * dbus/dbus-connection.c: verbosity changes; 
6100         (dbus_connection_has_messages_to_send): new function
6101         (_dbus_connection_message_sent): no longer call transport->messages_pending
6102         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6103         try to write() immediately, so we can avoid the write watch. This
6104         is the core purpose of this patchset
6105         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6106         dump the outgoing message queue, so nobody will get confused
6107         trying to send them or thinking stuff is pending to be sent
6108
6109         * bus/test.c: verbosity changes
6110
6111         * bus/driver.c: verbosity/assertion changes
6112
6113         * bus/dispatch.c: a bunch of little tweaks to get it working again
6114         because this patchset changes when/where you need to block.
6115
6116 2004-11-23  Havoc Pennington  <hp@redhat.com>
6117
6118         * test/glib/test-profile.c: modify to accept a plain_sockets
6119         argument in which case it will bench plain sockets instead of
6120         libdbus, for comparison purposes.
6121
6122 2004-11-22  Havoc Pennington  <hp@redhat.com>
6123
6124         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6125         threads for more time, so sysprof can get a grip on it.
6126
6127         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6128         pointless variable
6129
6130 2004-11-13  Havoc Pennington  <hp@redhat.com>
6131
6132         * test/glib/test-profile.c: fix this thing up a bit
6133
6134         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6135         preallocation sizes by a fair bit; not sure if this will be an
6136         overall performance win or not, but it does reduce reallocs.
6137
6138         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6139         the test hack that forced constant realloc if asserts are
6140         disabled, so we can profile sanely. Sprinkle in some
6141         _DBUS_UNLIKELY() which are probably pointless, but before I
6142         noticed the real performance problem I put them in.
6143         (_dbus_string_validate_utf8): micro-optimize this thing a little
6144         bit, though callgrind says it didn't help; then special-case
6145         ascii, which did help a lot; then be sure we detect nul bytes as
6146         invalid, which is a bugfix.
6147         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6148         superstition; use memset to nul the padding instead of a manual
6149         loop.
6150         (_dbus_string_get_length): inline this as a
6151         macro; it showed up in the profile because it's used for loop
6152         tests and so forth
6153
6154 2004-11-10  Colin Walters  <walters@verbum.org>
6155
6156         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6157         for extra paranoia.
6158
6159 2004-11-09  Colin Walters  <walters@verbum.org>
6160
6161         * dbus/dbus-string.c (_dbus_string_get_length): New
6162         function, writes DBusString to C buffer.
6163
6164         * dbus/dbus-string.h: Prototype it.
6165
6166         * dbus/dbus-message.c (dbus_message_type_to_string): New
6167         function, converts message type into C string.
6168
6169         * dbus/dbus-message.h: Prototype it.
6170
6171         * bus/selinux.c (bus_selinux_check): Take source pid,
6172         target pid, and audit data.  Pass audit data to
6173         avc_has_perm.
6174         (log_audit_callback): New function, appends extra
6175         audit information.
6176         (bus_selinux_allows_acquire_service): Also take
6177         service name, add it to audit data.
6178         (bus_selinux_allows_send): Also take message
6179         type, interface, method member, error name,
6180         and destination, and add them to audit data.
6181         (log_cb): Initialize func_audit.
6182         
6183         * bus/selinux.h (bus_selinux_allows_acquire_service)
6184         (bus_selinux_allows_send): Update prototypes 
6185
6186         * bus/services.c (bus_registry_acquire_service): Pass
6187         service name to bus_selinux_allows_acquire_service.
6188
6189         * bus/bus.c (bus_context_check_security_policy): Pass
6190         additional audit data.  Move assignment of dest
6191         to its own line.
6192
6193 2004-11-07  Colin Walters  <walters@verbum.org>
6194
6195         * dbus/dbus-transport-unix.c (do_authentication): Always
6196         initialize auth_completed.
6197         
6198 2004-11-07  Colin Walters  <walters@verbum.org>
6199
6200         * bus/bus.c (load_config): Break into three
6201         separate functions: process_config_first_time_only,
6202         process_config_every_time, and process_config_postinit.
6203         (process_config_every_time): Move call of
6204         bus_registry_set_service_context_table into
6205         process_config_postinit.
6206         (process_config_postinit): New function, does
6207         any processing that needs to happen late
6208         in initialization (and also on reload).
6209         (bus_context_new): Instead of calling load_config,
6210         open config parser here and call process_config_first_time_only
6211         and process_config_every_time directly.  Later, after
6212         we have forked but before changing UID,
6213         invoke bus_selinux_full_init, and then call
6214         process_config_postinit.
6215         (bus_context_reload_config): As in bus_context_new,
6216         load parse file inside here, and call process_config_every_time
6217         and process_config_postinit.
6218
6219         * bus/services.h, bus/services.c
6220         (bus_registry_set_service_context_table): Rename
6221         from bus_registry_set_sid_table.  Take string hash from config
6222         parser, and convert them here into SIDs.
6223
6224         * bus/config-parser.c (struct BusConfigParser): Have
6225         config parser only store a mapping of service->context
6226         string.
6227         (merge_service_context_hash): New function.
6228         (merge_included): Merge context string hashes instead
6229         of using bus_selinux_id_table_union.
6230         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6231         simply create a new string hash.
6232         (bus_config_parser_unref): Unref it.
6233         (start_selinux_child): Simply insert strings into hash,
6234         don't call bus_selinux_id_table_copy_over.
6235
6236         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6237         (bus_selinux_id_table_copy_over): Delete.
6238
6239 2004-11-03  Colin Walters  <walters@verbum.org>
6240
6241         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6242         variables.
6243         
6244 2004-11-03  Colin Walters  <walters@verbum.org>
6245
6246         * bus/test-main.c (test_pre_hook): Fix test logic,
6247         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6248
6249 2004-11-02  Colin Walters  <walters@redhat.com>
6250
6251         * bus/selinux.c (bus_selinux_init): Split into two functions,
6252         bus_selinux_pre_init and bus_selinux_post_init.
6253         (bus_selinux_pre_init): Just determine whether SELinux is
6254         enabled.
6255         (bus_selinux_post_init): Do everything else.
6256
6257         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6258         config file, and bus_selinux_post_init after.  This ensures that
6259         we don't lose the policyreload notification thread that
6260         bus_selinux_init created before forking previously.
6261         
6262         * bus/test-main.c (test_pre_hook): Update for split.
6263
6264 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6265
6266         Patch from Johan Fischer <linux@fischaz.com>
6267         
6268         * mono/doc/Makefile.am (install-data-local): Added directory
6269         install for DESTDIR
6270
6271 2004-10-29  Colin Walters  <walters@redhat.com>
6272
6273         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6274         parameter for fd to write pid to.       
6275
6276         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6277         
6278         * bus/bus.c (bus_context_new): Pass print_pid_fd
6279         to _dbus_become_daemon (bug #1720)
6280
6281 2004-10-29  Colin Walters  <walters@redhat.com>
6282
6283         Patch from Ed Catmur <ed@catmur.co.uk>
6284
6285         * mono/doc/Makefile.am (install-data-local): Handle
6286         DESTDIR.
6287
6288 2004-10-29  Colin Walters  <walters@redhat.com>
6289
6290         * bus/.cvsignore, qt/.cvsignore: Update.
6291
6292 2004-10-29  Colin Walters  <walters@redhat.com>
6293
6294         Patch from Kristof Vansant <de_lupus@pandora.be>
6295
6296         * configure.in: Detect Slackware.
6297         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6298         * bus/rc.messagebus.in: New file.
6299
6300 2004-10-29  Colin Walters  <walters@redhat.com>
6301
6302         * tools/dbus-monitor.c (filter_func): Return
6303         DBUS_HANDLER_RESULT_HANDLED in filter function
6304         for now.  See:
6305         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6306
6307 2004-10-29  Colin Walters  <walters@redhat.com>
6308
6309         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6310
6311         * bus/services.c (bus_registry_acquire_service): 
6312         Correctly retrieve service name from DBusString
6313         for printing.
6314
6315 2004-10-29  Colin Walters  <walters@redhat.com>
6316
6317         * dbus/dbus-glib.h: Update documentation to not
6318         refer to internal APIs.
6319
6320 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6321
6322         * mono/Arguments.cs (GetDBusTypeConstructor):
6323         type.UnderlyingSystemType will return "System.Byte" if you do it
6324         on "byte[]", which is not what we want.  So check the type.IsArray
6325         property and use System.Array instead.
6326
6327 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6328
6329         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6330         the DBusUserInfo structure since this is passed into the function.
6331         This would cause a double free when the function that allocated
6332         the structure would try to free it when an error occured.
6333
6334         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6335         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6336         for service activation to avoid 32bit/64bit parallel install issues
6337
6338 2004-10-21  Colin Walters  <walters@verbum.org>
6339
6340         * AUTHORS: Fix my email address, the @gnu.org one
6341         has been bouncing for some time.  Also add J5.
6342         
6343 2004-10-21  Colin Walters  <walters@verbum.org>
6344
6345         * dbus/dbus-transport-unix.c (do_authentication): Return
6346         authentication status to callers.
6347         (unix_handle_watch): If we completed authentication this round,
6348         don't do another read.  Instead wait until the next iteration,
6349         after we've read any pending data in the auth buffer.
6350         (unix_do_iteration): Ditto.
6351         (unix_handle_watch): Updated for new do_authentication prototype.
6352
6353 2004-10-18  Colin Walters  <walters@verbum.org>
6354
6355         * bus/selinux.c (bus_selinux_enabled): Handle
6356         --disable-selinux case.
6357         
6358 2004-10-18  Colin Walters  <walters@verbum.org>
6359
6360         * bus/selinux.h: Add bus_selinux_enabled.
6361         
6362         * bus/selinux.c (bus_selinux_enabled): Implement it.
6363         
6364         * bus/config-parser.c (struct include): Add
6365         if_selinux_enabled member.
6366         (start_busconfig_child): Parse if_selinux_enabled
6367         attribute for include.
6368         (bus_config_parser_content): Handle it.
6369
6370         * bus/session.conf.in, bus/system.conf.in: Add
6371         inclusion of context mapping to default config files;
6372         conditional on SELinux being enabled.
6373         
6374         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6375         
6376         * test/data/invalid-config-files/badselinux-1.conf, 
6377         test/data/invalid-config-files/badselinux-2.conf:
6378         Test files for bad syntax.
6379         
6380 2004-10-17  Colin Walters  <walters@verbum.org>
6381
6382         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6383         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6384         format specifier mismatches.
6385
6386 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6387
6388         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6389         format string.
6390
6391         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6392         pointer (bug #1540, Leonardo Boiko).
6393
6394 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6395
6396         * mono/BusDriver.cs: Changed BusDriver struct to remove
6397         the ServiceCreated and ServiceDeleted events and replace them
6398         with the new ServiceOwnerChanged event.
6399
6400         * mono/example/BusListener.cs: Added a new example program,
6401         which listens for and reports any ServiceOwnerChanged events
6402         on the bus driver.
6403
6404         * mono/example/Makefile.am (DESTDIR): Build changes for the
6405         new BusListener.cs example.
6406
6407 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6408
6409         * bus/signals.c (bus_match_rule_parse): validate the components of
6410         match rules (bug #1439).
6411
6412         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6413
6414 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6415
6416         * doc/dbus-specification.xml: document ServiceOwnerChanged
6417         signal.
6418         
6419         * bus/driver.c, bus/driver.h, bus/services.c: Use
6420         ServiceOwnerChanged signal instead of ServiceCreated and
6421         ServiceDeleted.
6422         
6423         * bus/dispatch.c: update testcase for the new signal.
6424
6425 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6426
6427         Patch from Nat Friedman <nat@novell.com>
6428
6429         * mono/Makefile.am: A number of small build fixes to allow "make
6430         distcheck" to succeed.
6431
6432         * mono/example/Makefile.am: "make distcheck" fixes.
6433
6434         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6435         key in @srcdir@.
6436
6437         * test/Makefile.am: "make distcheck" fixes.
6438
6439 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6440
6441         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6442
6443         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6444
6445         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6446         messages after the first one (bug #1389).
6447         
6448         * bus/dispatch.c (check_double_hello_message): add a test case for
6449         the double hello message bug.
6450         (check_existent_service_activation): fix check of spawning error.
6451         
6452 2004-09-16  David Zeuthen  <david@fubar.dk>
6453
6454         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6455
6456 2004-09-12  David Zeuthen  <david@fubar.dk>
6457
6458         Patch from Kay Sievers <kay.sievers@vrfy.org>
6459
6460         * bus/bus.c (bus_context_new):
6461         * bus/bus.h:
6462         * bus/main.c (usage)
6463         (main):
6464         Add commandline option --nofork to override configuration file
6465         setting.
6466
6467 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6468
6469         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6470         compilers don't like it (bug #974).
6471
6472 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6473
6474         * qt/connection.*: Applied patch by Jérôme Lodewyck
6475         <lodewyck@clipper.ens.fr> to integrate an existing
6476         connection into the Qt eventloop
6477
6478 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6479
6480         * mono/BusDriver.cs: Added.  This is a class for interacting with
6481         the org.freedesktop.DBus service.
6482
6483         * mono/Message.cs: Added a mechanism to expose the message that is
6484         currently being dispatched via the static Message.Current
6485         property.  Added Message.Sender and Message.Destination
6486         properties.
6487
6488         * mono/Handler.cs: Expose the dispatched message via
6489         Message.Current when handling method calls.
6490
6491         * mono/Service.cs: Expose the dispatched message via
6492         Message.Current when handling signal emissions.
6493         
6494         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6495         Connection.BaseService property.
6496
6497 2004-08-28  Havoc Pennington  <hp@redhat.com>
6498
6499         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6500
6501         More fixes from Steve Grubb
6502         
6503         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6504         (_dbus_listen_tcp_socket): fix fd leak
6505
6506         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6507         EINTR to a bit lower in the code
6508
6509 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6510
6511         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6512         TRUE if we are inquiring about the existence of the built-in
6513         org.freedesktop.DBus service.
6514
6515 2004-08-25  John Palmieri  <johnp@redhat.com>
6516         * bus/config-parser.c:
6517         (struct PolicyType): Add POLICY_CONSOLE
6518         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6519         (start_busconfig_child): Sets up console element when
6520         <policy at_console=""> is encountered in a policy file
6521         (append_rule_from_element): Convert console elements to console
6522         rules.
6523
6524         * bus/policy.c: 
6525         (bus_policy_create_client_policy): Add console rules to the client
6526         policy based on if the client is at the console
6527         (bus_policy_append_console_rule): New function for adding a
6528         console rule to a policy
6529         (bus_policy_merge): Handle console rule merging
6530
6531         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6532         where we check for console user files
6533         
6534         * dbus/dbus-sysdeps.c:
6535         (_dbus_file_exists): New function which checks if the given
6536         file exists
6537         (_dbus_user_at_console): New function which does the system
6538         specific process of checking if the user is at the console
6539
6540         * dbus/dbus-userdb.c:
6541         (_dbus_is_console_user): New function converts a UID to user name
6542         and then calls the system specific _dbus_user_at_console to 
6543         see if the user is at the console and therefor a console user
6544
6545 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6546
6547         * bus/config-parser.c (set_limit):
6548         * bus/dbus-daemon-1.1.in:
6549         * test/data/valid-config-files/many-rules.conf: set the
6550         max_match_rules_per_connection limt from the config file. 
6551
6552         * doc/busconfig.dtd: update the DTD.
6553
6554         * bus/driver.c: remove some unused variables.
6555
6556 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6557
6558         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6559         it's been replaced by dbus_g_bus_get
6560
6561 2004-08-23  Colin Walters  <walters@redhat.com>
6562
6563         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6564
6565         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6566
6567         * bus/selinux.c: Create a thread for policy reload notification.
6568         (bus_selinux_get_policy_root): Implement.
6569
6570         * bus/config-parser.c (start_busconfig_child)
6571         (bus_config_parser_content): Support SELinux-root relative
6572         inclusion.
6573
6574         * configure.in <HAVE_SELINUX>: Add -lpthread.
6575         
6576         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6577         (test_post_hook): Move memory checking into here.
6578         (test_pre_hook, test_post_hook): Move SELinux checks in
6579         here, but conditional on a DBUS_TEST_SELINUX environment
6580         variable.  Unfortunately we can't run the SELinux checks
6581         as a normal user, since they won't have any permissions
6582         for /selinux.  So this will have to be tested manually
6583         for now, until we have virtualization for most of
6584         libselinux.
6585         
6586 2004-08-23  Havoc Pennington  <hp@redhat.com>
6587
6588         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6589         drop supplementary groups, suggested by Steve Grubb
6590
6591 2004-08-20  Colin Walters  <walters@redhat.com>
6592
6593         * bus/config-parser.c (start_busconfig_child): Remove some unused
6594         variables.
6595         
6596         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6597         warning.
6598
6599 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6600
6601         * configure.in: If --enable-mono is passed in, if we can't find
6602         mono error out.
6603
6604         * mono/Makefile.am: Use /gacutil to install assemblies into the
6605         GAC and not /root.
6606
6607 2004-08-12  Havoc Pennington  <hp@redhat.com>
6608
6609         * NEWS: update for 0.22
6610
6611         * configure.in: release 0.22
6612
6613 2004-08-11  Colin Walters  <walters@redhat.com>
6614
6615         * tools/dbus-send.c (main, usage): Add --reply-timeout
6616         argument.
6617
6618 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6619
6620         * bus/bus.c (process_config_first_time_only): get rid of an unused
6621         DBusError that was causing a memoy leak (bug #989).
6622
6623         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6624         fix compilation on Solaris/Forte C (bug #974)
6625
6626         * bus/main.c (main): plug two minuscule memleaks.
6627
6628 2004-08-10  Havoc Pennington  <hp@redhat.com>
6629
6630         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6631
6632 2004-08-09  Havoc Pennington  <hp@redhat.com>
6633
6634         * COPYING: switch to Academic Free License version 2.1 instead of
6635         2.0, to resolve complaints about patent termination clause.
6636
6637 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6638
6639         * README: added documentation for the --enable-python 
6640         configure switch.
6641
6642 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6643
6644         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6645         _unref in the SELinux support.
6646
6647         * doc/busconfig.dtd: update DTD for SELinux support.
6648
6649         * bus/config-loader-libxml.c: fix error handler and parser
6650         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6651
6652         * configure.in: remove the warning about libxml2.
6653
6654         * dbus/dbus-bus.c: silence doxygen warning.
6655
6656 2004-07-31  Colin Walters  <walters@redhat.com>
6657
6658         * configure.in: Move #error in SELinux check to its own line.
6659
6660 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6661
6662         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6663         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6664         dbus_error_set.
6665
6666         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6667         broken by the change in the _SET_OOM macros.
6668
6669 2004-07-31  Colin Walters  <walters@redhat.com>
6670
6671         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6672         BUS_SET_OOM.
6673
6674 2004-07-31  Colin Walters  <walters@redhat.com>
6675
6676         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6677         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6678         AC_MSG_CHECKING.
6679
6680 2004-07-24  Havoc Pennington  <hp@redhat.com>
6681
6682         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6683
6684         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6685         functionality
6686
6687         * configure.in: add --enable-selinux
6688         
6689         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6690
6691         * bus/main.c (main): initialize and shut down selinux
6692
6693         * bus/connection.c: store SELinux ID on each connection, to avoid 
6694         repeated getting of the string context and converting it into 
6695         an ID
6696
6697         * bus/bus.c (bus_context_get_policy): new accessor, though it
6698         isn't used
6699         (bus_context_check_security_policy): check whether the security
6700         context of sender connection can send to the security context of
6701         recipient connection
6702
6703         * bus/config-parser.c: add parsing for <selinux> and <associate>
6704         
6705         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6706         implement dbus_connection_get_unix_fd()
6707
6708         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6709         function, used by the selinux stuff
6710         
6711 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6712
6713         * bus/config-loader-libxml.c: complete the implementation of
6714         libxml backend for config file loader. Doesn't work with full OOM
6715         test yet. 
6716         
6717         * configure.in: change error when selecting libxml into a warning.
6718         
6719         * test/data/invalid-config-files: add two non-well-formed XML
6720         files. 
6721         
6722         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6723         
6724         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6725         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6726         be necessary to read all the buffer. (bug #894)
6727
6728         * bus/activation.c (bus_activation_activate_service): fix a
6729         potential assertion failure (bug #896). Small optimization in the
6730         case of auto-activation messages.
6731
6732         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6733         add test case for byte-through-vararg bug (#901). patch by Kimmo
6734         Hämäläinen. 
6735
6736 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6737
6738         * python/dbus.py:
6739         * python/dbus_bindings.pyx.in:
6740         Add dbus.init_gthreads (), allow emit_signal to pass
6741         arguments to the signal.
6742         
6743 2004-07-24  Havoc Pennington  <hp@redhat.com>
6744
6745         * AUTHORS: add some people, not really comprehensively, let me
6746         know if I missed you
6747
6748 2004-07-24  Havoc Pennington  <hp@redhat.com>
6749
6750         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6751         Owen
6752
6753         * test/Makefile.am (DIST_SUBDIRS): here also
6754
6755 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6756
6757         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6758         breaking build on Solaris, reported by Farhad Saberi on the ML.
6759
6760         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6761         va_arg invocation to account for integer promotion in the case of
6762         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6763
6764         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6765         _dbus_list_get_first_link, not _dbus_list_get_first.
6766
6767         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6768
6769         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6770         handler functions so that the asserts in _dbus_object_subtree_unref
6771         do not fail.
6772
6773         * dbus/dbus-transport-unix.c (do_reading):
6774         _dbus_transport_queue_messages return value is of type
6775         dbus_bool_t, not DBusDispatchStatus.
6776         
6777 2004-07-19  David Zeuthen  <david@fubar.dk>
6778
6779         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6780
6781         * bus/dispatch.c:
6782         (check_get_connection_unix_user): Debug says GetProperty; but the
6783         method is called GetConnectionUnixUser
6784         (check_get_connection_unix_process_id): New function
6785         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6786         also call check_get_connection_unix_process_id()
6787         
6788         * bus/driver.c:
6789         (bus_driver_handle_get_connection_unix_process_id): New function,
6790         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6791         interface
6792         
6793         * dbus/dbus-auth.c:
6794         (handle_server_data_external_mech): Set pid from the credentials
6795         obtained from the socket
6796         
6797         * dbus/dbus-connection.c:
6798         (dbus_connection_get_unix_process_id): New function
6799         
6800         * dbus/dbus-connection.h: 
6801         Add prototype for dbus_connection_get_unix_process_id
6802         
6803         * dbus/dbus-transport.c:
6804         (_dbus_transport_get_unix_process_id): New function
6805         
6806         * dbus/dbus-transport.h:
6807         Add prototype for _dbus_transport_get_unix_process_id
6808         
6809 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6810
6811         * dbus/dbus-message.c: Message counter fix, patch by Christian
6812         Hammond <chipx86@gnupdate.org>
6813
6814 2004-07-18  Seth Nickell  <seth@gnome.org>
6815
6816         * python/dbus.py:
6817         * python/dbus_bindings.pyx.in:
6818         * python/tests/test-client.py:
6819
6820         Add dbus.ByteArray and dbus_bindings.ByteArray
6821         types so that byte streams can be passed back.
6822
6823         Give jdahlin the heaps of credit that are so
6824         rightfully his.
6825         
6826 2004-07-12  Seth Nickell  <seth@gnome.org>
6827
6828         * python/dbus.py:
6829
6830         Add message argument to the default object_method_handler
6831         function.
6832         
6833         * python/dbus_bindings.pyx.in:
6834
6835         Automatically return NIL when passed an empty list
6836         (we can't pass back a list since lists are typed
6837         and we don't have any idea what type the the client
6838         intended the list to be... :-( )
6839         
6840 2004-07-10  Seth Nickell  <seth@gnome.org>
6841
6842         * python/examples/Makefile.am:
6843
6844         Fix distcheck breakage caused by new examples.
6845
6846 2004-07-10  Seth Nickell  <seth@gnome.org>
6847
6848         * python/dbus.py:
6849
6850         Add "message" argument to service-side dbus.Object
6851         methods. This will break existing services written
6852         using the python bindings, but will allow extraction
6853         of all the message information (e.g. who its from).
6854
6855         Add improved "object oriented" signal handling/emission.
6856         
6857         * python/examples/example-service.py:
6858
6859         Nix this example.
6860         
6861         * python/examples/example-signal-emitter.py:
6862         * python/examples/example-signal-recipient.py:
6863
6864         Two new examples that show how to emit and receive
6865         signals using the new APIs.
6866         
6867         * python/examples/example-signals.py:
6868         * python/examples/gconf-proxy-service.py:
6869         * python/examples/gconf-proxy-service2.py:
6870
6871         Add "message" argument to service methods.
6872
6873 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6874
6875         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6876         * dbus/bus.c (dbus_bus_get_unix_user)
6877         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6878         method of org.freedesktop.DBus interface.
6879
6880         * bus/dispatch.c: test case
6881
6882 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6883
6884         * python/Makefile.am: switched include directory from glib/ to dbus/
6885         since dbus-glib.h moved
6886  
6887 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6888
6889         * configure.in: prevent building the gcj stuff and libxml loader
6890         since they are broken.
6891
6892 2004-06-20  Havoc Pennington  <hp@redhat.com>
6893
6894         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6895         codes from the dbus error names
6896         
6897         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6898         as dbus/dbus-glib.h and that breakage is now visible due to 
6899         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6900         
6901         * glib/dbus-glib.h: s/gproxy/g_proxy/
6902
6903         * dbus/dbus-shared.h: new header to hold stuff shared with
6904         binding APIs
6905         
6906         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6907         than dbus-errors.h
6908
6909         * glib/dbus-glib.h (dbus_set_g_error): move to
6910         dbus-glib-lowlevel.h
6911
6912         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6913         of stuff to enable this
6914
6915         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6916
6917         * a bunch of other changes with the same basic "separate glib 
6918         bindings from dbus.h" theme
6919         
6920 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6921
6922         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6923
6924         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6925
6926 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6927
6928         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6929         the reply value of the ServiceExists message.
6930
6931 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6932
6933         * python/dbus_bindings.pyx.in: No longer need to parse path
6934         elements and pass them as arrays of strings.  The C API now
6935         accepts plain path strings.
6936         (_build_parsed_path): removed 
6937
6938 2004-06-07  Havoc Pennington  <hp@redhat.com>
6939
6940         * doc/TODO: remove auto-activation item since it's done; sort
6941         items by importance/milestone
6942
6943 2004-06-07  Havoc Pennington  <hp@redhat.com>
6944
6945         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6946         random signature when using REQUIRED_FIELDS (this hack won't work
6947         in the long term)
6948
6949         * dbus/dbus-message.c: change the signature to be a header field,
6950         instead of message->signature special-case string. Incremental
6951         step forward. Then we can fix up code to send the signature in the
6952         message, then fix up code to validate said signature, then fix up
6953         code to not put the typecodes inline, etc.
6954         (load_one_message): don't make up the signature after the fact
6955         (decode_header_data): require signature field for the known
6956         message types
6957
6958         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6959
6960         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6961
6962 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6963
6964         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6965
6966         * mono/Handler.cs: Updated to follow new path argument for
6967         (un-)registering objects.
6968
6969         * mono/example/Makefile.am:
6970         * mono/Makefile.am:
6971         * configure.in: Bumped required version for mono and use new -pkg
6972         syntax for deps
6973
6974 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6975
6976         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6977         registration functions take the path argument as char* instead of
6978         char**.
6979
6980         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6981         split off the path decompostion part of
6982         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6983         warnings. 
6984
6985         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6986         
6987 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6988  
6989         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6990         machine approach.  A state is implemented as a function that
6991         handles incoming events as specified for that state.
6992         
6993         * doc/dbus-specification.xml: Update auth protocol state machine
6994         specification to match implementation.  Remove some leftover
6995         base64 examples.
6996
6997 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6998
6999         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7000         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7001         quiet doxygen.
7002
7003         * Doxyfile.in: remove deprecated options.
7004
7005         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7006         glib/test-thread.h, glib/test-thread-client.c,
7007         glib/test-thread-server.c, glib/test-profile.c,
7008         glib/test-dbus-glib.c: remove these unused files.
7009
7010 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7011
7012         * dbus/dbus-object-tree.c
7013         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7014         non-fallback handlers (bug #684).
7015         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7016         (find_subtree_recurse): report wether the returned subtree is an
7017         exact match or a "fallback" match higher up in the tree.
7018         (object_tree_test_iteration): update test case.
7019
7020 2004-06-01  Seth Nickell  <seth@gnome.org>
7021
7022         * python/dbus_bindings.pyx.in:
7023         * python/tests/test-client.py:
7024
7025         Round off basic type support. Add dicts (yay!), and 
7026         remaining array types.
7027
7028         Make MessageIter more general so it works for dicts too.
7029
7030         Mark all loop variables as C integers.
7031         
7032 2004-05-31  Havoc Pennington  <hp@redhat.com>
7033
7034         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7035         "in" before "out"
7036
7037         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7038
7039         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7040         option that runs the tests, and start filling in some code
7041         including for starters just dumping the interfaces to stdout
7042
7043         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7044
7045         * test/data/valid-introspection-files/lots-of-types.xml: test of
7046         an example introspection file
7047
7048         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7049         "node" (I think...)
7050
7051 2004-05-31  Seth Nickell  <seth@gnome.org>
7052
7053         * python/dbus_bindings.pyx.in:
7054         * python/tests/test-client.py:
7055
7056         Test Suite: 1
7057         Python Bindings: 0
7058
7059         Fix string array memory trashing bug... oops...
7060
7061 2004-05-30  Seth Nickell  <seth@gnome.org>
7062
7063         * python/dbus.py:
7064
7065         Add a nicer-but-less-flexible alternate API for handling 
7066         calls to virtual objects in dbus.ObjectTree.
7067
7068         Screw up the argument order to the dbus.Object constructor
7069         for consistency with dbus.ObjectTree (and to make dbus_methods
7070         optional for future extension)
7071         
7072         * python/examples/Makefile.am:
7073         * python/examples/gconf-proxy-service.py:
7074         * python/examples/gconf-proxy-service2.py:
7075
7076         Alternate implementation of gconf-proxy-service using the
7077         nicer dbus.ObjectTree API.
7078         
7079         * python/examples/example-service.py:
7080         * python/tests/test-server.py
7081
7082         Reverse the argument order to deal with dbus.Object constructor
7083         changes.
7084         
7085 2004-05-30  Seth Nickell  <seth@gnome.org>
7086
7087         * python/examples/example-client.py:
7088         * python/examples/example-service.py:
7089
7090         Take it back. Lists seem to work but they're broken
7091         in the test suite. Make the base examples use
7092         lists (works fine).
7093
7094 2004-05-30  Seth Nickell  <seth@gnome.org>
7095
7096         * python/dbus_bindings.pyx.in:
7097         * python/tests/test-client.py:
7098
7099         Add some more tests and fix errors that crop up.
7100         Unfortunately, currently it seems like marshalling
7101         and unmarshalling of lists is completely broken :-(
7102
7103 2004-05-30  Seth Nickell  <seth@gnome.org>
7104
7105         * python/dbus_bindings.pyx.in:
7106
7107         Add support for ObjectPath type.
7108
7109         * python/dbus.py:
7110
7111         Refactor message handling code to a common function.
7112         
7113         * python/tests/test-client.py:
7114         * python/tests/test-server.py:
7115
7116         Add tests that check to make sure values of all types
7117         can be echoed from a service w/o mangling.
7118         
7119 2004-05-29  Seth Nickell  <seth@gnome.org>
7120
7121         * python/dbus.py:
7122
7123         Add ObjectTree class which allows implementation
7124         of trees of "virtual" objects. Basically the python
7125         wrapper for "register_fallback".
7126         
7127         * python/examples/Makefile.am
7128         * python/examples/gconf-proxy-client.py:
7129         * python/examples/gconf-proxy-service.py:
7130
7131         Implement a simple GConf proxy service that supports
7132         get/set on string and int GConf keys using the ObjectTree.
7133         
7134 2004-05-29  Seth Nickell  <seth@gnome.org>
7135
7136         * python/dbus.py:
7137         * python/examples/example-client.py:
7138         * python/examples/example-service.py:
7139         * python/examples/list-system-services.py:
7140
7141         Add SessionBus, SystemBus and ActivationBus classes
7142         so you don't need to know the special little BUS_TYPE
7143         flag.
7144         
7145 2004-05-29  Havoc Pennington  <hp@redhat.com>
7146
7147         * bus/config-parser.c (process_test_valid_subdir): temporarily
7148         stop testing config parser OOM handling, since expat has issues
7149         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7150
7151         * bus/dbus-daemon-1.1.in: change requested_reply to
7152         send_requested_reply/receive_requested_reply so we can send the
7153         replies, not just receive them.
7154
7155         * bus/config-parser.c: parse the new
7156         send_requested_reply/receive_requested_reply
7157
7158         * bus/policy.c (bus_client_policy_check_can_send): add
7159         requested_reply argument and use it
7160
7161         * bus/bus.c (bus_context_check_security_policy): pass through
7162         requested_reply status to message send check
7163
7164         * bus/system.conf.in: adapt to requested_reply change
7165         
7166 2004-05-28  Havoc Pennington  <hp@redhat.com>
7167
7168         * test/glib/test-service-glib.c (main): remove unused variable
7169
7170         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7171
7172         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7173         from the enum, no longer in use.
7174
7175         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7176         works right.
7177
7178         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7179         whether error_name passed in is a valid error name.
7180
7181 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7182
7183         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7184         OBJECT_PATH and OBJECT_PATH_ARRAY
7185
7186 2004-05-28  Seth Nickell  <seth@gnome.org>
7187
7188         * python/examples/Makefile.am:
7189
7190         Forget to add Makefile.am. Do not pass go.
7191
7192 2004-05-28  Michael Meeks  <michael@ximian.com>
7193
7194         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7195         fix no int64 case.
7196
7197         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7198
7199         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7200         (_dbus_message_iter_get_basic_type_array): impl.
7201         drastically simplify ~all relevant _get methods to use these.
7202         (_dbus_message_iter_append_basic_array),
7203         (dbus_message_iter_append_basic): impl
7204         drastically simplify ~all relevant _append methods to use these.
7205
7206         * dbus/dbus-message-builder.c (parse_basic_type) 
7207         (parse_basic_array, lookup_basic_type): impl.
7208         (_dbus_message_data_load): prune scads of duplicate /
7209         cut & paste coding.
7210
7211         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7212         (_dbus_demarshal_basic_type): implement,
7213         (demarshal_and_validate_len/arg): beef up debug.
7214         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7215
7216 2004-05-27  Seth Nickell  <seth@gnome.org>
7217
7218         * configure.in:
7219         * python/Makefile.am:
7220
7221         Include the example python apps in the tarball.
7222         
7223         * python/examples/list-system-services.py
7224
7225         Add a python new example that fetches the list of services
7226         from the system bus.
7227         
7228 2004-05-27  Seth Nickell  <seth@gnome.org>
7229
7230         * python/dbus.py:
7231         * python/dbus_bindings.pyx.in:
7232
7233         Fix failure to notify that a signal was not handled,
7234         resulted in hung functions.
7235         
7236 2004-05-25  Colin Walters  <walters@redhat.com>
7237
7238         * tools/dbus-monitor.c (main): Monitor all types of messages.
7239
7240 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7241
7242         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7243         which unregisters the object path and disposes the handler.
7244
7245 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7246  
7247         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7248          
7249         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7250         operands to && so we call dbus_message_iter_next () for the last
7251         argument also.
7252
7253 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7254
7255         * dbus/dbus-object-tree.c
7256         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7257         children even if the requested path isn't registered.
7258         (object_tree_test_iteration): test object_tree_list_registered.
7259
7260         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7261         it to 0.
7262         
7263 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7264
7265         * doc/TODO: Remove resolved items.
7266
7267         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7268         field.
7269         
7270         * bus/connection.c (bus_connections_expect_reply): Enforce the
7271         per-connection limit on pending replies.
7272         
7273         Patch from Jon Trowbridge <trow@ximian.com>:
7274  
7275         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7276         up a watch that triggers a config reload when one end of the pipe
7277         becomes readable.
7278         (signal_handler): Instead of doing the config reload in our SIGHUP
7279         handler, just write to the reload pipe and let the associated
7280         watch handle the reload when control returns to the main loop.
7281  
7282         * bus/driver.c (bus_driver_handle_reload_config): Added.
7283         Implements a ReloadConfig method for requesting a configuration
7284         file reload via the bus driver.
7285  
7286 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7287
7288         * HACKING: Updated release instructions concerning the wiki page.
7289
7290 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7291
7292         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7293         filter against auth->allowed_mechs; we only add allowed mechs in
7294         record_mechanisms().
7295  
7296         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7297         ALLOWED_MECHS to auth-script format so we can set the list of
7298         allowed mechanisms.
7299  
7300         * data/auth/client-out-of-mechanisms.auth-script: New test to
7301         check client disconnects when it is out of mechanisms to try.
7302  
7303         * dbus/dbus-auth.c (process_command): Remove check for lines
7304         longer that 1 MB; we only buffer up maximum 16 kB.
7305  
7306         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7307         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7308         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7309         assume there might be unused bytes.
7310  
7311         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7312         client-out-of-mechs, it is handled in process_reject(). Move check
7313         for max failures to send_rejected(), as it's a server-only thing.
7314
7315         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7316         send_auth(), send_data(), send_rejected(), send_error(),
7317         send_ok(), send_begin() and send_cancel().
7318
7319 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7320
7321         Remove base64 encoding, replace with hex encoding. Original patch
7322         from trow@ximian.com, added error handling.
7323
7324         * dbus/dbus-string.c (_dbus_string_base64_encode)
7325         (_dbus_string_base64_decode): Remove.
7326         (_dbus_string_hex_decode): Add end_return argument so we can
7327         distinguish between OOM and invalid hex encoding.
7328         (_dbus_string_test): Remove base64 tests and add test case for
7329         invalid hex.
7330
7331         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7332         Replace base64 with hex.
7333
7334         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7335         for invalid hex encoded data in auth protocol.
7336
7337 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7338
7339         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7340         leak.
7341
7342 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7343
7344         * mono/dbus-sharp.dll.config.in: Added for GAC
7345         * mono/dbus-sharp.snk: Added for GAC
7346         * mono/Assembly.cs.in: Added for GAC
7347         * mono/Makefile.am: Changes for GAC installation        
7348         * configure.in: Added refs for dbus-sharp.dll.config.in and
7349         Assembly.cs.in. More fixes for mono testing
7350         * mono/example/Makefile.am: Changed var to CSC
7351         * Makefile.am: Changed flag name to DBUS_USE_CSC
7352
7353 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7354
7355         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7356         * mono/doc/*: Added documentation framework
7357         * configure.in: Added monodoc check
7358         * README: Added description of mono configure flags
7359
7360 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7361
7362         * doc/dbus-specification.xml: Added a "Required" column to the 
7363         header fields table and changed the "zero or more" verbage in
7364         the above paragraph to read "The header must contain the required 
7365         named header fields and zero or more of the optional named header 
7366         fields".
7367         * test/data/invalid-messages/*.message: Added the required PATH 
7368         named header field to the tests so that they don't fail on 
7369         'Missing path field'
7370
7371 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7372
7373         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7374         the stack by implicitly defining variable and parameter types and
7375         removing the hack of defining C pointers as python objects and later
7376         casting them.
7377
7378 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7379
7380         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7381
7382 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7383
7384         * mono/DBusType/Dict.cs: Handle empty dicts
7385         * mono/DBusType/Array.cs: Handle empty arrays
7386         * mono/Arguments.cs: Handle empty arguments
7387
7388 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7389
7390         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7391         field
7392
7393 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7394
7395         * test/data/valid-messages/standard-*.message: Update message
7396         test scripts to new header field names.
7397
7398 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7399
7400         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7401         overflow to times_we_did_each_thing array which would chop off the
7402         first character of the failure_dir string. Increased the size of
7403         the array to 7 to reflect the number of random mutation functions
7404         we have.
7405
7406 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7407
7408         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7409         unix_server->watch here, it is unreffed in disconnect.
7410         (_dbus_server_new_for_tcp_socket): convert NULL host to
7411         "localhost" here so we don't append NULL to address.
7412         
7413         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7414         various addresses, including tcp with no explicit host.
7415
7416 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7417
7418         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7419         fix incorrect setting of .name_offset in the HeaderField (it was
7420         off by two bytes, positioned right after the name and typecode)
7421
7422         * bus/bus.c (bus_context_new, bus_context_unref): test before
7423         calling dbus_server_free_data_slot and _dbus_user_database_unref
7424         in case of an error.
7425
7426         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7427         by libdbus-gtool.
7428
7429 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7430
7431         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7432         _dbus_poll() instead of select().
7433
7434 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7435
7436         * bus/main.c (signal_handler): Reload the configuration files
7437         on SIGHUP.
7438         (main): Set up our SIGHUP handler.
7439
7440         * bus/bus.c (struct BusContext): Store the config file, user and
7441         fork flag in the BusContext.
7442         (process_config_first_time_only): Added.  Contains the code
7443         (previously in bus_context_new) for setting up the BusContext from
7444         the BusConfigParser that should only be run the first time the
7445         config files are read.
7446         (process_config_every_time): Added.  Contains the code (previously
7447         in bus_context_new) for setting up the BusContext from the
7448         BusConfigParser that should be run every time the config files are
7449         read.
7450         (load_config): Added.  Builds a BusConfigParser from the config
7451         files and passes the resulting structure off to
7452         process_config_first_time_only (assuming this is the first time)
7453         and process_config_every_time.
7454         (bus_context_new): All of the config-related code has been moved
7455         to process_config_first_time_only and process_config_every_time.
7456         Now this function just does the non-config-related initializations
7457         and calls load_config.
7458         (bus_context_reload_config): Added.
7459
7460 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7461
7462         * bus/driver.c (bus_driver_handle_get_service_owner):
7463         implement a GetServiceOwner method.
7464         * doc/dbus-specification.xml: document it.
7465         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7466         
7467         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7468         implement, using the bus GetServiceOwner method.
7469
7470         * test/glib/test-dbus-glib.c:
7471         use dbus_gproxy_new_for_service_owner so that we can receive the
7472         signal. 
7473
7474 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7475
7476         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7477         dbus/dbus-message.c, dbus/dbus-protocol.h
7478         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7479
7480         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7481         dbus/dbus-message.c, dbus/dbus-protocol.h
7482         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7483
7484         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7485         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7486         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7487
7488         * doc/dbus-specification.xml (Header Fields Table):
7489         s/SERVICE/DESTINATION
7490         s/SENDER_SERVICE/SENDER
7491
7492
7493 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7494
7495         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7496         a few seconds.
7497
7498 2004-04-13  Michael Meeks  <michael@ximian.com>
7499
7500         * glib/dbus-gobject.c (handle_introspect): split out
7501         (introspect_properties): this.
7502         (handle_introspect): implement this.
7503
7504         * test/glib/Makefile.am: use the absolute path so the bus
7505         daemon's chdir ("/") doesn't kill us dead.
7506
7507         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7508
7509 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7510
7511         * bus/config-parser.c (struct BusConfigParser): Added
7512         included_files field.
7513         (seen_include): Added.  Checks whether or not a file has already
7514         been included by any parent BusConfigParser.
7515         (bus_config_parser_new): Copy the parent's included_files.
7516         (include_file): Track which files have been included, and fail on
7517         circular inclusions.
7518         (process_test_valid_subdir): Changed printf to report if we are
7519         testing valid or invalid conf files.
7520         (all_are_equiv): Changed printf to be a bit clearer about
7521         what we are actually doing.
7522         (bus_config_parser_test): Test invalid configuration files.
7523
7524 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7525
7526         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7527         argument.  If non-null, the newly-constructed BusConfigParser will
7528         be initialized with the parent's BusLimits instead of the default
7529         values.
7530         (include_file): When including a config file, pass in
7531         the current parser as the parent and then copy the BusLimits
7532         from the included BusConfigParser pack to the current parser.
7533         (process_test_valid_subdir): Renamed from process_test_subdir.
7534         (process_test_equiv_subdir): Added.  Walks through a directory,
7535         descending into each subdirectory and loading the config files
7536         it finds there.  If any subdirectory contains two config files
7537         that don't produce identical BusConfigParser structs, fail.
7538         For now, the BusConfigParser's BusPolicies are not compared.
7539         (bus_config_parser_test): Call both process_test_valid_subdir and
7540         process_test_equiv_subdir.
7541
7542         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7543         argument and pass it along to the call to bus_config_parser_new.
7544         Also made a few small changes to allow this code to compile.
7545
7546         * bus/config-loader-expat.c (bus_config_load): Take a parent
7547         argument and pass it along to the call to bus_config_parser_new.
7548
7549         * bus/bus.c (bus_context_new): Load the config file
7550         with a NULL parent argument.
7551
7552 2004-03-29  Michael Meeks  <michael@ximian.com>
7553
7554         * glib/dbus-gobject.c (introspect_properties): split
7555         out, fix mangled 'while' flow control.
7556         (introspect_signals): implement.
7557         (handle_introspect): update.
7558
7559 2004-03-29  Michael Meeks  <michael@ximian.com>
7560
7561         * glib/dbus-gobject.c (set_object_property): split out / 
7562         re-work, use the property type, and not the message type(!)
7563         (get_object_property): ditto.
7564
7565         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7566         (dbus_gvalue_marshal): make this code re-usable, needed
7567         for signals too, also on both proxy and server side.
7568         Re-write for more efficiency / readability.
7569
7570 2004-03-29  Michael Meeks  <michael@ximian.com>
7571
7572         * dbus/dbus-message.c
7573         (dbus_message_new_error_printf): impl.
7574
7575         * dbus/dbus-connection.c
7576         (dbus_connection_unregister_object_path): fix warning.
7577
7578         * configure.in: fix no-mono-installed situation.
7579
7580 2004-03-27  Havoc Pennington  <hp@redhat.com>
7581
7582         Patch from Timo Teräs:
7583         
7584         * tools/dbus-send.c (main): if --print-reply, assume type is
7585         method call; support boolean type args
7586         
7587         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7588         bunch of memleak and logic bugs
7589         
7590 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7591
7592         * mono/Arguments.cs:
7593         * mono/Introspector.cs:
7594         * mono/Handler.cs:
7595         * mono/InterfaceProxy.cs:
7596         * mono/Message.cs
7597         * mono/ProxyBuilder.cs:
7598         * mono/Service.cs:
7599         Added InterfaceProxy class to avoid building proxies for every
7600         object.
7601
7602         * dbus-message.h:
7603         * dbus-message.c (dbus_message_append_args_valist)
7604         (dbus_message_iter_get_object_path)
7605         (dbus_message_iter_get_object_path_array)
7606         (dbus_message_iter_append_object_path)
7607         (dbus_message_iter_append_object_path_array):
7608         Added object_path iter functions to handle OBJECT_PATH arguments
7609         
7610 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7611
7612         First checkin of mono bindings.
7613         * configure.in:
7614         * Makefile.am:
7615         Build stuff for the bindings
7616         * dbus-sharp.pc.in: Added for pkgconfig
7617         
7618 2004-03-21  Havoc Pennington  <hp@redhat.com>
7619
7620         * test/test-service.c (main): remove debug spew
7621
7622 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7623
7624         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7625         arrays
7626
7627         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7628         (dbus_message_iter_init_array_iterator)
7629         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7630         indicate whether the iterator is empty
7631
7632         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7633         warnings
7634
7635 2004-03-19  Havoc Pennington  <hp@redhat.com>
7636
7637         * NEWS: 0.21 updates
7638
7639         * configure.in: 0.21
7640
7641         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7642         
7643         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7644         you don't need pyrex to make dist
7645
7646         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7647         sources; run moc
7648         
7649 2004-03-18  Richard Hult  <richard@imendio.com>
7650
7651         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7652         (dbus_message_set_auto_activation): Add doxygen docs.
7653
7654 2004-03-16  Richard Hult  <richard@imendio.com>
7655
7656         * bus/activation.c: (bus_activation_service_created),
7657         (bus_activation_send_pending_auto_activation_messages),
7658         (bus_activation_activate_service):
7659         * bus/activation.h:
7660         * bus/dispatch.c: (bus_dispatch),
7661         (check_nonexistent_service_auto_activation),
7662         (check_service_auto_activated),
7663         (check_segfault_service_auto_activation),
7664         (check_existent_service_auto_activation), (bus_dispatch_test):
7665         * bus/driver.c: (bus_driver_handle_activate_service):
7666         * bus/services.c: (bus_registry_acquire_service):
7667         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7668         (dbus_message_get_auto_activation):
7669         * dbus/dbus-message.h:
7670         * dbus/dbus-protocol.h: Implement auto-activation.
7671         
7672         * doc/dbus-specification.xml: Add auto-activation to the spec.
7673
7674 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7675
7676         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7677         fix a bug with CUSTOM types.
7678
7679         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7680         a unit test for this bug (used to fail).
7681
7682 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7683
7684         * bus/activation.c:
7685         (babysitter_watch_callback): notify all pending activations waiting for
7686           the same exec that the activation failed.
7687         (bus_activation_activate_service): shortcut the activation if we 
7688           already waiting for the same executable to start up.
7689
7690 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7691
7692         * bus/activation.c: 
7693         - Added service file reloading. 
7694           Each service files directory is kept in an hash table in 
7695           BusActivation and each BusActivationEntry knows what .service-file it
7696           was read from. So when you try to activate a service the bus will 
7697           check if it's been updated, removed or if new .service-files has 
7698           been installed.
7699         - Test code at the bottom for the service file reloading.
7700         * bus/test-main.c: (main):
7701         * bus/test.h:
7702         - added service reloading test.
7703         * dbus/dbus-sysdeps.c: 
7704         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7705
7706 2004-03-08  Michael Meeks  <michael@ximian.com>
7707
7708         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7709         bail immediately if disconnected, to avoid busy loop.
7710
7711         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7712         cleanup cut/paste/inefficiency.
7713
7714 2004-03-01  David Zeuthen  <david@fubar.dk>
7715
7716         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7717         bug where args were used twice. This bug resulted in a segfault
7718         on a Debian/PPC system when starting the messagebus daemon. Include
7719         dbus-sysdeps.h for DBUS_VA_COPY
7720
7721         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7722
7723         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7724         appropriate va_copy implementation. From GLib
7725         
7726 2004-02-24  Joe Shaw  <joe@ximian.com>
7727
7728         * bus/services.c (bus_registry_acquire_service): We need to pass
7729         in the service name to dbus_set_error() to prevent a crash.
7730
7731 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7732
7733         * AUTHORS: Reveal my True identity.
7734
7735 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7736
7737         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7738         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7739
7740 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7741
7742         * doc/TODO: Added not about better error check of configuration files.
7743
7744 2003-12-02  Richard Hult  <richard@imendio.com>
7745
7746         * Update AFL version to 2.0 throughout the source files to reflect
7747         the update that was done a while ago.
7748
7749 2003-12-02  Richard Hult  <richard@imendio.com>
7750
7751         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7752         wrote_dict_key to FALSE on the iter that the dict is appended to,
7753         just like when appending other types. Fixes a bug where a dict
7754         couldn't be put inside a dict.
7755         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7756         (message_iter_test, _dbus_message_test): Add test case for dict
7757         inside dict.
7758
7759 2003-12-01  David Zeuthen  <david@fubar.dk>
7760
7761         * python/dbus.py: Add the actual message when calling the reciever
7762         of a signal such that parameters can be inspected. Add the method
7763         remove_signal_receiver
7764         
7765 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7766
7767         * bus/*.[ch]:
7768         * dbus/*.[ch]:
7769         * glib/*.[ch]: Made ref functions return the pointer
7770
7771 2003-11-25  Zack Rusin  <zack@kde.org>
7772
7773         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7774
7775         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7776         wrappers,
7777
7778         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7779         the Integrator and to better fit with the server,
7780
7781 2003-11-24  Zack Rusin  <zack@kde.org>
7782
7783         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7784         the integrator handles it now
7785
7786         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7787         since QTimer wasn't really meant to be used the way DBusTimeout is
7788
7789 2003-11-24  Zack Rusin  <zack@kde.org>
7790
7791         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7792         Integrator class which integrates D-BUS with the Qt event loop,
7793
7794         * qt/connection.h, qt/connection.cpp: Move all the code which
7795         was dealing with D-BUS integration to the Integrator class,
7796         and start using Integrator,
7797
7798 2003-11-23  Zack Rusin  <zack@kde.org>
7799
7800         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7801         wrapper
7802
7803         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7804         switching namespaces to DBusQt, reworking the class,
7805
7806         * Makefile.cvs: switching dependencies so that it matches KDE 
7807         schematics,
7808         
7809         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7810         the library
7811
7812 2003-11-19  Havoc Pennington  <hp@redhat.com>
7813
7814         * NEWS: update
7815
7816         * configure.in: bump version to 0.20
7817
7818         * configure.in (have_qt): add yet another place to look for qt
7819         (someone hand trolltech a .pc file...)
7820
7821 2003-11-01  Havoc Pennington  <hp@redhat.com>
7822
7823         * doc/dbus-specification.xml: add state machine docs on the auth
7824         protocol; just a first draft, I'm sure it's wrong.      
7825
7826 2003-10-28  David Zeuthen  <david@fubar.dk>
7827
7828         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7829         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7830         
7831 2003-10-28  Havoc Pennington  <hp@redhat.com>
7832
7833         * dbus/dbus-message.c (get_next_field): delete unused function
7834
7835 2003-10-28  Havoc Pennington  <hp@redhat.com>
7836
7837         * bus/expirelist.c (do_expiration_with_current_time): detect
7838         failure of the expire_func due to OOM
7839
7840         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7841
7842         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7843         NoReply error that's now created by the bus when the service exits
7844
7845 2003-10-28  Havoc Pennington  <hp@redhat.com>
7846
7847         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7848         tests for set_path, set_interface, set_member, etc.
7849
7850         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7851
7852         * dbus/dbus-message.c (set_string_field): always just delete and
7853         re-append the field; accept NULL for deletion
7854         (re_align_fields_recurse): reimplement
7855         
7856 2003-10-26  Havoc Pennington  <hp@redhat.com>
7857
7858         * dbus/dbus-connection.c: fix docs to properly describe the
7859         disconnected message
7860         (_dbus_connection_notify_disconnected): remove this function; 
7861         we can't synchronously add the disconnected message, we have to 
7862         do it after we've queued any remaining real messages
7863         (_dbus_connection_get_dispatch_status_unlocked): queue the
7864         disconnect message only if the transport has finished queueing all
7865         its real messages and is disconnected.
7866         (dbus_connection_disconnect): update the dispatch status here
7867
7868 2003-10-22  Havoc Pennington  <hp@redhat.com>
7869
7870         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7871
7872         * bus/connection.c (bus_transaction_send_from_driver): set the
7873         destination to the connection's base service
7874
7875 2003-10-20  Havoc Pennington  <hp@redhat.com>
7876
7877         hmm, make check is currently not passing.
7878         
7879         * doc/dbus-specification.xml: add requirement that custom type
7880         names follow the same rules as interface names.
7881
7882         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7883         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7884         'map'
7885
7886         * doc/dbus-specification.xml: update type codes to match
7887         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7888         CUSTOM. Add type OBJECT_PATH to the spec.
7889
7890 2003-10-17  Havoc Pennington  <hp@redhat.com>
7891
7892         * bus/driver.c (create_unique_client_name): use "." as separator
7893         in base service names instead of '-'
7894
7895         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7896         byte at the end of the string
7897
7898         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7899         optimization macros since string validation seems to be a slow
7900         point.
7901         
7902         * doc/dbus-specification.xml: restrict valid
7903         service/interface/member/error names. Add test suite code for the
7904         name validation.
7905
7906         * dbus/dbus-string.c: limit service/interface/member/error names 
7907         to [0-9][A-Z][a-z]_
7908
7909         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7910         format arg to verbose spew
7911
7912         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7913         memory, return instead of g_error
7914
7915         * test/test-service.c (path_message_func): support emitting a
7916         signal on request
7917
7918         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7919         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7920         assuming the activation bus was the session bus so that services
7921         started manually will still register.
7922         (init_connections_unlocked): fix so that in OOM situation we get
7923         the same semantics when retrying the function
7924         
7925         * test/test-service.c (main): change to use path registration, to
7926         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7927         than DBUS_BUS_SESSION
7928
7929 2003-10-16  Havoc Pennington  <hp@redhat.com>
7930
7931         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7932
7933         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7934         coverage of the tests
7935         (coverage-report.txt): don't move the .da and .bbg files around
7936
7937 2003-10-16  Havoc Pennington  <hp@redhat.com>
7938
7939         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7940         to put there
7941
7942 2003-10-16  Havoc Pennington  <hp@redhat.com>
7943
7944         * bus/connection.c (bus_pending_reply_expired): either cancel or
7945         execute, not both
7946         (bus_connections_check_reply): use unlink, not remove_link, as we
7947         don't want to free the link; fixes double free mess
7948
7949         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7950         where no reply was received
7951
7952         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7953         fix a refcount leak
7954
7955         * bus/signals.c (match_rule_matches): add special cases for the
7956         bus driver, so you can match on sender/destination for it.
7957
7958         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7959         DBUS_PRINT_BACKTRACE is set
7960
7961         * dbus/dbus-internals.c: add pid to assertion failure messages
7962
7963         * dbus/dbus-connection.c: add message type code to the debug spew
7964
7965         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7966         sender=foo not service=foo
7967
7968         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7969         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7970         DBUS_ACTIVATION_ADDRESS instead
7971
7972         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7973         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7974
7975         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7976         context struct
7977
7978         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7979         (dbus_message_iter_get_object_path_array): new function (half
7980         finished, disabled for the moment)
7981         
7982         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7983         DBUS_MESSAGE_TYPE_ERROR
7984
7985         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7986         avoid redirecting stderr to /dev/null
7987         (babysit): close stdin if not doing the "exit_with_session" thing
7988
7989         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7990         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7991         stdout/stdin, so things don't get confused
7992         
7993         * bus/system.conf.in: fix to allow replies, I modified .conf
7994         instead of .conf.in again.
7995
7996 2003-10-14  David Zeuthen  <david@fubar.dk>
7997
7998         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7999         argtype to arg_type when raising unknown arg type exception.
8000         Changed type list to reflect the changes in dbus-protocol.h so 
8001         the bindings actually work.
8002
8003 2003-10-14  Havoc Pennington  <hp@redhat.com>
8004
8005         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8006         to have a bug keeping it from outputting the .da files sometimes
8007         (string_get_string): don't append garbage nul bytes to the string.
8008
8009 2003-10-15  Seth Nickell  <seth@gnome.org>
8010
8011         * python/Makefile.am:
8012
8013         Include dbus_h_wrapper.h in the dist tarball.
8014
8015 2003-10-14  Havoc Pennington  <hp@redhat.com>
8016
8017         * bus/bus.c (bus_context_check_security_policy): revamp this to
8018         work more sanely with new policy-based requested reply setup
8019
8020         * bus/connection.c (bus_transaction_send_from_driver): set bus
8021         driver messages as no reply
8022
8023         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8024         requested_reply attribute on allow/deny rules
8025
8026         * bus/system.conf: add <allow requested_reply="true"/>
8027
8028         * bus/driver.c (bus_driver_handle_message): fix check for replies
8029         sent to the bus driver, which was backward. How did this ever work
8030         at all though? I think I'm missing something.
8031
8032         * dbus/dbus-message.c (decode_header_data): require error and
8033         method return messages to have a reply serial field to be valid
8034         (_dbus_message_loader_queue_messages): break up this function;
8035         validate that reply serial and plain serial are nonzero; 
8036         clean up the OOM/error handling.
8037         (get_uint_field): don't return -1 from this
8038         (dbus_message_create_header): fix signed/unsigned bug
8039
8040         * bus/connection.c (bus_connections_expect_reply): save serial of
8041         the incoming message, not reply serial
8042
8043 2003-10-14  Havoc Pennington  <hp@redhat.com>
8044
8045         * bus/connection.c: implement pending reply tracking using
8046         BusExpireList
8047
8048         * bus/bus.c (bus_context_check_security_policy): verify that a
8049         reply is pending in order to allow a reply to be sent. Deny 
8050         messages of unknown type.
8051
8052         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8053
8054         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8055         (bus_context_get_reply_timeout): new
8056
8057 2003-10-13  Seth Nickell  <seth@gnome.org>
8058
8059         * python/Makefile.am:
8060
8061         Pass "make distcheck": remove a couple files from DIST_FILES
8062         that weren't included in the final version.
8063
8064 2003-10-12  Havoc Pennington  <hp@pobox.com>
8065
8066         Added test code that 1) starts an actual bus daemon and 2) uses
8067         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8068         more testing possible, but this is the basic framework.
8069         
8070         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8071         empty proxy lists from the proxy list hash
8072
8073         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8074         couple of return_if_fail checks
8075
8076         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8077         to allocate, so everything is cleared to NULL as it should be.
8078
8079         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8080         source as data to dbus_connection_set_timeout_functions() as the 
8081         timeout functions expected
8082
8083         * test/glib/run-test.sh: add a little script to start up a message
8084         bus and run tests using it
8085
8086         * tools/dbus-launch.1: updates
8087
8088         * tools/dbus-launch.c (main): add --config-file option
8089
8090         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8091         that could never be reached.
8092
8093         * dbus/dbus-message.c (dbus_message_new_method_return) 
8094         (dbus_message_new_error, dbus_message_new_signal): set the
8095         no-reply-expected flag on all these. Redundant, but may
8096         as well be consistent.
8097
8098 2003-10-11  Havoc Pennington  <hp@pobox.com>
8099
8100         * test/decode-gcov.c (function_solve_graph): make broken block
8101         graph a nonfatal error since it seems to be broken. Need to debug
8102         this.
8103
8104         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8105         can't just check type > INVALID < LAST anymore
8106
8107         * dbus/dbus-message.c (dbus_message_get_signature): new function
8108         (dbus_message_has_signature): new function
8109         (struct DBusMessage): add signature field (right now it isn't sent
8110         over the wire, just generated on the fly)
8111         (dbus_message_copy): copy the signature, and init strings to
8112         proper length to avoid some reallocs
8113         (dbus_message_iter_init_array_iterator): return void, since it
8114         can't fail
8115         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8116         (_dbus_message_loader_queue_messages): add silly temporary hack to
8117         fill in message->signature on load
8118
8119         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8120         characters, so they are relatively human-readable.
8121
8122 2003-10-11  Havoc Pennington  <hp@pobox.com>
8123
8124         * dbus/dbus-message.c (_dbus_message_test): add more test
8125         coverage, but #if 0 for now since they uncover a bug 
8126         not fixed yet; I think in re_align_field_recurse()
8127         (re_align_field_recurse): add FIXME about broken assertion
8128
8129         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8130
8131         * bus/connection.c: share a couple code bits with expirelist.c
8132
8133         * bus/expirelist.h, bus/expirelist.c: implement a generic
8134         expire-items-after-N-seconds facility, was going to share between
8135         expiring connections and replies, decided not to use for expiring
8136         connections for now.
8137
8138         * COPYING: include AFL 2.0 (still need to change all the file headers)
8139
8140 2003-10-09  Havoc Pennington  <hp@redhat.com>
8141
8142         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8143         gcc 3.3. Not that we do anything about it yet.
8144
8145         * bus/signals.c (bus_match_rule_parse): impose max length on the
8146         match rule text
8147
8148         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8149
8150 2003-10-09  Havoc Pennington  <hp@redhat.com>
8151
8152         Make matching rules theoretically work (add parser).
8153         
8154         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8155         the case where destination is explicitly specified as bus driver
8156         and someone else is eavesdropping.
8157         
8158         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8159         definition of eavesdropping and assertion
8160
8161         * tools/dbus-send.c (main): use dbus_message_type_from_string
8162
8163         * bus/signals.c (bus_match_rule_parse): implement
8164
8165         * dbus/dbus-message.c (dbus_message_type_from_string): new
8166
8167         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8168
8169 2003-10-02  Havoc Pennington  <hp@pobox.com>
8170
8171         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8172         dbus_gproxy_oneway_call
8173
8174         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8175         (dbus_server_setup_with_g_main): fix to allow calling them more
8176         than once on the same args
8177         (dbus_bus_get_with_g_main): new function
8178
8179 2003-10-02  Havoc Pennington  <hp@redhat.com>
8180
8181         * doc/dbus-tutorial.xml: write some stuff
8182
8183 2003-09-29  Havoc Pennington  <hp@pobox.com>
8184
8185         * configure.in: split checks for Doxygen from XML docs, check for
8186         xmlto
8187
8188         * doc/Makefile.am: XML-ify all the docs, and add a blank
8189         dbus-tutorial.xml
8190
8191 2003-09-29  Havoc Pennington  <hp@pobox.com>
8192
8193         * Merge dbus-object-names branch. To see the entire patch 
8194         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8195         it's huuuuge though.
8196         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8197         
8198 2003-09-28  Havoc Pennington  <hp@pobox.com>
8199
8200         * HACKING: update to reflect new server
8201
8202 2003-09-26  Seth Nickell  <seth@gnome.org>
8203
8204         * python/dbus.py:
8205         * python/examples/example-signals.py:
8206
8207         Start implementing some notions of signals. The API
8208         is really terrible, but they sort of work (with the
8209         exception of being able to filter by service, and to
8210         transmit signals *as* a particular service). Need to
8211         figure out how to make messages come from the service
8212         we registered :-(
8213         
8214         * python/dbus_bindings.pyx.in:
8215
8216         Removed duplicate message_handler callbacks.
8217         
8218 2003-09-25  Havoc Pennington  <hp@redhat.com>
8219
8220         * bus/session.conf.in: fix my mess
8221
8222 2003-09-25  Havoc Pennington  <hp@pobox.com>
8223
8224         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8225
8226 2003-09-25  Seth Nickell  <seth@gnome.org>
8227
8228         * python/examples/example-service.py:
8229
8230         Johan notices complete wrong code in example-service, but
8231         completely wrong in a way that works exactly the same (!).
8232         Johan is confused, how could this possibly work? Example
8233         code fails to serve purpose of making things clear.
8234         Seth fixes.
8235
8236 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8237
8238         * doc/dbus-specification.sgml: don't require header fields
8239         to be 4-byte aligned and specify that fields should be
8240         distinguished from padding by the fact that zero is not
8241         a valid field name.
8242         
8243         * doc/TODO: remove re-alignment item and add item to doc
8244         the OBJECT_PATH type.
8245         
8246         * dbus/dbus-message.c:
8247         (HeaderField): rename the original member to value_offset
8248         and introduce a name_offset member to keep track of where
8249         the field actually begins.
8250         (adjust_field_offsets): remove.
8251         (append_int_field), (append_uint_field),
8252         (append_string_field): don't align the start of the header
8253         field to a 4-byte boundary.
8254         (get_next_field): impl finding the next marhsalled field
8255         after a given field.
8256         (re_align_field_recurse): impl re-aligning a number of
8257         already marshalled fields.
8258         (delete_field): impl deleting a field of any type and
8259         re-aligning any following fields.
8260         (delete_int_or_uint_field), (delete_string_field): remove.
8261         (set_int_field), (set_uint_field): no need to re-check
8262         that we have the correct type for the field.
8263         (set_string_field): ditto and impl re-aligning any
8264         following fields.
8265         (decode_header_data): update to take into account that
8266         the fields aren't 4-byte aligned any more and the new
8267         way to distinguish padding from header fields. Also,
8268         don't exit when there is too much header padding.
8269         (process_test_subdir): print the directory.
8270         (_dbus_message_test): add test to make sure a following
8271         field is re-aligned correctly after field deletion.
8272         
8273         * dbus/dbus-string.[ch]:
8274         (_dbus_string_insert_bytes): rename from insert_byte and
8275         allow the insert of multiple bytes.
8276         (_dbus_string_test): test inserting multiple bytes.
8277
8278         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8279         warning note to docs about having to re-align any
8280         marshalled values following the string.
8281         
8282         * dbus/dbus-message-builder.c:
8283         (append_string_field), (_dbus_message_data_load):
8284         don't align the header field.
8285         
8286         * dbus/dbus-auth.c: (process_test_subdir): print the
8287         directory.
8288         
8289         * test/break-loader.c: (randomly_add_one_byte): upd. for
8290         insert_byte change.
8291         
8292         * test/data/invalid-messages/bad-header-field-alignment.message:
8293         new test case.
8294         
8295         * test/data/valid-messages/unknown-header-field.message: shove
8296         a dict in the unknown field.
8297
8298 2003-09-25  Seth Nickell  <seth@gnome.org>
8299
8300         * python/dbus.py:
8301         * python/dbus_bindings.pyx.in:
8302
8303         Handle return values.
8304         
8305         * python/examples/example-client.py:
8306         * python/examples/example-service.py:
8307
8308         Pass back return values from the service to the client.
8309         
8310 2003-09-24  Seth Nickell  <seth@gnome.org>
8311
8312         * python/dbus.py:
8313
8314         Connect Object methods (when you are sharing an object) up... pass
8315         in a list of methods to be shared. Sharing all the methods just
8316         worked out too weird. You can now create nice Services over the
8317         DBus in Python. :-)
8318         
8319         * python/dbus_bindings.pyx.in:
8320
8321         Keep references to user_data tuples passed into C functions so 
8322         Python doesn't garbage collect on us.
8323
8324         Implement MethodReturn and Error subclasses of Message for creating
8325         DBusMessage's of those types.
8326         
8327         * python/examples/example-client.py:
8328         * python/examples/example-service.py:
8329
8330         Simple example code showing both how create DBus services and objects,
8331         and how to use them.
8332
8333 2003-09-23  Havoc Pennington  <hp@pobox.com>
8334
8335         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8336
8337 2003-09-23  Havoc Pennington  <hp@redhat.com>
8338
8339         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8340         (dbus_gproxy_disconnect_signal): implement
8341         (dbus_gproxy_manager_remove_signal_match): implement
8342         (dbus_gproxy_manager_add_signal_match): implement
8343         (dbus_gproxy_oneway_call): implement
8344
8345 2003-09-23  Havoc Pennington  <hp@pobox.com>
8346
8347         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8348         subclass. This means dropping the transparent thread safety of the
8349         proxy; you now need a separate proxy per-thread, or your own
8350         locking on the proxy. Probably right anyway.
8351         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8352
8353 2003-09-22  Havoc Pennington  <hp@redhat.com>
8354
8355         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8356
8357 2003-09-21  Seth Nickell  <seth@gnome.org>
8358
8359         First checkin of the Python bindings.
8360         
8361         * python/.cvsignore:
8362         * python/Makefile.am:
8363         * python/dbus_bindings.pyx.in:
8364         * python/dbus_h_wrapper.h:
8365
8366         Pieces for Pyrex to operate on, building a dbus_bindings.so
8367         python module for low-level access to the DBus APIs.
8368         
8369         * python/dbus.py:
8370
8371         High-level Python module for accessing DBus objects.
8372
8373         * configure.in:
8374         * Makefile.am:
8375
8376         Build stuff for the python bindings.
8377
8378         * acinclude.m4:
8379
8380         Extra macro needed for finding the Python C header files.
8381
8382 2003-09-21  Havoc Pennington  <hp@pobox.com>
8383
8384         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8385         implementing the proxy manager, didn't get very far.
8386
8387         * dbus/dbus-bus.c (dbus_bus_add_match): new
8388         (dbus_bus_remove_match): new
8389
8390         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8391         path_name argument; adjust the other not-yet-implemented 
8392         gproxy constructors to be what I think they should be.
8393
8394 2003-09-21  Havoc Pennington  <hp@pobox.com>
8395
8396         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8397         by default for message bus connections.
8398
8399         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8400         exit_on_disconnect flag is set and we process the disconnected
8401         signal.
8402         (dbus_connection_set_exit_on_disconnect): new function
8403
8404 2003-09-21  Havoc Pennington  <hp@pobox.com>
8405
8406         Get matching rules mostly working in the bus; only actually
8407         parsing the rule text remains. However, the client side of
8408         "signal connections" hasn't been started, this patch is only the
8409         bus side.
8410         
8411         * dbus/dispatch.c: fix for the matching rules changes
8412         
8413         * bus/driver.c (bus_driver_handle_remove_match)
8414         (bus_driver_handle_add_match): send an ack reply from these
8415         method calls
8416
8417         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8418         arguments, reported by Seth Nickell
8419
8420         * bus/config-parser.c (append_rule_from_element): support
8421         eavesdrop=true|false attribute on policies so match rules 
8422         can be prevented from snooping on the system bus.
8423
8424         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8425         and "destination" in attribute names; fix some docs bugs; 
8426         add eavesdrop=true|false attribute
8427
8428         * bus/driver.c (bus_driver_handle_add_match)
8429         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8430         messages
8431
8432         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8433         rid of broadcast service concept, signals are just always broadcast
8434
8435         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8436         mostly implement matching rules stuff (currently only exposed as signal
8437         connections)
8438
8439 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8440
8441         * doc/dbus-specification.sgml: Change the header field name
8442         to be an enum and update the rest of the spec to reference
8443         the fields using the conventinal name.
8444
8445         * dbus/dbus-protocol.h: update to reflect the spec.
8446
8447         * doc/TODO: add item to remove the 4 byte alignment requirement.
8448         
8449         * dbus/dbus-message.c: Remove the code to generalise the
8450         header/body length and serial number header fields as named
8451         header fields so we can reference field names using the 
8452         protocol values.
8453         (append_int_field), (append_uint_field), (append_string_field):
8454         Append the field name as a byte rather than four chars.
8455         (delete_int_or_uint_field), (delete_string_field): reflect the
8456         fact that the field name and typecode now occupy 4 bytes instead
8457         of 8.
8458         (decode_string_field), (decode_header_data): update to reflect
8459         protocol changes and move the field specific encoding from
8460         decode_string_field() back into decode_header_data().
8461         
8462         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8463         Add utility to aid debugging.
8464         
8465         * dbus/dbus-message-builder.c:
8466         (append_string_field), (_dbus_message_data_load): Update to
8467         reflect protocol changes; Change the FIELD_NAME directive
8468         to HEADER_FIELD and allow it to take the field's conventional
8469         name rather than the actual value.
8470         
8471         * test/data/*/*.message: Update to use HEADER_FIELD instead
8472         of FIELD_NAME; Always align the header on an 8 byte boundary
8473         *before* updating the header length.
8474
8475 2003-09-15  Havoc Pennington  <hp@pobox.com>
8476
8477         * dbus/dbus-pending-call.c: add the get/set object data
8478         boilerplate as for DBusConnection, etc. Use generic object data
8479         for the notify callback.
8480
8481         * glib/dbus-gparser.c (parse_node): parse child nodes
8482
8483         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8484         
8485         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8486         contain functions shared between the convenience lib and the
8487         installed lib
8488
8489         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8490         -export-symbols-regex to the GLib library
8491
8492         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8493         fix the locking in here, and add a default handler for
8494         Introspect() that just returns sub-nodes.
8495
8496 2003-09-14  Havoc Pennington  <hp@pobox.com>
8497
8498         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8499         rather than gfoo consistent
8500
8501         * glib/dbus-gproxy.h: delete for now, move contents to
8502         dbus-glib.h, because the include files don't work right since we
8503         aren't in the dbus/ subdir.
8504         
8505         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8506         (dbus_gproxy_end_call): finish
8507         (dbus_gproxy_begin_call): finish
8508
8509         * glib/dbus-gmain.c (dbus_set_g_error): new
8510
8511         * glib/dbus-gobject.c (handle_introspect): include information
8512         about child nodes in the introspection
8513
8514         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8515         function to help in implementation of introspection
8516
8517         * dbus/dbus-object-tree.c
8518         (_dbus_object_tree_list_registered_and_unlock): new function
8519
8520 2003-09-12  Havoc Pennington  <hp@pobox.com>
8521
8522         * glib/dbus-gidl.h: add common base class for all the foo_info
8523         types
8524
8525         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8526         similar to kdcop
8527
8528         * test/Makefile.am: try test srcdir -ef . in addition to test
8529         srcdir = ., one of them should work (yeah lame)
8530         
8531         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8532         library
8533         
8534         * glib/dbus-gparser.h: make description_load routines return
8535         NodeInfo* not Parser*
8536
8537         * Makefile.am (SUBDIRS): build test dir after all library dirs
8538
8539         * configure.in: add GTK+ detection
8540
8541 2003-09-07  Havoc Pennington  <hp@pobox.com>
8542
8543         * Make Doxygen contented.
8544
8545 2003-09-07  Havoc Pennington  <hp@pobox.com>
8546
8547         * doc/dbus-specification.sgml: more updates
8548
8549 2003-09-06  Havoc Pennington  <hp@pobox.com>
8550
8551         * doc/dbus-specification.sgml: partial updates
8552
8553         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8554         zillionth time; hopefully I edited the right file this time.
8555
8556         * bus/config-parser.c (append_rule_from_element): support
8557         send_type, send_path, receive_type, receive_path
8558
8559         * bus/policy.c: add message type and path to the list of things
8560         that can be "firewalled"
8561
8562 2003-09-06  Havoc Pennington  <hp@pobox.com>
8563
8564         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8565         (dbus_connection_register_object_path): make this not handle
8566         messages to paths below the given path
8567
8568 2003-09-03  Havoc Pennington  <hp@pobox.com>
8569
8570         * test/glib/Makefile.am: add this with random glib-linked test
8571         programs
8572
8573         * glib/Makefile.am: remove the random test programs from here,
8574         leave only the unit tests
8575
8576         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8577         uscore/javacaps conversion, and fix     
8578         (get_object_property, set_object_property): change to .NET
8579         convention for mapping props to methods, set_FooBar/get_FooBar, 
8580         since one language has such a convention we may as well copy it. 
8581         Plus real methods in either getFooBar or get_foo_bar style won't 
8582         collide with this convention.
8583
8584 2003-09-01  Havoc Pennington  <hp@pobox.com>
8585
8586         * glib/dbus-gparser.c: implement
8587
8588         * glib/dbus-gobject.c: start implementing skeletons support
8589
8590         * configure.in: when disabling checks/assert, also define
8591         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8592
8593 2003-09-01  Havoc Pennington  <hp@pobox.com>
8594
8595         * glib/Makefile.am: rearrange a bunch of files and get "make
8596         check" framework set up
8597
8598 2003-08-31  Havoc Pennington  <hp@pobox.com>
8599
8600         * fix build with --disable-tests
8601
8602 2003-08-30  Havoc Pennington  <hp@pobox.com>
8603
8604         * dbus/dbus-connection.c: purge DBusMessageHandler
8605
8606         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8607         use callbacks everywhere
8608
8609 2003-08-30  Havoc Pennington  <hp@pobox.com>
8610
8611         * test/data/valid-config-files/system.d/test.conf: change to 
8612         root for the user so warnings don't get printed
8613
8614         * dbus/dbus-message.c: add dbus_message_get_path,
8615         dbus_message_set_path
8616         
8617         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8618         dispatching to a path
8619
8620         * dbus/dbus-string.c (_dbus_string_validate_path): add
8621
8622         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8623         (_dbus_marshal_object_path): implement
8624
8625         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8626         to contain the path to the target object
8627         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8628         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8629
8630 2003-08-30  Havoc Pennington  <hp@pobox.com>
8631
8632         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8633
8634 2003-08-29  Havoc Pennington  <hp@pobox.com>
8635
8636         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8637         registered
8638         (struct DBusObjectSubtree): shrink this
8639         a lot, since we may have a lot of them
8640         (_dbus_object_tree_free_all_unlocked): implement
8641         (_dbus_object_tree_dispatch_and_unlock): implement
8642
8643 2003-08-29  Havoc Pennington  <hp@pobox.com>
8644
8645         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8646
8647 2003-08-28  Havoc Pennington  <hp@pobox.com>
8648
8649         purge DBusObjectID
8650         
8651         * dbus/dbus-connection.c: port to no ObjectID, create a
8652         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8653
8654         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8655         everything except UnregisterFunction and MessageFunction
8656         
8657         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8658         add DBUS_TYPE_OBJECT_PATH
8659         
8660         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8661         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8662         path-based object IDs
8663
8664 2003-08-25  Havoc Pennington  <hp@pobox.com>
8665
8666         Just noticed that dbus_message_test is hosed, I wonder when I
8667         broke that. I thought make check was passing earlier...
8668         
8669         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8670         container tree, will replace most of dbus-object-registry
8671
8672         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8673         screwup
8674
8675 2003-08-19  Havoc Pennington  <hp@pobox.com>
8676
8677         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8678         (dbus_message_is_error): fix this function
8679
8680         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8681         match
8682
8683         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8684         reflect clarified man page
8685         (bus_client_policy_check_can_send): ditto
8686         
8687         * bus/session.conf.in: fixup
8688
8689         * bus/system.conf.in: fixup
8690
8691 2003-08-18  Havoc Pennington  <hp@redhat.com>
8692
8693         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8694
8695         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8696         dumb bug created earlier (wrong order of args to
8697         decode_header_data())
8698         
8699         * tools/dbus-send.c: port
8700
8701         * tools/dbus-print-message.c (print_message): port
8702
8703         * test/data/*messages: port all messages over
8704         
8705         * dbus/dbus-message-builder.c: support including 
8706         message type
8707         
8708         * bus/driver.c: port over
8709         
8710         * bus/dispatch.c: port over to new stuff
8711
8712         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8713         rename disconnect signal to "Disconnected"
8714
8715 2003-08-17  Havoc Pennington  <hp@pobox.com>
8716
8717         This doesn't compile yet, but syncing up so I can hack on it from
8718         work. What are branches for if not broken code? ;-)
8719         
8720         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8721         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8722         DBUS_HEADER_FIELD_ERROR_NAME
8723         
8724         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8725         for the interface+member pairs
8726         (string_hash): change to use g_str_hash algorithm
8727         (find_direct_function, find_string_function): refactor these to
8728         share most code.
8729         
8730         * dbus/dbus-message.c: port all of this over to support 
8731         interface/member fields instead of name field
8732
8733         * dbus/dbus-object-registry.c: port over
8734         
8735         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8736         from _dbus_string_validate_name
8737
8738         * bus/dbus-daemon-1.1: change file format for the 
8739         <deny>/<allow> stuff to match new message naming scheme
8740
8741         * bus/policy.c: port over
8742
8743         * bus/config-parser.c: parse new format
8744         
8745 2003-08-16  Havoc Pennington  <hp@pobox.com>
8746
8747         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8748         broken assertion
8749
8750         * glib/dbus-gproxy.c: some hacking
8751
8752 2003-08-15  Havoc Pennington  <hp@redhat.com>
8753
8754         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8755
8756         * dbus/dbus-connection.c
8757         (dbus_connection_send_with_reply_and_block): factor out internals;
8758         change to convert any error replies to DBusError instead of 
8759         returning them as a message
8760
8761 2003-08-15  Havoc Pennington  <hp@pobox.com>
8762
8763         * dbus/dbus-connection.c, 
8764         dbus/dbus-pending-call.c: Finish the pending call stuff
8765
8766 2003-08-14  Havoc Pennington  <hp@redhat.com>
8767
8768         * dbus/dbus-pending-call.c: start on new object that will replace
8769         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8770         replies
8771
8772         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8773         with remote interfaces
8774
8775         * dbus/dbus-gidl.c: do the boring boilerplate in here
8776         
8777 2003-08-12  Havoc Pennington  <hp@pobox.com>
8778
8779         * bus/dispatch.c (bus_dispatch): make this return proper 
8780         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8781
8782         * dbus/dbus-errors.c (dbus_set_error): use
8783         _dbus_string_append_printf_valist
8784
8785         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8786         (_dbus_string_append_printf): new
8787
8788         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8789         UNKNOWN_METHOD
8790
8791         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8792         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8793         message is unhandled.
8794
8795 2003-08-11  Havoc Pennington  <hp@pobox.com>
8796
8797         * bus/test.c (client_disconnect_handler): change to return
8798         HANDLED (would have been REMOVE_MESSAGE)
8799
8800         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8801         HANDLED/NOT_YET_HANDLED instead of
8802         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8803         should be used.
8804
8805 2003-08-10  Havoc Pennington  <hp@pobox.com>
8806
8807         * tools/dbus-send.c (main): add --type argument, for now
8808         supporting only method_call and signal types.
8809
8810         * tools/dbus-print-message.c: print message type
8811
8812         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8813         init connection->objects
8814
8815         * doc/dbus-specification.sgml: fix sgml
8816
8817         * bus/*.c: port over to object-instance API changes
8818
8819         * test/test-service.c: ditto
8820         
8821         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8822         name, we will have to fix up the rest of the code to also handle
8823         this
8824         (dbus_message_new): generic message-creation call
8825         (set_string_field): allow appending name field
8826
8827 2003-08-06  Havoc Pennington  <hp@pobox.com>
8828
8829         * dbus/dbus-object-registry.c: implement signal connection 
8830         and dispatch
8831
8832         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8833
8834         * dbus/dbus-internals.c (_dbus_memdup): new function
8835
8836 2003-08-02  Havoc Pennington  <hp@pobox.com>
8837
8838         * dbus/dbus-message.c (dbus_message_get_no_reply)
8839         (dbus_message_set_no_reply): add these and remove
8840         set_is_error/get_is_error
8841
8842         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8843         remove the ERROR flag, since there's now an ERROR type
8844
8845 2003-08-01  Havoc Pennington  <hp@pobox.com>
8846
8847         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8848         implement
8849
8850         * dbus/dbus-message.c (dbus_message_get_type): new function
8851
8852         * doc/dbus-specification.sgml: add "type" byte to messages
8853
8854 2003-08-01  Havoc Pennington  <hp@pobox.com>
8855
8856         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8857         a message type enum to distinguish kinds of message
8858         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8859         that need not be replied to
8860
8861 2003-08-01  Havoc Pennington  <hp@pobox.com>
8862
8863         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8864         (unpack_8_octets): fix no-64-bit-int bug
8865
8866         * dbus/dbus-object-registry.c (validate_id): validate the 
8867         connection ID bits, not just the instance ID.
8868
8869         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8870         the connection-global 33 bits of the object ID
8871
8872         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8873         object ID in the new way
8874
8875         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8876         define server/client/instance bits.
8877
8878 2003-07-30  Havoc Pennington  <hp@pobox.com>
8879
8880         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8881         build
8882
8883 2003-07-13  Havoc Pennington  <hp@pobox.com>
8884
8885         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8886         fields to DBusObjectVTable and DBusObjectInfo
8887
8888 2003-07-12  Havoc Pennington  <hp@pobox.com>
8889
8890         * dbus/dbus-object-registry.c: implement unit test,
8891         fix bugs discovered in process
8892
8893         * dbus/dbus-connection.c: remove handler_table and
8894         register_handler(), add DBusObjectRegistry usage
8895
8896         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8897         (dbus_object_id_set_null): new functions
8898
8899 2003-07-08  Havoc Pennington  <hp@pobox.com>
8900
8901         * dbus/dbus-object.c: implement some of this
8902
8903         * dbus/dbus-object-registry.c
8904         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8905         param
8906         (_dbus_object_registry_new): handle OOM
8907
8908 2003-07-08  Havoc Pennington  <hp@pobox.com>
8909
8910         * dbus/dbus-object.h: sketch out an API for registering objects
8911         with a connection, that allows us to use as little as 24 bytes
8912         per object and lets application code represent an object in 
8913         any conceivable way.
8914
8915         * dbus/dbus-object-registry.c: implement the hard bits of the
8916         DBusConnection aspect of object API. Not yet wired up.
8917         
8918 2003-07-06  Havoc Pennington  <hp@pobox.com>
8919
8920         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8921         (_dbus_marshal_object_id): new
8922         (_dbus_demarshal_object_id): new
8923         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8924         consolidate identical switch cases. Don't conditionalize handling
8925         of DBUS_TYPE_UINT64, need to handle the type always.
8926         (_dbus_marshal_validate_arg): consolidate identical cases, and
8927         handle DBUS_TYPE_OBJECT_ID
8928
8929         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8930
8931         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8932
8933 2003-09-28  Havoc Pennington  <hp@pobox.com>
8934
8935         * real 0.13 release
8936
8937 2003-09-28  Havoc Pennington  <hp@pobox.com>
8938
8939         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8940         to work with Debian db2html
8941
8942 2003-09-28  Havoc Pennington  <hp@pobox.com>
8943
8944         * configure.in: 0.13
8945
8946         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8947         stylesheet-images for benefit of Debian
8948         
8949         Change back to using filesystem-linked sockets for the system
8950         bus, so only root can create the default system bus address.
8951         
8952         * bus/system.conf.in: change to use
8953         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8954
8955         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8956         from here.
8957
8958         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8959         here, and AC_DEFINE DBUS_SYSTEM_PATH
8960
8961 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8962
8963         * doc/TODO:
8964         * doc/busconfig.dtd:
8965         Add busconfig DTD.
8966         
8967 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8968
8969         * doc/dbus-specification.sgml:
8970         Add activation reply values.
8971         
8972 2003-08-05  Havoc Pennington  <hp@redhat.com>
8973
8974         * configure.in: 0.12
8975
8976 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8977
8978         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8979         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8980         (add_watch), (remove_watch), (create_source):
8981         Refcount fds, fixes some reentrancy issues.
8982         
8983 2003-07-30  Havoc Pennington  <hp@redhat.com>
8984
8985         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8986         bus address to be abstract if we have abstract sockets
8987
8988         * NEWS: update
8989
8990 2003-07-28  Havoc Pennington  <hp@redhat.com>
8991
8992         * bus/messagebus.in: fix to avoid processname/servicename 
8993         confusion, from Michael Kearey
8994         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8995         
8996 2003-07-23  Havoc Pennington  <hp@pobox.com>
8997
8998         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8999         fix from Andy Hanton to remove broken "+1"
9000
9001 2003-07-16  Havoc Pennington  <hp@pobox.com>
9002
9003         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9004         babysitter process, as suggested by Thomas Leonard, so 
9005         an "eval `dbus-launch --exit-with-session`" will actually 
9006         return
9007
9008 2003-07-16  Havoc Pennington  <hp@pobox.com>
9009
9010         * configure.in: print out EXPANDED_* variables in the summary at
9011         the end; clean up the code that computes EXPANDED_ variables and
9012         get the ones using exec_prefix right. Should make things work
9013         when you build without --prefix
9014
9015 2003-06-29  Havoc Pennington  <hp@pobox.com>
9016
9017         * mono/Test.cs (class Test): fire up a main loop and run it
9018
9019         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9020         done once, the app has to do it
9021
9022 2003-06-26  Havoc Pennington  <hp@pobox.com>
9023
9024         * mono/Connection.cs: set up connection with the glib main loop
9025
9026 2003-07-01  Havoc Pennington  <hp@redhat.com>
9027
9028         * doc/dbus-specification.sgml: clarify the format of a type code,
9029         change suggested by Jim Blandy
9030
9031 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9032
9033         * doc/Makefile.am:
9034         * tools/Makefile.am: Don't assume srcdir == builddir.
9035
9036         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9037         the allocated block.
9038         (_dbus_memory_test): New function.
9039         * dbus/dbus-test.h: Add _dbus_memory_test ().
9040         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9041
9042         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9043         of %c%c%c%c.
9044         (dbus_message_new): Remove obsolete @todo.
9045
9046         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9047         (_dbus_marshal_set_uint64): Fix comment.
9048
9049         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9050         hardcode FIELD_REPLY_SERIAL.
9051
9052         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9053         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9054
9055         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9056         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9057
9058 2003-06-24  Havoc Pennington  <hp@pobox.com>
9059
9060         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9061
9062 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9063
9064         * configure.in:
9065         * gcj/.cvsignore:
9066         * gcj/Hello.java:
9067         * gcj/Makefile.am:
9068         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9069         * gcj/org/.cvsignore:
9070         * gcj/org/Makefile.am:
9071         * gcj/org/freedesktop/.cvsignore:
9072         * gcj/org/freedesktop/Makefile.am:
9073         * gcj/org/freedesktop/dbus/.cvsignore:
9074         * gcj/org/freedesktop/dbus/Makefile.am:
9075         * gcj/org/freedesktop/dbus/Message.java: (Message),
9076         (Message.Message):
9077         * gcj/org/freedesktop/dbus/natMessage.cc:
9078         Fix the build system.
9079
9080 2003-06-22  Havoc Pennington  <hp@pobox.com>
9081
9082         * mono/Connection.cs: add more bindings
9083
9084         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9085         more than once.
9086
9087 2003-06-22  Havoc Pennington  <hp@pobox.com>
9088
9089         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9090         Start wrapping more stuff.
9091
9092 2003-06-22  Havoc Pennington  <hp@pobox.com>
9093
9094         * mono/Message.cs: implement Message.Wrap() that ensures we only
9095         have a single C# wrapper per DBusMessage, assuming it works which
9096         it probably doesn't.
9097
9098         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9099         (dbus_message_free_data_slot): new
9100         (dbus_message_set_data): new
9101         (dbus_message_get_data): new
9102
9103 2003-06-22  Havoc Pennington  <hp@pobox.com>
9104
9105         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9106         (_dbus_data_slot_allocator_alloc): rework these to keep a
9107         reference count on each slot and automatically manage a global
9108         slot ID variable passed in by address
9109
9110         * bus/bus.c: convert to new dataslot API
9111
9112         * dbus/dbus-bus.c: convert to new dataslot API
9113
9114         * dbus/dbus-connection.c: convert to new dataslot API
9115
9116         * dbus/dbus-server.c: convert to new dataslot API
9117
9118         * glib/dbus-gmain.c: ditto
9119
9120         * bus/test.c: ditto
9121
9122         * bus/connection.c: ditto
9123
9124 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9125
9126         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9127         after the gcj checks so that the correct configuration tags
9128         will be added to libtool.
9129
9130         * dbus-glib-1.pc.in: No need to specify any includes since
9131         dbus-1.pc.in has those.
9132
9133 2003-06-22  Havoc Pennington  <hp@pobox.com>
9134
9135         * mono/*, gcj/*, configure.in, Makefile.am:
9136         Check in makefiles and subdirs for mono and gcj bindings.
9137         Neither binding actually exists, just trying to get through
9138         all the build and other boring bits.
9139
9140 2003-06-21  Philip Blundell  <philb@gnu.org>
9141
9142         * tools/dbus-monitor.1: Updated.
9143
9144         * tools/dbus-send.1: Likewise.
9145
9146 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9147
9148         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9149         for hangup and error after checking read so we won't discard
9150         pending data if both hangup and read are set.
9151
9152 2003-06-19  Philip Blundell  <philb@gnu.org>
9153
9154         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9155
9156         * tools/dbus-send.c: Accept both --system and --session.
9157
9158         * tools/dbus-monitor.c: Same here.
9159
9160 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9161
9162         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9163         from C++ (Patch by Miloslav Trmac).
9164
9165 2003-06-15  Joe Shaw  <joe@assbarn.com>
9166
9167         * configure.in: Check for socklen_t.
9168
9169         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9170
9171         * test/test-segfault.c: Add #include <sys/time.h>
9172
9173         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9174         dbus-launch needs it.
9175
9176 2003-06-09  Havoc Pennington  <hp@redhat.com>
9177
9178         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9179         SUN_LEN, it breaks abstract socket usage
9180
9181         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9182         starts of lines.
9183
9184 2003-06-04  Havoc Pennington  <hp@pobox.com>
9185
9186         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9187         using unix:abstract=/foo, and when listening in a tmpdir
9188         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9189
9190         * dbus/dbus-transport.c (_dbus_transport_open): support
9191         unix:abstract=/foo
9192
9193         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9194         support abstract sockets
9195
9196         * dbus/dbus-transport-unix.c
9197         (_dbus_transport_new_for_domain_socket): support abstract sockets
9198
9199         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9200         toggle as an argument, implement abstract namespace support
9201         (_dbus_listen_unix_socket): ditto
9202
9203         * configure.in: add --enable-abstract-sockets and implement
9204         a configure check for autodetection of the right value.
9205
9206 2003-06-01  Havoc Pennington  <hp@pobox.com>
9207
9208         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9209         in /tmp (though on Linux this will end up being useless,
9210         when we add abstract namespace support)
9211
9212         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9213         subst'ing it
9214
9215 2003-05-28  Colin Walters  <walters@verbum.org>
9216
9217         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9218
9219 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9220
9221         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9222
9223 2003-05-17  Colin Walters  <walters@gnu.org>
9224
9225         * tools/dbus-send.c: Don't exit with an error code if --help was
9226         passed.  Default to using the session bus instead of the system
9227         one.
9228
9229         * tools/dbus-launch.c: Ditto.
9230
9231         * tools/dbus-monitor.c: Ditto.
9232
9233         * tools/dbus-send.1: Update with new arguments.
9234
9235         * tools/dbus-launch.c: Emit code to export variables.  New
9236         arguments -s and -c to specify shell syntax, and a bit of code to
9237         autodetect syntax.  Also, allow specifying a program to run.
9238
9239         * tools/dbus-launch.1: Update with new arguments.
9240
9241         * tools/dbus-send.1: Ditto.
9242
9243         * tools/dbus-monitor.1: Ditto.
9244
9245 2003-05-17  Havoc Pennington  <hp@pobox.com>
9246
9247         * bus/config-parser.c (merge_included): merge in policies from
9248         child configuration file.
9249
9250         * bus/policy.c (bus_policy_merge): function to merge two policies
9251         together
9252
9253 2003-05-16  Havoc Pennington  <hp@redhat.com>
9254
9255         * dbus/dbus-connection.c: disable verbose lock spew
9256
9257         * tools/dbus-send.c: add --print-reply command line option
9258
9259         * tools/dbus-print-message.h (print_message): new util function
9260         shared by dbus-send and dbus-monitor
9261
9262         * tools/dbus-monitor.c (handler_func): exit on disconnect
9263
9264         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9265         disconnected, don't try to use the read_watch
9266
9267         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9268         so we can find this bug more easily
9269
9270 2003-05-16  Havoc Pennington  <hp@redhat.com>
9271
9272         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9273         NULL as DBusHashTable is annoyingly likely to do.
9274
9275 2003-05-16  Colin Walters  <walters@verbum.org>
9276
9277         * tools/dbus-monitor.c: Add --session argument and usage()
9278         function.
9279
9280         * tools/dbus-monitor.1: Update with new --session arg.
9281
9282         * bus/Makefile.am (install-data-hook): Create
9283         $(libdir)/dbus-1.0/services so that the session bus is happy.
9284
9285 2003-05-15  Havoc Pennington  <hp@redhat.com>
9286
9287         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9288         on non-x86. ifdef's are evil.
9289
9290 2003-05-15  Havoc Pennington  <hp@redhat.com>
9291
9292         * configure.in: 0.11
9293
9294         * NEWS: update
9295
9296         * bus/Makefile.am (initddir): apparently we are supposed to put
9297         init scripts in /etc/rc.d/init.d not /etc/init.d
9298
9299         * bus/Makefile.am: remove the "you must --enable-tests to make
9300         check" as it broke distcheck
9301
9302         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9303
9304 2003-05-13  James Willcox  <jwillcox@gnome.org>
9305
9306         * configure.in:
9307         * bus/activation.c: (bus_activation_service_created),
9308         (bus_activation_activate_service):
9309         * bus/driver.c: (bus_driver_send_service_deleted),
9310         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9311         (bus_driver_send_service_acquired),
9312         (bus_driver_send_welcome_message),
9313         (bus_driver_handle_list_services):
9314         * bus/session.conf.in:
9315         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9316         (dbus_bus_service_exists), (dbus_bus_activate_service):
9317         * dbus/dbus-bus.h:
9318
9319         Add some convenience API which lets you activate a service, and did a
9320         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9321         and dbus_message_get_args()
9322
9323 2003-05-11  Havoc Pennington  <hp@pobox.com>
9324
9325         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9326         calling _dbus_marshal_validate_arg() for every byte in a byte
9327         array, etc.
9328
9329         * dbus/dbus-message-handler.c: use atomic reference counting to
9330         reduce number of locks slightly; the global lock in here sucks
9331
9332         * dbus/dbus-connection.c
9333         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9334         update_dispatch_status that can be called with lock held; then use
9335         in a couple places to reduce locking/unlocking
9336         (dbus_connection_send): hold the lock over the whole function
9337         instead of acquiring it twice.
9338
9339         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9340
9341         * bus/connection.c (bus_connections_setup_connection): fix access
9342         to already-freed memory.
9343
9344         * dbus/dbus-connection.c: keep a little cache of linked list
9345         nodes, to avoid using the global linked list alloc lock in the
9346         normal send-message case. Instead we just use the connection lock
9347         that we already have to take.
9348
9349         * dbus/dbus-list.c (_dbus_list_find_last): new function
9350
9351         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9352         change to use a struct for the atomic type; fix docs,
9353         they return value before increment, not after increment.
9354
9355         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9356         (_dbus_string_append_8_aligned): new functions to try to
9357         microoptimize this operation.
9358         (reallocate_for_length): break this out of set_length(), to
9359         improve profile info, and also so we can consider inlining the
9360         set_length() part.
9361
9362         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9363         strings with some preallocation, cuts down on our calls to realloc
9364         a fair bit. Though if we can get the "move entire string to empty
9365         string" optimization below to kick in here, it would be better.
9366
9367         * dbus/dbus-string.c (_dbus_string_move): just call
9368         _dbus_string_move_len
9369         (_dbus_string_move_len): add a special case for moving
9370         an entire string into an empty string; we can just
9371         swap the string data instead of doing any reallocs.
9372         (_dbus_string_init_preallocated): new function
9373
9374 2003-05-11  Havoc Pennington  <hp@pobox.com>
9375
9376         Write a "test-profile" that does echo client-server with threads;
9377         profile reveals lock contention, memcpy/realloc of buffers, and
9378         UTF-8 validation as hot spots. 20% of lock contention eliminated
9379         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9380         contention is global mempool locks for GList and DBusList.
9381
9382         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9383         x86 implementation
9384
9385         * dbus/dbus-connection.c (struct DBusConnection): use
9386         dbus_atomic_t for the reference count
9387
9388         * dbus/dbus-message.c (struct DBusMessage): declare
9389         dbus_atomic_t values as volatile
9390
9391         * configure.in: code to detect ability to use atomic integer
9392         operations in assembly, from GLib patch
9393
9394         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9395         time, tired of it being wrong in threads and forked processes
9396
9397         * glib/test-profile.c: a little program to bounce messages back
9398         and forth between threads and eat CPU
9399
9400         * dbus/dbus-connection.c: add debug spew macros for debugging
9401         thread locks; include config.h at top; fix deadlock in
9402         dbus_connection_flush()
9403
9404 2003-05-08  Havoc Pennington  <hp@pobox.com>
9405
9406         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9407         data from getting written, and there wasn't a good reason to
9408         use _exit really.
9409
9410         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9411         dbus_verbose lines in test coverage
9412         (main): add list of functions sorted by # of untested blocks
9413         to the coverage report
9414
9415         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9416
9417         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9418
9419         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9420         extend test coverage
9421
9422         * test/data/auth/cancel.auth-script: test canceling an
9423         authentication
9424
9425         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9426         aren't used. in CVS history if we end up needing them.
9427
9428 2003-05-04  Havoc Pennington  <hp@pobox.com>
9429
9430         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9431         unit test
9432
9433         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9434         function, which assumed length was in # of strings, not bytes
9435
9436         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9437         missing coverage
9438
9439         * dbus/dbus-connection.c
9440         (_dbus_connection_queue_received_message): disable function for
9441         now, we are only using it in test mode
9442
9443         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9444         remove a mistaken FIXME
9445
9446 2003-05-04  Havoc Pennington  <hp@pobox.com>
9447
9448         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9449         unlock mutex on successful return, patch from Anders Gustafsson
9450
9451 2003-05-04  Havoc Pennington  <hp@pobox.com>
9452
9453         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9454         Anders Gustafsson
9455
9456 2003-05-04  Havoc Pennington  <hp@pobox.com>
9457
9458         * tools/dbus-launch.c: implement
9459
9460         * bus/main.c (main), bus/bus.c (bus_context_new):
9461         implement --print-pid and --fork
9462
9463 2003-05-03  Havoc Pennington  <hp@redhat.com>
9464
9465         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9466         the address had no value, and add to test suite. Fix and
9467         regression test from Miloslav Trmac
9468
9469 2003-05-03  Havoc Pennington  <hp@pobox.com>
9470
9471         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9472         watch is invalid when handled
9473
9474         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9475         dbus-launch utility to launch the bus from a shell script.  Didn't
9476         actually implement dbus-launch yet, it's just a placeholder still.
9477
9478 2003-05-03  Havoc Pennington  <hp@pobox.com>
9479
9480         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9481         daemon; also documents daemon config file, so replaces
9482         doc/config-file.txt. Corrected some stuff from config-file.txt in
9483         the process of moving it.
9484
9485 2003-05-03  Havoc Pennington  <hp@pobox.com>
9486
9487         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9488         add some man pages
9489
9490 2003-05-03  Colin Walters  <walters@verbum.org>
9491
9492         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9493         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9494
9495         * Makefile.am: Update to use new .pc versioning scheme.
9496
9497 2003-05-02  Havoc Pennington  <hp@redhat.com>
9498
9499         * bus/system.conf.in: allow send/receive to/from message bus
9500         service
9501
9502 2003-04-30  Havoc Pennington  <hp@redhat.com>
9503
9504         * configure.in: print a note when building with unit tests and
9505         without assertions
9506
9507 2003-04-30  Havoc Pennington  <hp@redhat.com>
9508
9509         * Makefile.am: add a check-local that complains if you didn't
9510         configure with --enable-tests
9511
9512 2003-04-29  Havoc Pennington  <hp@redhat.com>
9513
9514         * glib/dbus-gmain.c: docs cleanups
9515
9516         * dbus/dbus-types.h: add docs on int64 types
9517
9518         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9519         public API docs section
9520
9521 2003-04-29  Havoc Pennington  <hp@redhat.com>
9522
9523         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9524         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9525         parallel install API version, not with the D-BUS package version.
9526
9527         * HACKING: move some of README over here
9528
9529         * README: updates, and document API/ABI policy
9530
9531         * configure.in: reindentation
9532
9533 2003-04-29  Havoc Pennington  <hp@redhat.com>
9534
9535         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9536         to use this library" to be sure people have the right
9537         expectations.
9538
9539 2003-04-28  Havoc Pennington  <hp@redhat.com>
9540
9541         * configure.in: add --enable-docs which by default is auto yes if
9542         doxygen and db2html found, no otherwise; but can be forced on/off
9543
9544         * doc/Makefile.am: conditionalize whether to build docs on
9545         --enable-docs
9546
9547 2003-04-28  Havoc Pennington  <hp@redhat.com>
9548
9549         * configure.in: 0.10
9550
9551         * NEWS: update
9552
9553         * bus/system.conf.in: add <includedir>system.d</includedir>
9554
9555         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9556         username was provided but not uid
9557
9558         * bus/config-parser.c (struct BusConfigParser): keep track of
9559         whether the parser is toplevel or was included; change some
9560         of the error handling if it's included.
9561
9562 2003-04-27  Havoc Pennington  <hp@pobox.com>
9563
9564         Unbreak my code...
9565
9566         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9567         report correct status if we finish processing authentication
9568         inside this function.
9569
9570         * bus/activation.c (try_send_activation_failure): use
9571         bus_transaction_send_error_reply
9572
9573         * bus/connection.c (bus_connection_get_groups): return an error
9574         explaining the problem
9575
9576         * bus/bus.c (bus_context_check_security_policy): implement
9577         restriction here that inactive connections can only send the
9578         hello message. Also, allow bus driver to send anything to
9579         any recipient.
9580
9581         * bus/connection.c (bus_connection_complete): create the
9582         BusClientPolicy here instead of on-demand.
9583         (bus_connection_get_policy): don't return an error
9584
9585         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9586         sender field in message being replied to
9587
9588         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9589         causing it to return FALSE always
9590
9591         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9592         we checked sender rather than destination
9593
9594 2003-04-25  Havoc Pennington  <hp@redhat.com>
9595
9596         test suite is slightly hosed at the moment, will fix soon
9597
9598         * bus/connection.c (bus_connections_expire_incomplete): fix to
9599         properly disable the timeout when required
9600         (bus_connection_set_name): check whether we can remove incomplete
9601         connections timeout after we complete each connection.
9602
9603         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9604         probably still broken.
9605
9606         * bus/services.c (bus_registry_acquire_service): implement max
9607         number of services owned, and honor allow/deny rules on which
9608         services a connection can own.
9609
9610         * bus/connection.c (bus_connection_get_policy): report errors here
9611
9612         * bus/activation.c: implement limit on number of pending
9613         activations
9614
9615 2003-04-25  Havoc Pennington  <hp@redhat.com>
9616
9617         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9618         where we used >= 0 instead of != DBUS_UID_UNSET.
9619
9620 2003-04-25  Havoc Pennington  <hp@redhat.com>
9621
9622         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9623         were toggled without add/remove, fix from Anders Gustafsson
9624
9625 2003-04-24  Havoc Pennington  <hp@redhat.com>
9626
9627         * test/data/valid-config-files/basic.conf: add <limit> tags to
9628         this test
9629
9630         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9631         <limit> tag in configuration file.
9632
9633 2003-04-24  Havoc Pennington  <hp@redhat.com>
9634
9635         * bus/dispatch.c: somehow missed some name_is
9636
9637         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9638         (_dbus_timeout_set_interval): new
9639
9640         * bus/connection.c (bus_connections_setup_connection): record time
9641         when each connection is first set up, and expire them after the
9642         auth timeout passes.
9643
9644 2003-04-24  Havoc Pennington  <hp@redhat.com>
9645
9646         * dbus/dbus-message.c (dbus_message_name_is): rename
9647         (dbus_message_service_is): rename
9648         (dbus_message_sender_is): rename
9649         (dbus_message_get_service): rename
9650
9651 2003-04-24  Havoc Pennington  <hp@redhat.com>
9652
9653         * configure.in: add --enable-checks
9654
9655         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9656
9657         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9658         to use thread locks.
9659         (_dbus_connection_handler_destroyed_locked): move some private
9660         functions into proper docs group
9661
9662         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9663         _dbus_return_val_if_fail
9664
9665         Throughout: use dbus_return_if_fail
9666
9667 2003-04-23  James Willcox  <jwillcox@gnome.org>
9668
9669         * glib/dbus-glib.h:
9670         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9671         (dbus_connection_setup_with_g_main),
9672         (dbus_server_setup_with_g_main):
9673         * glib/test-dbus-glib.c: (main):
9674         * glib/test-thread-client.c: (main):
9675         * glib/test-thread-server.c: (new_connection_callback), (main):
9676         * tools/dbus-monitor.c: (main):
9677
9678         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9679         and dbus_server_setup_with_g_main().
9680
9681 2003-04-20  Havoc Pennington  <hp@pobox.com>
9682
9683         * doc/dbus-specification.sgml: document the restrictions on
9684         message and service names
9685
9686 2003-04-22  Havoc Pennington  <hp@redhat.com>
9687
9688         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9689         support, and do some code cleanups to share more code and
9690         speed up array marshal/demarshal.
9691
9692         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9693
9694         * configure.in: generate dbus-arch-deps.h
9695
9696         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9697         64-bit typecodes
9698
9699 2003-04-22  Havoc Pennington  <hp@redhat.com>
9700
9701         * test/data/valid-messages/opposite-endian.message: fix test
9702         to use proper type for rply field
9703
9704         * test/data/invalid-messages: add tests for below validation
9705
9706         * dbus/dbus-message.c (decode_header_data): validate field types,
9707         and validate that named fields are valid names
9708         (decode_name_field): consider messages in the
9709         org.freedesktop.Local. namespace to be invalid.
9710
9711         * dbus/dbus-string.c (_dbus_string_validate_name): new
9712
9713 2003-04-19  Havoc Pennington  <hp@pobox.com>
9714
9715         * bus/driver.c (bus_driver_handle_hello): check limits and
9716         return an error if they are exceeded.
9717
9718         * bus/connection.c: maintain separate lists of active and inactive
9719         connections, and a count of each. Maintain count of completed
9720         connections per user. Implement code to check connection limits.
9721
9722         * dbus/dbus-list.c (_dbus_list_unlink): export
9723
9724         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9725         number of bytes in the message queue for a connection
9726
9727 2003-04-18  Havoc Pennington  <hp@pobox.com>
9728
9729         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9730
9731         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9732         memleaks
9733
9734         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9735         on realloc be sure to update the pointer in the keyring
9736
9737         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9738         offset to avoid writing to unallocated memory
9739
9740         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9741         try the next mechanism, so we properly handle OOM
9742
9743         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9744         on OOM.
9745         (_dbus_keyring_new): fix OOM bug
9746         (_dbus_keyring_new_homedir): always set error; impose a maximum
9747         number of keys we'll load from the file, mostly to speed up the
9748         test suite and make its OOM checks more useful, but also for
9749         general sanity.
9750
9751         * dbus/dbus-auth.c (process_error_server): reject authentication
9752         if we get an error from the client
9753         (process_cancel): on cancel, send REJECTED, per the spec
9754         (process_error_client): send CANCEL if we get an error from the
9755         server.
9756
9757 2003-04-18  Havoc Pennington  <hp@pobox.com>
9758
9759         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9760         debug spew
9761
9762         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9763         handling problem
9764
9765         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9766         about DBUS_TEST_HOMEDIR once
9767
9768         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9769         the environment
9770
9771         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9772         config file so we test the right thing
9773
9774         Throughout: assorted docs improvements
9775
9776 2003-04-18  Havoc Pennington  <hp@pobox.com>
9777
9778         * glib/dbus-gmain.c: adapt to watch changes
9779
9780         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9781
9782         * dbus/dbus-server.h: remove dbus_server_handle_watch
9783
9784         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9785
9786         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9787         like DBusTimeout, so we don't need dbus_connection_handle_watch
9788         etc.
9789
9790 2003-04-17  Havoc Pennington  <hp@redhat.com>
9791
9792         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9793         database usage so it all goes via the DBusUserDatabase cache.
9794
9795 2003-04-17  Havoc Pennington  <hp@redhat.com>
9796
9797         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9798         there was an OOM watch we skipped, we always return TRUE so we
9799         iterate again to have a look at it again. Fixes test suite hang.
9800         Code rearrangement also lets us lose some memset and only iterate
9801         over callbacks once.
9802
9803         * bus/driver.c (bus_driver_handle_message): sense of test for
9804         reply was backward
9805
9806 2003-04-16  Havoc Pennington  <hp@pobox.com>
9807
9808         * doc/dbus-specification.sgml: make spec say serials are unsigned
9809
9810         * dbus/dbus-message.h: change message serials to unsigned
9811
9812         * dbus/dbus-connection.c: adapt to message serials being unsigned
9813
9814 2003-04-15  Havoc Pennington  <hp@pobox.com>
9815
9816         * bus/bus.c: create and keep around a shared DBusUserDatabase
9817         object.
9818
9819         * bus/connection.c (bus_connection_get_groups): don't cache
9820         groups for user in the connection object, since user database
9821         object now does that.
9822
9823 2003-04-16  Havoc Pennington  <hp@redhat.com>
9824
9825         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9826         list of size counters
9827         (_dbus_message_loader_putback_message_link): put back a popped link
9828
9829         * dbus/dbus-connection.c
9830         (dbus_connection_set_max_live_messages_size): rename
9831         max_received_size
9832         (dbus_connection_get_outgoing_size): get size of outgoing
9833         queue
9834         (_dbus_connection_set_connection_counter): remove this cruft
9835
9836 2003-04-14  Havoc Pennington  <hp@redhat.com>
9837
9838         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9839         caching, but at some point we might want to be able to use a
9840         different database.
9841
9842         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9843         SHA1 conf file to test the sha1 auth mechanism, since the regular
9844         test always uses EXTERNAL when available.
9845
9846         * configure.in,
9847         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9848         add conf file that requires use of sha1 auth
9849
9850 2003-04-13  Havoc Pennington  <hp@pobox.com>
9851
9852         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9853         from Philip Blundell to send messages and monitor them.
9854
9855 2003-04-13  Havoc Pennington  <hp@pobox.com>
9856
9857         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9858         callbacks
9859
9860         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9861         users
9862
9863         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9864         fix to only recover unused bytes if we're already authenticated
9865         (_dbus_transport_get_is_authenticated): fix to still mark us
9866         authenticated if there are unused bytes.
9867
9868         * bus/dispatch.c: implement security policy checking
9869
9870         * bus/connection.c (bus_transaction_send_from_driver): new
9871
9872         * bus/bus.c (bus_context_check_security_policy): new
9873
9874         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9875         now we just set the DBusError and it gets converted to an error
9876         reply.
9877
9878         * bus/connection.c (allow_user_function): enable code using actual
9879         data from the config file
9880
9881         * bus/policy.c (list_allows_user): handle wildcard rules for
9882         user/group connection perms
9883
9884 2003-04-13  Havoc Pennington  <hp@pobox.com>
9885
9886         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9887
9888         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9889
9890         * bus/policy.c (bus_policy_append_mandatory_rule)
9891         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9892         (bus_policy_append_group_rule): new functions
9893
9894 2003-04-12  Havoc Pennington  <hp@pobox.com>
9895
9896         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9897
9898         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9899         the pid/gid/uid, just for paranoia.
9900
9901         * test/break-loader.c (randomly_do_n_things): find a byte
9902         containing a type code, and randomly change it to a different
9903         type code.
9904
9905 2003-04-12  Havoc Pennington  <hp@pobox.com>
9906
9907         * bus/policy.h: change BusPolicy to be the thing from the config
9908         file, and rename old BusPolicy to BusClientPolicy
9909
9910         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9911         match change in how policy works
9912
9913         * dbus/dbus-internals.h: mark assert_not_reached as
9914         __attribute((noreturn))__
9915
9916 2003-04-11  Havoc Pennington  <hp@redhat.com>
9917
9918         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9919         the broadcast service. Use boolean return for ServiceExists.
9920
9921 2003-04-11  Havoc Pennington  <hp@redhat.com>
9922
9923         * configure.in: add another directory to look for qt in.
9924
9925 2003-04-11  Havoc Pennington  <hp@redhat.com>
9926
9927         * AUTHORS: add Colin Walters
9928
9929 2003-04-11  Havoc Pennington  <hp@redhat.com>
9930
9931         * NEWS: update
9932
9933         * configure.in: 0.9
9934
9935 2003-04-11  Havoc Pennington  <hp@redhat.com>
9936
9937         * bus/messagebus.in: remove pid file when stopping the
9938         message bus, since the bus won't have privileges to remove it
9939         itself.
9940
9941 2003-04-11  Havoc Pennington  <hp@redhat.com>
9942
9943         * bus/bus.c (bus_context_new): move credentials change after
9944         creating pidfile
9945
9946 2003-04-11  Havoc Pennington  <hp@pobox.com>
9947
9948         * test/decode-gcov.c: add "below average functions" to the
9949         coverage report, and change how some of the code works.
9950
9951         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9952         not in the coverage stats.
9953
9954         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9955         couple places so running the test suite doesn't result in megaspam.
9956
9957 2003-04-11  Havoc Pennington  <hp@pobox.com>
9958
9959         * bus/dispatch.c (check_existent_service_activation): accept a no
9960         memory error in a place we didn't before
9961
9962         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9963         in case the first one failed," since the test suite is less
9964         broken now.
9965
9966 2003-04-10  Havoc Pennington  <hp@pobox.com>
9967
9968         * bus/dispatch.c (check_segfault_service_activation): add test
9969         for launching an executable that just crashes.
9970
9971         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9972         don't leave a million cores. We'll see how portable this is.
9973
9974 2003-04-10  Havoc Pennington  <hp@pobox.com>
9975
9976         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9977         the possible parent failures before we fork, so that we don't
9978         fail to create a babysitter after creating the child.
9979
9980         * bus/activation.c (bus_activation_activate_service): kill child
9981         if we don't successfully complete the activation.
9982
9983 2003-04-10  Havoc Pennington  <hp@redhat.com>
9984
9985         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9986         the connection if it's disconnected
9987
9988         * bus/activation.c (bus_activation_service_created): use new
9989         transaction features to roll back removal of pending activation if
9990         we don't successfully create the service after all. Don't remove
9991         pending activation if the function fails.
9992
9993         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9994         (_dbus_list_insert_after_link): new code to facilitate
9995         services.c fixes
9996
9997         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9998         new functionality, so we can preallocate the ability to insert
9999         into a hash table.
10000
10001         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10002         allowing us to put custom hooks in a transaction to be used for
10003         cancelling said transaction
10004
10005         * doc/dbus-specification.sgml: add some discussion of secondary
10006         service owners, and disallow zero-length service names
10007
10008         * bus/services.c (bus_registry_acquire_service): new function,
10009         splits out part of bus_driver_handle_acquire_service() and fixes
10010         a bug where we didn't remove the service doing the acquiring
10011         from the secondary queue if we failed to remove the current owner
10012         from the front of the queue.
10013
10014 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10015
10016         * doc/dbus-specification.sgml:
10017         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10018
10019 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10020
10021         * bus/.cvsignore:
10022         * glib/.cvsignore:
10023         * test/.cvsignore:
10024         Added files to cvsignore
10025
10026         * dbus/dbus-message.h:
10027         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10028         Make get_named() take two out argument and return a boolean.
10029         (dbus_message_iter_get_args_valist):
10030         Update usage of get_named().
10031         (dbus_message_iter_append_byte):
10032         Fix typo
10033         (dbus_message_iter_append_named)
10034         Fix typo
10035         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10036         More tests.
10037
10038 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10039
10040         * dbus/dbus-marshal.[ch]:
10041         Add array_type_pos argument to _dbus_marshal_validate_arg.
10042         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10043
10044         * dbus/dbus-message.[ch]:
10045         Multi-dimensional arrays have full type specification in the
10046         outermost array. Iter code re-arranged to handle this.
10047         Added some more iter tests.
10048
10049         * doc/dbus-specification.sgml:
10050         Add me to authors.
10051         Remove old FIXME.
10052         Update new array encoding description.
10053         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10054
10055         * test/data/invalid-messages/array-with-mixed-types.message:
10056         * test/data/valid-messages/array-of-array-of-uint32.message:
10057         Change to the new array format.
10058
10059         * test/data/invalid-messages/too-short-dict.message:
10060         Fix bug in test.
10061
10062         * test/data/valid-messages/recursive-types.message:
10063         Fix up and extend test.
10064
10065 2003-04-10  Havoc Pennington  <hp@pobox.com>
10066
10067         * bus/dispatch.c: lots of fixes
10068
10069         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10070         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10071         that was crack, broke the test service.
10072
10073         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10074         handling to avoid piling up errors if we get a failure on the
10075         first address.
10076
10077         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10078         pid in assertion failures.
10079
10080         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10081         to some fixed size of file descriptor array. Don't return TRUE
10082         anytime a timeout exists, that led to lots of busy loop silliness
10083         in the tests.
10084
10085 2003-04-09  Havoc Pennington  <hp@redhat.com>
10086
10087         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10088         I'd checked this in earlier but hadn't.
10089
10090 2003-04-09  Havoc Pennington  <hp@redhat.com>
10091
10092         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10093         the activation test (man this is getting old!)
10094
10095 2003-04-09  Havoc Pennington  <hp@redhat.com>
10096
10097         * test/test-utils.c: use dispatch status function to fix this up
10098
10099         * bus/connection.c (connection_watch_callback): don't dispatch
10100         from here
10101         (connection_timeout_callback): don't dispatch from here
10102         (bus_connections_setup_connection): set the dispatch status function
10103         (bus_connection_disconnected): unset it
10104
10105         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10106         used to add a connection to be dispatched
10107         (_dbus_loop_iterate): do the dispatching at the end of each
10108         iteration
10109
10110         * dbus/dbus-connection.c
10111         (dbus_connection_set_dispatch_status_function): new function
10112         allowing us to fix up main loop usage
10113         (_dbus_connection_last_unref): free all the various function
10114         user data
10115         (dbus_connection_dispatch): call the DispatchStatusFunction
10116         whenever this function returns
10117         (dbus_connection_handle_watch): call DispatchStatusFunction
10118         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10119         (reply_handler_timeout): call DispatchStatusFunction
10120         (dbus_connection_flush): call DispatchStatusFunction
10121
10122 2003-04-09  Havoc Pennington  <hp@redhat.com>
10123
10124         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10125         a memory leak
10126
10127         * bus/dispatch.c (check_service_activated): fix bug in test
10128
10129         * dbus/dbus-mainloop.c (check_timeout): fix this up
10130
10131         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10132         verbose output so we can sort out output from different processes,
10133         e.g. in the activation case.
10134
10135 2003-04-08  Colin Walters  <walters@gnu.org>
10136
10137         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10138         the pid file.
10139         (bus_context_new): Set it.
10140         (bus_context_unref): Use it to delete the pid file.
10141
10142 2003-04-08  Havoc Pennington  <hp@redhat.com>
10143
10144         * test/data/invalid-messages/array-with-mixed-types.message:
10145         regression test that fails for the moment
10146
10147         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10148         tests for convenience
10149
10150         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10151         array of nil, it broke things.
10152
10153         * test/data/invalid-messages/array-of-nil.message: regression test
10154
10155         * test/data/valid-messages/array-of-array-of-uint32.message:
10156         happened to write this so added it to suite
10157
10158 2003-04-08  Havoc Pennington  <hp@redhat.com>
10159
10160         * bus/driver.c (bus_driver_handle_acquire_service): init
10161         retval/reply before checking name
10162
10163         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10164         recursion depth argument
10165
10166         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10167         in the public struct for future extension
10168
10169         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10170         typo
10171
10172         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10173         message
10174
10175         * doc/dbus-specification.sgml: fix typo
10176
10177 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10178
10179         Implemented recursive types, named types and new-style iters
10180
10181         * bus/driver.c:
10182         * glib/test-thread-client.c: (thread_func):
10183         * glib/test-thread-server.c: (handle_test_message):
10184         * test/test-service.c: (handle_echo):
10185         Update to new api
10186
10187         * dbus/Makefile.am:
10188         * dbus/dbus-dict.c:
10189         * dbus/dbus-dict.h:
10190         * dbus/dbus.h
10191         Remove DBusDict
10192
10193         * dbus/dbus-internals.c: (_dbus_type_to_string):
10194         Update for new types.
10195
10196         * dbus/dbus-marshal.[ch]:
10197         Implement recursive types and the new marshalling format.
10198         Remove hardcoded dict marshalling.
10199         Marshal named types.
10200
10201         * dbus/dbus-message-builder.c:
10202         Add BYTE_ARRAY.
10203         Remove references to old types
10204
10205         * dbus/dbus-message.[ch]:
10206         New non-refcounted iter API that supports recursive iters.
10207         Use iters for appending, including support for recursive
10208         iters.
10209         Add byte and named type support.
10210         Update everything to new marshalling formats.
10211         Add tests for new API.
10212
10213         * dbus/dbus-protocol.h:
10214         Remove old array types.
10215         Add types: BYTE, ARRAY, DICT, NAMED
10216
10217         * dbus/dbus-string.c:
10218         * dbus/dbus-sysdeps.c:
10219         Make parse_double locale safe.
10220
10221         * dbus/dbus-test-main.c:
10222         Call setlocale.
10223
10224         * dbus/dbus-test.c:
10225         Kill dict test
10226
10227         * doc/dbus-specification.sgml:
10228         Update spec
10229
10230         * test/data/incomplete-messages/missing-body.message:
10231         * test/data/invalid-messages/bad-boolean.message:
10232         * test/data/invalid-messages/bad-boolean-array.message:
10233         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10234         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10235         * test/data/invalid-messages/too-short-dict.message:
10236         * test/data/valid-messages/dict-simple.message:
10237         * test/data/valid-messages/dict.message:
10238         * test/data/valid-messages/emptiness.message:
10239         * test/data/valid-messages/lots-of-arguments.message:
10240         * test/data/valid-messages/no-padding.message:
10241         * test/data/valid-messages/recursive-types.message:
10242         Add missing NAME fields
10243         Fix up dicts & arrays
10244
10245         * test/data/invalid-messages/dict-with-nil-value.message:
10246         Removed, this is not invalid anymore.
10247
10248         * test/data/valid-messages/recursive-types.message:
10249         Add new test for deeply recursive types.
10250
10251 2003-04-07  Havoc Pennington  <hp@pobox.com>
10252
10253         * bus/driver.c (bus_driver_handle_acquire_service): return an
10254         error if you try to acquire a service that starts with ':'
10255
10256 2003-04-07  Havoc Pennington  <hp@redhat.com>
10257
10258         * doc/dbus-specification.sgml: require that base service names
10259         start with ':' and that the base service is created/deleted
10260         as first and last things a connection does on the bus
10261
10262         * bus/dispatch.c (check_existent_service_activation): lots more
10263         work on the activation test; it doesn't fully pass yet...
10264
10265         * test/test-service.c (main): fix so we don't memleak the
10266         connection to the message bus
10267         (filter_func): accept a message asking us to exit
10268
10269 2003-04-06  Havoc Pennington  <hp@pobox.com>
10270
10271         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10272         from Colin Walters
10273
10274         * configure.in: fixes to Qt detection from Colin Walters
10275
10276         * doc/Makefile.am: Only remove generated docbook dirs if they
10277         exist, from Colin Walters
10278
10279         * dbus/dbus-bus.c: change how we set well-known connections to
10280         NULL, so that it works if a single connection is stored in
10281         two well-known array slots.
10282
10283         * test/Makefile.am: remove a lot of stuff that isn't immediately
10284         useful, it's in CVS history if we want it.
10285
10286         * test/test-service.c: use dbus-mainloop instead of that
10287         watch.[hc] crack
10288
10289 2003-04-06  Havoc Pennington  <hp@pobox.com>
10290
10291         * dbus/Makefile.am: split lists of sources into stuff that goes in
10292         the library, util functions that go in the lib and are also used
10293         elsewhere, and util functions that are used in tests/daemon but
10294         don't go in the lib.
10295
10296         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10297         here so it can be used in test binaries also
10298
10299 2003-04-06  Havoc Pennington  <hp@pobox.com>
10300
10301         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10302         here in the parent process, so we can return an error if it
10303         fails. Also, move some of the code into the child so the parent
10304         is less hosed if we fail midway through.
10305
10306         * bus/bus.c (bus_context_new): move pidfile detection further up
10307         in the function, before we start overwriting sockets and such.
10308
10309         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10310
10311         * configure.in: add --with-system-pid-file and --with-system-socket
10312
10313 2003-04-06  Colin Walters  <walters@verbum.org>
10314
10315         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10316
10317         * bus/system.conf.in: Declare a pidfile.
10318
10319         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10320         create one (if appropriate).
10321
10322         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10323         (struct BusConfigParser) [pidfile]: New.
10324         (element_type_to_name, merge_included, start_busconfig_child)
10325         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10326         (bus_config_parser_unref): Free it.
10327         (bus_config_parser_get_pidfile): New function.
10328
10329         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10330
10331         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10332
10333         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10334
10335         * dbus/dbus-sysdeps.h: Prototype it.
10336
10337 2003-04-06  Havoc Pennington  <hp@pobox.com>
10338
10339         * bus/bus.c (bus_context_new): print the address in here, rather
10340         than in main(), because we need to do it before forking the daemon
10341
10342         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10343         on the service nonexistent error
10344
10345         * bus/driver.c (bus_driver_handle_acquire_service): set the
10346         sender on the AcquireService reply
10347
10348         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10349         server also listen on a UNIX socket so services can connect to it.
10350
10351 2003-04-06  Havoc Pennington  <hp@pobox.com>
10352
10353         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10354         so it detects deadlocks and also we actually init threads when
10355         debugging.
10356
10357 2003-04-06  Havoc Pennington  <hp@pobox.com>
10358
10359         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10360         save the domain socket name, and unlink it when we disconnect the
10361         server. Means that at least when we exit normally, we won't leave
10362         a bunch of junk in /tmp
10363
10364         * dbus/dbus-transport-unix.c
10365         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10366         memory management). (I was making a real change here but then
10367         didn't)
10368
10369 2003-04-06  Havoc Pennington  <hp@pobox.com>
10370
10371         * bus/bus.c (bus_context_new): fix wrong handling of
10372         server_data_slot_unref() in the error case.
10373
10374         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10375         "(condition) != 0" to _dbus_real_assert so that
10376         "_dbus_assert (pointer)" doesn't cause a warning
10377
10378         * bus/main.c (main): accept --print-address option to print out
10379         the message bus address
10380
10381         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10382
10383         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10384         "tmpdir" option to unix: address on client side
10385
10386         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10387         to unix: address
10388
10389         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10390         we can use to create sockets in the test suite.
10391
10392         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10393         cleanly. To be used for testing.
10394
10395         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10396
10397         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10398
10399         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10400         handle trying to call this when there's no servers active
10401
10402 2003-04-05  Havoc Pennington  <hp@pobox.com>
10403
10404         * NEWS: update
10405
10406         * configure.in: 0.8
10407
10408 2003-04-05  Havoc Pennington  <hp@pobox.com>
10409
10410         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10411         crash on startup. Need to get "try starting the daemon"
10412         in the test suite I guess. ;-)
10413
10414         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10415         tracked the number of open connections; it's better done in
10416         application-specific code as you want it to span all servers etc.
10417
10418 2003-04-05  Havoc Pennington  <hp@pobox.com>
10419
10420         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10421         patch from Colin Walters
10422
10423 2003-04-05  Havoc Pennington  <hp@pobox.com>
10424
10425         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10426         reality; in fact multiple mechanisms are allowed.
10427
10428         * dbus/dbus-internals.c (_dbus_real_assert)
10429         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10430         _dbus_assert_not_reached() into functions, so that they don't show
10431         up in basic block counts for test coverage, and don't use up as
10432         much disk space. Does mean slower execution speed though, so
10433         assumes --disable-asserts is the normal production case.
10434
10435 2003-04-05  Havoc Pennington  <hp@pobox.com>
10436
10437         * test/Makefile.am (dist-hook): also dist *.in files
10438
10439         * NEWS: update
10440
10441         * configure.in: 0.7
10442
10443 2003-04-05  Havoc Pennington  <hp@pobox.com>
10444
10445         * dbus/dbus-string.c: docs warning
10446
10447         * dbus/dbus-spawn.c: missing docs
10448
10449         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10450
10451 2003-04-05  Havoc Pennington  <hp@pobox.com>
10452
10453         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10454         magic from GLib
10455
10456         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10457         to -1 once we've reaped the babysitter
10458         (_dbus_babysitter_handle_watch): do as much work as we can, not
10459         just one go of it
10460
10461         * bus/activation.c: add code using DBusBabysitter so that we
10462         handle it when a service fails to start up properly.
10463         (bus_activation_service_created): don't remove the activation
10464         entries as we go, just let them get removed when we free the pending
10465         activation. Unref reply messages after sending them.
10466
10467 2003-04-05  Havoc Pennington  <hp@pobox.com>
10468
10469         * test/decode-gcov.c (main): print per-directory stats in the report
10470
10471         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10472
10473 2003-04-05  Havoc Pennington  <hp@pobox.com>
10474
10475         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10476
10477         * test/decode-gcov.c: hack up a little program to suck data
10478         out of gcov files. Yes this is sort of silly.
10479
10480         * configure.in: define something in config.h and do an
10481         AM_CONDITIONAL when gcov is enabled
10482
10483 2003-04-04  Havoc Pennington  <hp@redhat.com>
10484
10485         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10486         return a "babysitter" object that is used to monitor the status of
10487         the spawned process and reap it when required.
10488
10489         * test/test-segfault.c, test/test-exit.c,
10490         test/test-sleep-forever.c: binaries that do various lame things,
10491         used in the test suite.
10492
10493         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10494
10495 2003-04-03  Havoc Pennington  <hp@pobox.com>
10496
10497         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10498         in preparation for modifying it, dbus-sysdeps is getting
10499         a bit unmanageable.
10500
10501 2003-04-03  Havoc Pennington  <hp@redhat.com>
10502
10503         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10504         have multiple ones
10505
10506         * bus/*.[hc]: adapt to mainloop change
10507
10508 2003-04-03  Havoc Pennington  <hp@redhat.com>
10509
10510         * bus/activation.c (load_directory): fix up memleaks
10511         (bus_activation_entry_free): free the entry
10512
10513         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10514         we get one from the message bus; fix memleaks.
10515
10516         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10517
10518 2003-04-03  Havoc Pennington  <hp@pobox.com>
10519
10520         * bus/config-parser.c (bus_config_parser_unref): free
10521         list of mechanisms, bug discovered by test suite enhancements
10522         (putting system.conf and session.conf into suite)
10523
10524         * test/Makefile.am, test/test-service.c: add placeholder for a
10525         test service that we'll activate as part of test suite. Doesn't
10526         do anything yet.
10527
10528         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10529         setting NULL value, and use system malloc not dbus_malloc()
10530         when we have unavoidable memleakage.
10531
10532         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10533         didn't work, and support DBUS_BUS_ACTIVATION.
10534
10535         * bus/activation.c (child_setup): pass our well-known bus type to
10536         the child
10537
10538         * bus/config-parser.c: support <type> to specify well-known type
10539
10540         * doc/dbus-specification.sgml: document the env variables to
10541         locate well-known buses and find service activator
10542
10543 2003-04-02  Havoc Pennington  <hp@redhat.com>
10544
10545         * test/Makefile.am (all-local): add a rule to copy tests to
10546         builddir, so we can have generated tests. Use this to remove the
10547         silly hack for testing system.conf and session.conf. Will use this
10548         shortly to generate .service files pointing to test binaries.
10549
10550 2003-04-02  Havoc Pennington  <hp@redhat.com>
10551
10552         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10553         current alloc and needed new length, not max of the doubled
10554         allocation and needed new length. Also, when building tests,
10555         don't do the double-allocation stuff, just realloc every time.
10556
10557 2003-04-02  Havoc Pennington  <hp@redhat.com>
10558
10559         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10560         in error messages
10561         (_dbus_string_get_dirname): new
10562         (_dbus_sysdeps_test): new
10563         (_dbus_directory_open): include dirnames in error messages
10564
10565         * bus/config-parser.c: interpret <include> and <includedir> and
10566         <servicedir> relative to config file location if the given
10567         filename is not absolute.
10568
10569         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10570
10571 2003-04-02  Havoc Pennington  <hp@redhat.com>
10572
10573         * bus/connection.c (bus_transaction_send_error_reply): set sender
10574         service for the error, and unref the reply on success
10575
10576         * bus/activation.c: convert to use BusTransaction so OOM can be
10577         handled correctly
10578         (bus_activation_service_created): set sender of the message
10579
10580 2003-04-01  Havoc Pennington  <hp@redhat.com>
10581
10582         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10583         <includedir> (at least mostly)
10584
10585         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10586         first, then the user ID
10587
10588 2003-04-01  Havoc Pennington  <hp@pobox.com>
10589
10590         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10591         function
10592
10593         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10594
10595         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10596
10597         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10598         socket 0777, and unlink any existing socket.
10599
10600         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10601         the configuration file so specifies; set up auth mechanism
10602         restrictions
10603
10604         * bus/config-parser.c (bus_config_parser_content): add support
10605         for <fork> option and fill in code for <auth>
10606
10607         * bus/system.conf.in: add <fork/> to default configuration,
10608         and limit auth mechanisms to EXTERNAL
10609
10610         * doc/config-file.txt (Elements): add <fork>
10611
10612         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10613         (_dbus_change_identity): new function
10614
10615 2003-03-31  Havoc Pennington  <hp@redhat.com>
10616
10617         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10618         (_dbus_listen_unix_socket): fix off-by-one error in null
10619         termination spotted by Nalin
10620
10621 2003-03-31  Havoc Pennington  <hp@redhat.com>
10622
10623         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10624         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10625         having a real home directory available.
10626
10627 2003-03-31  Havoc Pennington  <hp@redhat.com>
10628
10629         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10630
10631         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10632
10633         * configure.in: add support for specifying a style of init script
10634         to install
10635
10636 2003-03-31  Havoc Pennington  <hp@redhat.com>
10637
10638         Fix some annoying DBusString API and fix all affected code.
10639
10640         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10641         max_length argument
10642         (_dbus_string_get_data): change to return string instead of using
10643         an out param
10644         (_dbus_string_get_const_data): ditto
10645         (_dbus_string_get_data_len): ditto
10646         (_dbus_string_get_const_data_len): ditto
10647
10648 2003-03-31  Havoc Pennington  <hp@redhat.com>
10649
10650         * bus/main.c (main): fix up the command line arguments to be nicer
10651
10652 2003-03-31  Havoc Pennington  <hp@redhat.com>
10653
10654         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10655         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10656         final location that lands in the config file
10657
10658         * bus/config-loader-expat.c (bus_config_load): fix type of
10659         XML_Parser variable
10660
10661         * doc/TODO: remove TODO item for dbus_bus_get()
10662
10663         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10664
10665 2003-03-31  Havoc Pennington  <hp@pobox.com>
10666
10667         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10668         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10669         argument since they are always client side
10670
10671         * dbus/dbus-server.c (dbus_server_get_address): new function
10672
10673         * bus/main.c (main): take the configuration file as an argument.
10674
10675         * test/data/valid-config-files/debug-allow-all.conf: new file to
10676         use with dispatch.c tests for example
10677
10678         * bus/test-main.c (main): require test data dir
10679
10680         * bus/bus.c (bus_context_new): change this to take a
10681         configuration file name as argument
10682
10683         * doc/config-file.txt (Elements): add <servicedir>
10684
10685         * bus/system.conf, bus/session.conf: new files
10686
10687         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10688         well-known socket if none set
10689
10690         * configure.in: create system.conf and session.conf
10691
10692 2003-03-30  Havoc Pennington  <hp@pobox.com>
10693
10694         * bus/config-parser.c: hacking
10695
10696         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10697         to shut down, since it could cause weirdness with the DBusList
10698         lock
10699
10700         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10701         link-oriented stack routines
10702         (alloc_link): free the mempool if the first alloc from it fails
10703
10704         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10705
10706         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10707         from GLib
10708         (_dbus_string_skip_white): new
10709
10710         * doc/config-file.txt (Elements): add <includedir>
10711
10712 2003-03-28  Havoc Pennington  <hp@pobox.com>
10713
10714         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10715         (_dbus_string_copy_data): new functions
10716
10717 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10718
10719         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10720         * dbus/dbus-bus.h:
10721         Add dbus_bus_get.
10722
10723         * dbus/dbus-memory.c:
10724         Fix a doc comment.
10725
10726 2003-03-28  Havoc Pennington  <hp@pobox.com>
10727
10728         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10729         I think it may have just been superstition. Not sure.
10730
10731         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10732         failures that were not being handled.
10733
10734         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10735
10736         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10737         row that will fail on out-of-memory.
10738
10739         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10740         function for testing out-of-memory handling.
10741
10742         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10743         allocation functions, they do map exactly to the expat ones.
10744
10745 2003-03-27  Havoc Pennington  <hp@redhat.com>
10746
10747         * bus/config-loader-libxml.c (bus_config_load): add another error
10748         check
10749
10750 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10751
10752         * doc/TODO:
10753         Add note about automatic service activation.
10754
10755         * doc/dbus-specification.sgml:
10756         Rename the specification and clarify a few things.
10757
10758 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10759
10760         * Doxyfile.in:
10761         * dbus/dbus-address.c:
10762         * dbus/dbus-dict.c:
10763         * dbus/dbus-marshal.c:
10764         * dbus/dbus-server-debug-pipe.c:
10765         * dbus/dbus-transport-unix.c:
10766         Fix documentation warnings.
10767
10768 2003-03-26  Havoc Pennington  <hp@pobox.com>
10769
10770         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10771         after every test so it's quick and easy to see which leaked, and
10772         so we test multiple dbus_shutdown() calls
10773
10774         * configure.in: change configure.in XML stuff to also support
10775         expat
10776
10777         * config-loader-libxml.c: some hacking
10778
10779         * config-loader-expat.c: some hacking
10780
10781         * config-parser.c: some hacking, plus tests
10782
10783 2003-03-25  Havoc Pennington  <hp@redhat.com>
10784
10785         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10786
10787         * configure.in: add --with-xml option to specify XML library,
10788         right now only libxml is supported.
10789
10790         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10791         nonworking code between home and work, still just stubs
10792
10793 2003-03-24  Havoc Pennington  <hp@redhat.com>
10794
10795         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10796         file
10797
10798         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10799         NULL argument for "message" if the error is a well-known one,
10800         fill in a generic message in this case.
10801
10802         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10803         favor of DBusError
10804
10805         * bus/test.c (bus_test_flush_bus): add
10806
10807         * bus/policy.c (bus_policy_test): test code stub
10808
10809 2003-03-24  Havoc Pennington  <hp@pobox.com>
10810
10811         * bus/connection.c (bus_connections_setup_connection): set up
10812         the "can this user connect" function, but it always returns
10813         TRUE until we have a config file parser so we can have a config
10814         file that allows connections.
10815
10816 2003-03-23  Havoc Pennington  <hp@pobox.com>
10817
10818         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10819         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10820         the mutex, so we can check for proper memory management
10821         and OOM handling.
10822
10823         * dbus/dbus-dataslot.c: remove the mutex from
10824         DBusDataSlotAllocator and lock it manually when using it,
10825         to simplify fitting it into the global slots framework.
10826
10827         * dbus/dbus-threads.c (init_static_locks): rework how we're
10828         handling global locks so they are easily shut down.
10829
10830         * bus/policy.c (bus_policy_append_rule): fix
10831
10832         * bus/test-main.c (main): check for memleaks
10833
10834         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10835         test suite check for memleaks
10836
10837         * dbus/dbus-memory.c: add support in test mode for tracking
10838         number of outstanding blocks
10839
10840 2003-03-23  Havoc Pennington  <hp@pobox.com>
10841
10842         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10843         policies code
10844
10845         * dbus/dbus-hash.h: add ULONG hash keys
10846
10847         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10848         (_dbus_get_group_id): new function
10849
10850 2003-03-20  Havoc Pennington  <hp@redhat.com>
10851
10852         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10853         new function
10854         (dbus_connection_get_unix_user): new function
10855
10856 2003-03-20  Havoc Pennington  <hp@pobox.com>
10857
10858         * bus/connection.c (bus_connection_send_oom_error): assert that
10859         message has a sender
10860         (connection_execute_transaction): ditto
10861         (bus_connection_preallocate_oom_error): fix to set the sender, and
10862         set recipient to the destination service, not the bus driver
10863
10864         * bus/policy.c: hacking
10865
10866         * dbus/dbus-message.c (dbus_message_service_is): new function
10867         (dbus_message_sender_is): new
10868
10869 2003-03-19  Havoc Pennington  <hp@redhat.com>
10870
10871         * bus/policy.c: start sketching code for policy restrictions on
10872         what connections can do.
10873
10874 2003-03-18  Havoc Pennington  <hp@redhat.com>
10875
10876         * doc/TODO: some notes on high-level todo items. Little nitpick
10877         stuff is all in @todo, so no need to add it here.
10878
10879         * doc/config-file.txt: some notes on how config file might look
10880
10881 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10882
10883         * configure.in: 0.6
10884
10885         * NEWS: Update.
10886
10887 2003-03-17  Havoc Pennington  <hp@redhat.com>
10888
10889         * dbus/dbus-internals.h: add gcc attributes so that
10890         our printf-style functions warn on bad arguments to
10891         format
10892
10893         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10894         format bug
10895
10896         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10897         printf format bug
10898
10899 2003-03-17  Havoc Pennington  <hp@redhat.com>
10900
10901         * bus/test-main.c (main): make it print something as it runs
10902         so make check doesn't look stuck
10903
10904         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10905         from CVS, now obsolete
10906
10907 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10908
10909         * bus/dispatch.c: (bus_dispatch):
10910         Refetch the service name since it may have been reallocated
10911         when dbus_message_set_sender was called.
10912
10913         * dbus/dbus-sysdeps.c: (_dbus_accept):
10914         Add address and address length variables and use them to stop
10915         valgrind from complaining.
10916
10917 2003-03-17  Havoc Pennington  <hp@pobox.com>
10918
10919         All tests pass, no memleaks, no valgrind complaints.
10920
10921         * bus/test.c: refcount handler_slot
10922
10923         * bus/connection.c (bus_connections_new): refcount
10924         connection_data_slot
10925
10926         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10927         bytes so that auth scripts pass.
10928
10929         * bus/dispatch.c: init message_handler_slot so it gets allocated
10930         properly
10931
10932         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10933
10934         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10935         dealloc server_pipe_hash when no longer used for benefit of
10936         leak checking
10937
10938         * dbus/dbus-auth.c (process_command): memleak fix
10939
10940         * bus/dispatch.c (check_hello_message): memleak fix
10941
10942 2003-03-16  Havoc Pennington  <hp@pobox.com>
10943
10944         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10945
10946 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10947
10948         * bus/activation.c (bus_activation_activate_service): Append
10949         the pending activation entry to the list of pending activations.
10950
10951 2003-03-16  Havoc Pennington  <hp@pobox.com>
10952
10953         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10954         connections
10955
10956         * dbus/dbus-address.c (create_entry): fix OOM handling when
10957         failing to alloc entry->method
10958
10959 2003-03-16  Havoc Pennington  <hp@pobox.com>
10960
10961         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10962         the watch
10963
10964         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10965         add some missing dbus_set_result
10966
10967         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10968         alloc the DBusMessageHandler
10969
10970         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10971         the transport here, since we call this from the finalizer; it
10972         resulted in a double-finalize.
10973
10974         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10975         where we tried to use transport->connection that was NULL,
10976         happened when transport was disconnected early on due to OOM
10977
10978         * bus/*.c: adapt to handle OOM for watches/timeouts
10979
10980         * dbus/dbus-transport-unix.c: port to handle OOM during
10981         watch handling
10982
10983         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10984         reference to unused bytes instead of a copy
10985
10986         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10987         out of memory
10988
10989         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10990         FALSE on OOM
10991
10992         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10993         of memory
10994
10995 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10996
10997         * doc/dbus-specification.sgml:
10998         Document reply message for ActivateService.
10999
11000 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11001
11002         * bus/activation.c: (bus_pending_activation_entry_free),
11003         (bus_pending_activation_free), (bus_activation_new),
11004         (bus_activation_unref), (bus_activation_service_created),
11005         (bus_activation_activate_service):
11006         * bus/activation.h:
11007         * bus/bus.c: (bus_context_new):
11008         * bus/desktop-file.c: (new_section):
11009         * bus/driver.c: (bus_driver_send_service_deleted),
11010         (bus_driver_handle_activate_service):
11011         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11012         * bus/services.h:
11013         * dbus/dbus-connection.c:
11014         (dbus_connection_send_with_reply_and_block):
11015         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11016         * dbus/dbus-protocol.h:
11017         Make activation work better. Now pending activations will be queued
11018         and the daemon won't try to activate services that are already registered.
11019
11020 2003-03-16  Havoc Pennington  <hp@pobox.com>
11021
11022         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11023         connection data
11024
11025         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11026         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11027
11028 2003-03-16  Havoc Pennington  <hp@pobox.com>
11029
11030         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11031         this. always run the test suite before commit...
11032
11033         * bus/*: adapt to DBusConnection API changes
11034
11035         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11036         requires renaming stuff to avoid dbus_connection_dispatch name
11037         conflict.
11038
11039         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11040         function
11041
11042         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11043         separate from _dbus_message_loader_return_buffer()
11044
11045         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11046         this, because it's now always broken to use; the number of
11047         messages in queue vs. the number still buffered by the message
11048         loader is undefined/meaningless. Should use
11049         dbus_connection_get_dispatch_state().
11050         (dbus_connection_dispatch): rename from
11051         dbus_connection_dispatch_message
11052
11053 2003-03-16  Havoc Pennington  <hp@pobox.com>
11054
11055         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11056         implementation
11057
11058 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11059
11060         * dbus/dbus-connection.c:
11061         (dbus_connection_send_with_reply_and_block):
11062         Decrease connection->n_incoming when removing an entry
11063         from the list.
11064         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11065         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11066         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11067         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11068         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11069         (dbus_dict_get_byte_array):
11070         Handle NULL arrays and strings. Also add support for byte arrays.
11071
11072         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11073         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11074         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11075         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11076         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11077         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11078         * dbus/dbus-marshal.h:
11079         Add support for marshalling and demarshalling empty arrays and strings.
11080
11081         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11082         (dbus_message_append_string_array),
11083         (dbus_message_iter_get_boolean),
11084         (dbus_message_iter_get_boolean_array),
11085         (dbus_message_iter_get_int32_array),
11086         (dbus_message_iter_get_uint32_array),
11087         (dbus_message_iter_get_double_array),
11088         (dbus_message_iter_get_byte_array),
11089         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11090         (check_message_handling):
11091         Add support for getting empty arrays and dicts.
11092
11093         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11094         Don't do any validation at all for now, that's better than just checking
11095         for ASCII.
11096
11097         * test/data/valid-messages/emptiness.message:
11098         New test message with lots of empty arrays.
11099
11100 2003-03-16  Havoc Pennington  <hp@pobox.com>
11101
11102         * dbus/dbus-connection.c
11103         (_dbus_connection_queue_received_message_link): new function that
11104         can't fail due to OOM
11105
11106         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11107         new function pops a message together with a list link
11108         containing it.
11109
11110         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11111         message queuing functions to avoid needing to alloc memory
11112
11113 2003-03-16  Havoc Pennington  <hp@pobox.com>
11114
11115         Oops - test code was only testing failure of around 30 of the
11116         mallocs in the test path, but it turns out there are 500+
11117         mallocs. I believe this was due to misguided linking setup such
11118         that there was one copy of dbus_malloc etc. in the daemon and one
11119         in the shared lib, and only daemon mallocs were tested. In any
11120         case, the test case now tests all 500+ mallocs, and doesn't pass
11121         yet, though there are lots of fixes in this patch.
11122
11123         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11124         this so that it doesn't need to allocate memory, since it
11125         has no way of indicating failure due to OOM (and would be
11126         annoying if it did).
11127
11128         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11129
11130         * bus/Makefile.am: rearrange to create two self-contained
11131         libraries, to avoid having libraries with overlapping symbols.
11132         that was resulting in weirdness, e.g. I'm pretty sure there
11133         were two copies of global static variables.
11134
11135         * dbus/dbus-internals.c: move the malloc debug stuff to
11136         dbus-memory.c
11137
11138         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11139         empty.
11140
11141         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11142
11143         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11144         on failure.
11145
11146         * bus/dispatch.c (bus_dispatch_add_connection): free
11147         message_handler_slot when no longer using it, so
11148         memory leak checkers are happy for the test suite.
11149
11150         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11151
11152         * bus/bus.c (new_connection_callback): disconnect in here if
11153         bus_connections_setup_connection fails.
11154
11155         * bus/connection.c (bus_connections_unref): fix to free the
11156         connections
11157         (bus_connections_setup_connection): if this fails, don't
11158         disconnect the connection, just be sure there are no side
11159         effects.
11160
11161         * dbus/dbus-string.c (undo_alignment): unbreak this
11162
11163         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11164         leaking
11165         (_dbus_auth_new): fix the order in which we free strings
11166         on OOM failure
11167
11168         * bus/connection.c (bus_connection_disconnected): fix to
11169         not send ServiceDeleted multiple times in case of memory
11170         allocation failure
11171
11172         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11173         get the base service name
11174         (dbus_bus_register_client): don't return base service name,
11175         instead store it on the DBusConnection and have an accessor
11176         function for it.
11177         (dbus_bus_register_client): rename dbus_bus_register()
11178
11179         * bus/dispatch.c (check_hello_message): verify that other
11180         connections on the bus also got the correct results, not
11181         just the one sending hello
11182
11183 2003-03-15  Havoc Pennington  <hp@pobox.com>
11184
11185         Make it pass the Hello handling test including all OOM codepaths.
11186         Now to do other messages...
11187
11188         * bus/services.c (bus_service_remove_owner): fix crash when
11189         removing owner from an empty list of owners
11190         (bus_registry_ensure): don't leave service in the list of
11191         a connection's owned services if we fail to put the service
11192         in the hash table.
11193
11194         * bus/connection.c (bus_connection_preallocate_oom_error): set
11195         error flag on the OOM error.
11196
11197         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11198         handle _dbus_transport_set_connection failure
11199
11200         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11201         to create watches up front and simply enable/disable them as
11202         needed.
11203         (unix_connection_set): this can now fail on OOM
11204
11205         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11206         of enabling/disabling a watch or timeout.
11207
11208         * bus/loop.c (bus_loop_iterate): don't touch disabled
11209         watches/timeouts
11210
11211         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11212
11213 2003-03-15  Havoc Pennington  <hp@pobox.com>
11214
11215         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11216         write useful test code, after all that futzing around ;-)
11217
11218         Test does not yet pass because we can't handle OOM in
11219         _dbus_transport_messages_pending (basically,
11220         dbus_connection_preallocate_send() does not prealloc the write
11221         watch). To fix this, I think we need to add new stuff to
11222         set_watch_functions, namely a SetEnabled function so we can alloc
11223         the watch earlier, then enable it later.
11224
11225         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11226         dbus-memory.c to the convenience lib
11227
11228         * bus/test.c: rename some static functions to keep them clearly
11229         distinct from stuff in connection.c. Handle client disconnection.
11230
11231 2003-03-14  Havoc Pennington  <hp@pobox.com>
11232
11233         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11234         transport, tests more of the real codepath. Set up clients
11235         with bus_setup_debug_client.
11236
11237         * bus/test.c (bus_setup_debug_client): function to set up debug
11238         "clients" on the main loop
11239
11240         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11241         support
11242
11243         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11244         server type
11245
11246         * dbus/dbus-server-debug.c: support a debug server based on pipes
11247
11248         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11249         (_dbus_close): new function
11250
11251         * configure.in: check for socketpair
11252
11253 2003-03-14  Havoc Pennington  <hp@redhat.com>
11254
11255         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11256         cheesy hack
11257
11258         * dbus/dbus-transport-debug.c: rework this a good bit to be
11259         less complicated. hopefully still works.
11260
11261         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11262         manually
11263
11264         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11265         after running it
11266
11267         * dbus/dbus-message.c (dbus_message_copy): rename from
11268         dbus_message_new_from_message, fix it up to copy
11269         all the message fields, add test case
11270
11271         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11272         not quite passing yet
11273
11274 2003-03-14  Havoc Pennington  <hp@pobox.com>
11275
11276         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11277         until no work remains" in test code. (the large diff here
11278         is just code movement, no actual changes)
11279
11280         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11281         1, no point waiting around for test code.
11282         (_dbus_server_debug_accept_transport): unref the timeout
11283         after adding it (right?)
11284
11285         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11286
11287 2003-03-13  Havoc Pennington  <hp@redhat.com>
11288
11289         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11290         out of memory
11291
11292         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11293         of memory
11294
11295         * dbus/dbus-connection.h: Make AddWatchFunction and
11296         AddTimeoutFunction return a bool so they can fail on out-of-memory
11297
11298         * bus/bus.c (bus_context_new): set up timeout handlers
11299
11300         * bus/connection.c (bus_connections_setup_connection): set up
11301         timeout handlers
11302
11303         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11304         can fail
11305
11306         * bus/bus.c (bus_context_new): adapt to changes
11307
11308         * bus/connection.c: adapt to changes
11309
11310         * test/watch.c: adapt to DBusWatch changes
11311
11312         * bus/dispatch.c (bus_dispatch_test): started adding this but
11313         didn't finish
11314
11315 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11316
11317         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11318
11319 2003-03-13  Havoc Pennington  <hp@pobox.com>
11320
11321         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11322         set up a test framework as for the library
11323
11324 2003-03-12  Havoc Pennington  <hp@pobox.com>
11325
11326         Throughout: purge global variables, introduce BusActivation,
11327         BusConnections, BusRegistry, etc. objects instead.
11328
11329         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11330         message bus object
11331
11332         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11333         going to redo this a bit differently I think
11334
11335 2003-03-12  Havoc Pennington  <hp@redhat.com>
11336
11337         Mega-patch that gets the message bus daemon initially handling
11338         out-of-memory. Work still needed. Also lots of random
11339         moving stuff to DBusError instead of ResultCode.
11340
11341         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11342
11343         * dbus/dbus-connection.c
11344         (dbus_connection_send_with_reply_and_block): use DBusError
11345
11346         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11347         DBusResultCode
11348
11349         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11350         code here, as the only failure possible is OOM.
11351
11352         * bus/connection.c (bus_connection_disconnect):
11353         rename bus_connection_disconnected as it's a notification only
11354
11355         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11356         "name" on get_args failure, should be done by get_args;
11357         don't disconnect client for bad args, just return an error.
11358         (bus_driver_handle_service_exists): ditto
11359
11360         * bus/services.c (bus_services_list): NULL-terminate returned array
11361
11362         * bus/driver.c (bus_driver_send_service_lost)
11363         (bus_driver_send_service_acquired): send messages from driver to a
11364         specific client to the client's unique name, not to the broadcast
11365         service.
11366
11367         * dbus/dbus-message.c (decode_header_data): reject messages that
11368         contain no name field
11369         (_dbus_message_get_client_serial): rename to
11370         dbus_message_get_serial and make public
11371         (_dbus_message_set_serial): rename from set_client_serial
11372         (_dbus_message_set_reply_serial): make public
11373         (_dbus_message_get_reply_serial): make public
11374
11375         * bus/connection.c (bus_connection_foreach): allow stopping
11376         iteration by returning FALSE from foreach function.
11377
11378         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11379         (dbus_connection_free_preallocated_send)
11380         (dbus_connection_preallocate_send): new API for sending a message
11381         without possibility of malloc failure.
11382         (dbus_connection_send_message): rename to just
11383         dbus_connection_send (and same for whole function family)
11384
11385         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11386
11387         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11388
11389         * bus/activation.c: handle/return errors
11390
11391         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11392
11393         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11394         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11395         (_dbus_result_from_errno): move to this file
11396
11397 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11398
11399         * dbus/dbus-marshal.c:
11400         (_dbus_marshal_set_string):
11401         Take a length argument so we can marshal the correct string
11402         length.
11403
11404         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11405         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11406         (_dbus_marshal_test):
11407         * dbus/dbus-marshal.h:
11408         Add support for marshalling and demarshalling dicts.
11409
11410         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11411         Add support for TYPE DICT.
11412
11413         * dbus/dbus-message.c: (set_string_field):
11414         Adjust header padding.
11415
11416         (dbus_message_append_args_valist), (dbus_message_append_dict),
11417         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11418         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11419         (check_message_handling), (check_have_valid_message):
11420         * dbus/dbus-message.h:
11421         Add functions for setting and getting dicts.
11422
11423         * dbus/dbus-protocol.h:
11424         Add DBUS_TYPE_DICT.
11425
11426         * dbus/dbus.h:
11427         Add dbus-dict.h
11428
11429         * doc/dbus-specification.sgml:
11430         Add information about how dicts are marshalled.
11431
11432         * test/data/invalid-messages/dict-with-nil-value.message:
11433         * test/data/invalid-messages/too-short-dict.message:
11434         * test/data/valid-messages/dict-simple.message:
11435         * test/data/valid-messages/dict.message:
11436         Add sample messages containing dicts.
11437
11438 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11439
11440         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11441
11442 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11443
11444         * dbus/Makefile.am:
11445         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11446         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11447         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11448         (dbus_dict_set_double), (dbus_dict_set_string),
11449         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11450         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11451         (dbus_dict_set_string_array), (_dbus_dict_test):
11452         * dbus/dbus-dict.h:
11453         Fix according to comments from Havoc.
11454
11455 2003-03-06  Michael Meeks  <michael@server.home>
11456
11457         * configure.in: if we don't have kde-config, disable have_qt.
11458
11459 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11460
11461         * dbus/Makefile.am:
11462         Add dbus-dict.[ch]
11463
11464         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11465         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11466         (dbus_dict_remove), (dbus_dict_get_value_type),
11467         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11468         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11469         (dbus_dict_put_double), (dbus_dict_put_string),
11470         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11471         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11472         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11473         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11474         (dbus_dict_get_double), (dbus_dict_get_string),
11475         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11476         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11477         (dbus_dict_get_string_array), (_dbus_dict_test):
11478         * dbus/dbus-dict.h:
11479         Add DBusDict implementation
11480
11481         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11482         * dbus/dbus-test.h:
11483         Add _dbus_dict_test
11484
11485 2003-03-04  Havoc Pennington  <hp@pobox.com>
11486
11487         * test/data/auth/*: adapt to changes
11488
11489         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11490         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11491         userid
11492
11493         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11494         more stuff from being in a context name, to make the protocol
11495         simpler to deal with
11496
11497         * dbus/dbus-errors.c (dbus_error_has_name): new function
11498         (dbus_error_is_set): new function
11499
11500         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11501         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11502
11503         * dbus/dbus-connection.c (dbus_connection_flush): also read
11504         messages during a flush operation
11505
11506         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11507
11508 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11509
11510         * configure.in: Check for gethostbyname on Solaris.
11511
11512         * dbus/dbus-transport.c: (_dbus_transport_open):
11513         Remove duplicate "tcp" entry.
11514
11515         * doc/dbus-specification.sgml:
11516         Clarify some things.
11517
11518 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11519
11520         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11521         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11522         (_dbus_keyring_test):
11523         * dbus/dbus-md5.c: (_dbus_md5_compute):
11524         * dbus/dbus-sha.c: (_dbus_sha_compute):
11525         Plug memory leaks.
11526
11527 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11528
11529         * README: Add some things.
11530
11531 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11532
11533         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11534         after case DBUS_TYPE_BOOELAN.
11535
11536 2003-03-02  Havoc Pennington  <hp@pobox.com>
11537
11538         * test/break-loader.c (randomly_set_extreme_ints): add test that
11539         sets really huge and small integers
11540
11541         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11542         that length of boolean array fits in the string, and that
11543         string has room for boolean value in single-bool case.
11544
11545         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11546         optional value to "ALIGN" command which is what to fill the
11547         alignment with.
11548
11549         * test/data/valid-messages/no-padding.message: add regression
11550         test for the message padding problem
11551
11552 2003-03-02  Havoc Pennington  <hp@pobox.com>
11553
11554         * dbus/dbus-message.c (decode_header_data): fix to always init
11555         message_padding, from Benjamin Dauvergne
11556
11557 2003-03-02  Havoc Pennington  <hp@pobox.com>
11558
11559         * configure.in: 0.5
11560
11561         * NEWS: Update.
11562
11563 2003-03-01  Joe Shaw  <joe@assbarn.com>
11564
11565         * configure.in: Check for "struct cmsgcred" and try to access its
11566         members for BSD-like unices.
11567
11568         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11569         _dbus_read_credentials_unix_socket().
11570         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11571         read() for reading the credential byte off the unix socket.  Use
11572         struct cmsgcred on systems that support it.
11573
11574 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11575
11576         * glib/Makefile.am:
11577         * configure.in:
11578         Make gthreads-2.0 dependency optional. Don't build thread test if
11579         its not found.
11580
11581 2003-02-27  Havoc Pennington  <hp@pobox.com>
11582
11583         * dbus/dbus-connection.c
11584         (dbus_connection_send_message_with_reply_and_block): fix doh!
11585         doh! doh! bug that resulted in never removing a reply from the
11586         queue, no wonder we called get_reply_serial so much ;-)
11587
11588         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11589         and client serial instead of demarshaling them every time
11590
11591 2003-02-27  Havoc Pennington  <hp@pobox.com>
11592
11593         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11594         more inlined, using dbus-string-private.h, speeds things up
11595         substantially
11596
11597         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11598         when freeing the string
11599         (_dbus_string_steal_data): fix for align offset
11600         (undo_alignment): new function
11601
11602 2003-02-26  Havoc Pennington  <hp@redhat.com>
11603
11604         All kinds of audit fixes from Owen, plus initial attempt to
11605         handle unaligned memory returned from malloc.
11606
11607         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11608         leave room for align_offset and nul byte
11609         (fixup_alignment): function to track an align_offset and
11610         ensure real->str is aligned
11611         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11612         to allow a nul byte plus align offset
11613         (_dbus_string_lock): fix overflow issue
11614         (_dbus_string_init_const_len): add assertions on sanity of len,
11615         assign allocated to be ALLOCATION_PADDING larger than len
11616         (set_length): fixup the overflow handling
11617         (_dbus_string_get_data_len): fix overflow in assertion
11618         (open_gap): detect overflow in size of gap to be opened
11619         (_dbus_string_lengthen): add overflow check
11620         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11621         (_dbus_string_append): add overflow check
11622         (_dbus_string_append_unichar): overflow
11623         (_dbus_string_delete): fix overflow in assertion
11624         (_dbus_string_copy_len): overflow in assertion
11625         (_dbus_string_replace_len): overflows in assertions
11626         (_dbus_string_find): change to implement in terms of
11627         _dbus_string_find_to
11628         (_dbus_string_find_to): assorted fixage
11629         (_dbus_string_equal_c_str): assert c_str != NULL,
11630         fix logic so the function works
11631         (_dbus_string_ends_with_c_str): fix overflow thingy
11632         (_dbus_string_base64_encode): overflow fix
11633         (_dbus_string_validate_ascii): overflow
11634         (_dbus_string_validate_nul): overflow
11635
11636 2003-02-26  Havoc Pennington  <hp@redhat.com>
11637
11638         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11639
11640 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11641
11642         * configure.in:
11643         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11644
11645         * dbus/dbus-connection.c:
11646         * dbus/dbus-connection.h:
11647         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11648         Add dbus_connection_set_wakeup_main_function and use it when queueing
11649         incoming and outgoing messages.
11650
11651
11652         * dbus/dbus-dataslot.c:
11653         Threadsafe usage of DBusDataSlotAllocator
11654
11655         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11656         dbus_new can fail.
11657
11658         * dbus/dbus-server-unix.c:
11659         Add todo comment
11660
11661         * glib/dbus-gmain.c:
11662         Implement the new wakeup functions for glib.
11663
11664         * glib/Makefile.am:
11665         * glib/test-thread-client.c:
11666         * glib/test-thread-server.c:
11667         * glib/test-thread.h:
11668         Initial cut at some thread test code. Not really done yet.
11669
11670 2003-02-26  Havoc Pennington  <hp@pobox.com>
11671
11672         * dbus/dbus-connection.c
11673         (dbus_connection_send_message_with_reply_and_block): fix crash
11674         where we ref'd the outgoing message instead of the returned reply
11675
11676         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11677         at the end of this function, so if we didn't need to read for
11678         authentication, we reinstall it for receiving messages
11679
11680         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11681         a NULL sender for peer-to-peer case
11682
11683         * dbus/dbus-transport-unix.c (check_read_watch): handle
11684         !authenticated case correctly
11685
11686         * glib/dbus-gmain.c: add support for DBusServer
11687
11688         * dbus/dbus-server.c: add data slot support
11689
11690         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11691         return values and handle errors
11692
11693         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11694         DBusConnection
11695
11696         * Doxyfile.in (INPUT): add glib subdir
11697
11698         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11699         setup_with_g_main instead of hookup_with_g_main; write docs
11700
11701 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11702
11703         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11704         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11705         * dbus/dbus-message.c: (dbus_message_append_boolean),
11706         (dbus_message_append_boolean_array),
11707         (dbus_message_get_args_valist), (_dbus_message_test):
11708         * dbus/dbus-message.h:
11709         * doc/dbus-specification.sgml:
11710         Various fixes as pointed out by Havoc.
11711
11712         * test/data/invalid-messages/bad-boolean-array.message:
11713         * test/data/invalid-messages/bad-boolean.message:
11714         Add invalid boolean value test cases.
11715
11716 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11717
11718         * dbus/dbus-internals.c: (_dbus_type_to_string):
11719         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11720         (_dbus_marshal_validate_arg):
11721         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11722         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11723         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11724         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11725         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11726         (dbus_message_iter_get_double),
11727         (dbus_message_iter_get_boolean_array), (message_iter_test):
11728         * dbus/dbus-message.h:
11729         * dbus/dbus-protocol.h:
11730         * doc/dbus-specification.sgml:
11731         * test/data/valid-messages/lots-of-arguments.message:
11732         Add support for boolean and boolean array types.
11733
11734 2003-02-23  Havoc Pennington  <hp@pobox.com>
11735
11736         * dbus/dbus-keyring.c: finish most of this implementation and
11737         simple unit test
11738
11739         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11740         these barf if the error isn't cleared to NULL
11741
11742         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11743         (_dbus_create_directory): new function
11744
11745         * dbus/dbus-errors.c (dbus_set_error): fix warning
11746
11747         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11748         (_dbus_string_hex_decode): new function
11749         (test_hex_roundtrip): test code
11750
11751         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11752
11753         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11754
11755         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11756         the save-to-temp/rename trick to atomically write the new file
11757         (_dbus_string_parse_uint): new function
11758
11759 2003-02-22  Havoc Pennington  <hp@pobox.com>
11760
11761         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11762
11763 2003-02-22  Havoc Pennington  <hp@pobox.com>
11764
11765         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11766         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11767
11768         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11769
11770         * dbus/test/data/sha-1: add US government test suite for SHA-1
11771
11772 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11773
11774         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11775         Make string arrays NULL-terminated.
11776
11777         * dbus/dbus-memory.c: (dbus_free_string_array):
11778         * dbus/dbus-memory.h:
11779         New function for freeing NULL-terminated string arrays.
11780
11781         * dbus/dbus-message-builder.c: (append_quoted_string),
11782         (_dbus_message_data_load):
11783         Add support for array types.
11784
11785         * dbus/dbus-message.c: (check_message_handling):
11786         Add more types as test cases.
11787
11788         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11789         (_dbus_string_parse_double):
11790         Add the start offset to the end offset.
11791
11792         * test/data/valid-messages/lots-of-arguments.message:
11793         New test message with lots of arguments.
11794
11795 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11796
11797         * dbus/dbus-message.c: (dbus_message_append_nil),
11798         (dbus_message_append_int32), (dbus_message_append_uint32),
11799         (dbus_message_append_double), (dbus_message_append_string),
11800         (dbus_message_append_int32_array),
11801         (dbus_message_append_uint32_array),
11802         (dbus_message_append_double_array),
11803         (dbus_message_append_byte_array),
11804         (dbus_message_append_string_array):
11805         Fix all out-of-memory handling in these functions.
11806
11807 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11808
11809         * dbus/dbus-message.c: (dbus_message_append_nil):
11810         Fix a silly.
11811
11812 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11813
11814         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11815         (dbus_message_append_nil), (dbus_message_append_int32_array),
11816         (dbus_message_append_uint32_array),
11817         (dbus_message_append_double_array),
11818         (dbus_message_append_byte_array),
11819         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11820         (dbus_message_iter_get_int32_array),
11821         (dbus_message_iter_get_uint32_array),
11822         (dbus_message_iter_get_double_array),
11823         (dbus_message_iter_get_byte_array),
11824         (dbus_message_iter_get_string_array):
11825
11826         * dbus/dbus-message.h:
11827         Add functions for appending and getting arrays.
11828
11829 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11830
11831         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11832         element size at least 8 bytes, fixes mempool tests on
11833         64-bit machines.
11834
11835 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11836
11837         * dbus/dbus-transport-unix.c (unix_do_iteration):
11838         Unlock the connection mutex during a blocking select call.
11839         Add todo about how we need a way to wake up the select.
11840
11841         * dbus/dbus-connection-internal.h:
11842         * dbus/dbus-connection.c:
11843         Add _dbus_connection_lock and _dbus_connection_unlock.
11844
11845 2003-02-19  Havoc Pennington  <hp@pobox.com>
11846
11847         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11848         Doxyfile.in, not Doxyfile
11849
11850         * dbus/dbus-keyring.c: do some hacking on this
11851
11852         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11853
11854         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11855         dbus_error_init
11856         (dbus_set_error): remove dbus_error_init, check for message ==
11857         NULL *before* we sprintf into it, and add @todo about including
11858         system headers in this file
11859
11860         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11861
11862         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11863
11864         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11865         get various bits of user information based on either username
11866         or user ID
11867         (_dbus_homedir_from_username): new function
11868
11869 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11870
11871         * configure.in:
11872         Add check for nonposix getpwnam_r
11873
11874         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11875         Align the pool element size to a sizeof (void *) boundary.
11876
11877         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11878         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11879         General Solaris fixes.
11880
11881         * test/data/valid-messages/simplest-manual.message:
11882         Explicitly state that we want little-endian packing.
11883
11884 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11885
11886         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11887
11888         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11889         Added to create a transport connecting using a tcp/ip socket.
11890
11891         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11892         to a tcp socket at given host and port.
11893         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11894         hostname and port.
11895
11896         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11897
11898         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11899         Added to create a server listening on a TCP/IP socket.
11900
11901 2003-02-19  Havoc Pennington  <hp@pobox.com>
11902
11903         Throughout: mop up all the Doxygen warnings and undocumented
11904         stuff.
11905
11906         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11907         to search any paths.
11908
11909         * dbus/dbus-threads.c: move global mutex initializers to
11910         dbus-internals.h, multiple prototypes was confusing doxygen
11911         besides being kind of ugly
11912
11913         * Doxyfile (PREDEFINED): have Doxygen define
11914         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11915         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11916         (do not abuse the feature! it's for stuff like the autogenerated
11917         macros in dbus-md5.c, not just for things you don't feel like
11918         documenting...)
11919
11920 2003-02-18  Havoc Pennington  <hp@pobox.com>
11921
11922         * dbus/dbus-string.c (_dbus_string_zero): new function
11923
11924         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11925         wrap it in some dbus-friendly API
11926
11927         * dbus/dbus-types.h: add 16-bit types
11928
11929 2003-02-18  Joe Shaw  <joe@assbarn.com>
11930
11931         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11932         credentials from our currently running process.
11933         (get_word): Fix a buglet where we were copying the entire length
11934         instead of relative to our position.
11935
11936         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11937         keys on the stack... it's 640k of data.
11938
11939         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11940         read the credentials byte off the socket, even if we don't have
11941         SO_PEERCRED.
11942         (_dbus_poll): Implement poll() using select() for systems which
11943         don't have it.
11944
11945         * glib/test-dbus-glib.c (main): Print out an error if no
11946         parameters are given.
11947
11948         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11949         can fallback to a secondary auth mechanism if the first fails.
11950
11951 2003-02-18  Havoc Pennington  <hp@pobox.com>
11952
11953         * AUTHORS: add Alex
11954
11955 2003-02-17  Havoc Pennington  <hp@pobox.com>
11956
11957         * doc/dbus-specification.sgml: lots of cosmetic
11958         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11959         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11960         s/server/bus/ (except in authentication section). Add a section
11961         "Message Bus Message Routing"
11962
11963 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11964
11965         Release 0.4
11966
11967         * NEWS: Update
11968
11969 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11970
11971         * doc/dbus-specification.sgml:
11972         Specification updates.
11973
11974 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11975
11976         * bus/activation.c: (bus_activation_init), (child_setup),
11977         (bus_activation_activate_service):
11978         * bus/activation.h:
11979         * bus/main.c: (main):
11980         Set DBUS_ADDRESS environment variable.
11981
11982         * dbus/dbus-errors.c: (dbus_set_error):
11983         Don't use va_copy since that's a C99 feature.
11984
11985         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11986         (_dbus_spawn_async):
11987         * dbus/dbus-sysdeps.h:
11988         Add child_setup_func to _dbus_spawn_async.
11989
11990         * doc/dbus-specification.sgml:
11991         Update specification.
11992
11993         * test/spawn-test.c: (setup_func), (main):
11994         Fix test.
11995
11996 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11997
11998         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11999         Added todo.
12000
12001 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12002
12003         * doc/.cvsignore:
12004         * doc/Makefile.am:
12005         * doc/dbus-test-plan.sgml:
12006         Add test plan document.
12007
12008         * test/Makefile.am:
12009         Fix distcheck.
12010
12011 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12012
12013         * dbus/dbus-message.c: (decode_header_data),
12014         (_dbus_message_loader_return_buffer):
12015         Set the header padding amount when loading a message.
12016
12017 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12018
12019         * bus/dispatch.c: (send_one_message):
12020         Only send broadcast messages to registered connections.
12021
12022         * dbus/dbus-message.c: (dbus_message_name_is):
12023         * dbus/dbus-message.h:
12024         New convenience function.
12025
12026         * dbus/dbus-transport-debug.c: (do_reading):
12027         Only dispatch one message per run.
12028
12029         * test/Makefile.am:
12030         * test/bus-test.c: (new_connection_callback), (die),
12031         (test_hello_client1_handler), (test_hello_client2_handler),
12032         (test_hello_replies), (main):
12033
12034         * test/bus-test-loop.[ch]:
12035         Add these.
12036
12037 2003-02-16  Havoc Pennington  <hp@pobox.com>
12038
12039         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12040         backward conditional
12041
12042 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12043
12044         * dbus/dbus-connection.c:
12045         Implement sent_message_with_reply. (with_reply_and block is still
12046         busted).
12047         Made dispatch_message not lose message if OOM.
12048
12049         * dbus/dbus-errors.h:
12050         Add NoReply error (for reply timeouts).
12051
12052 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12053
12054         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12055         Actually free keys and values when destroying hashtable.
12056
12057 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12058
12059         * dbus/dbus-auth.c: (client_try_next_mechanism):
12060         Plug a leak.
12061
12062         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12063         Return TRUE if there's no thread implementation around.
12064
12065         * glib/dbus-gmain.c: (free_source),
12066         (dbus_connection_hookup_with_g_main):
12067         Make sure to remove the GSource when the connection is finalized.
12068
12069 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12070
12071         * bus/dispatch.c: (bus_dispatch_message_handler):
12072         * dbus/dbus-errors.h:
12073         Return an error if someone tries to send a message to a service
12074         that doesn't exist.
12075
12076 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12077
12078         * bus/activation.c: (load_directory), (bus_activation_init),
12079         (bus_activation_activate_service):
12080         * bus/activation.h:
12081         * bus/driver.c:
12082         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12083         More work on the activation handling.
12084
12085         * dbus/dbus-errors.h:
12086         Add some error messages
12087
12088         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12089         * dbus/dbus-message.h:
12090         New function that creates an error message.
12091
12092         * dbus/dbus-protocol.h:
12093         Add ACTIVATE_SERVER message.
12094
12095         * dbus/dbus-server-unix.c: (unix_handle_watch),
12096         (_dbus_server_new_for_domain_socket):
12097         Call _dbus_fd_set_close_on_exec.
12098
12099         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12100         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12101         (_dbus_fd_set_close_on_exec):
12102         * dbus/dbus-sysdeps.h:
12103         Add _dbus_fd_set_close_on exec function. Also add function that checks
12104         that all open fds are set to close-on-exec and warns otherwise.
12105
12106         * dbus/dbus-transport-unix.c:
12107         (_dbus_transport_new_for_domain_socket):
12108         Call _dbus_fd_set_close_on_exec.
12109
12110 2003-02-16  Havoc Pennington  <hp@pobox.com>
12111
12112         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12113         allow people to avoid setting SIGPIPE to SIG_IGN
12114         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12115         we've been asked not to
12116
12117 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12118
12119         * dbus/dbus-list.c: (_dbus_list_append_link),
12120         (_dbus_list_prepend_link):
12121         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12122         (dbus_realloc):
12123         Warning fixes.
12124
12125 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12126
12127         * bus/Makefile.am:
12128         * bus/activation.c: (bus_activation_entry_free),
12129         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12130         * bus/activation.h:
12131         * bus/main.c: (main):
12132         Add simple activation support, doesn't work yet though.
12133
12134 2003-02-15   Zack Rusin  <zack@kde.org>
12135
12136         * qt/dbus-qthread.cpp:  small casting fix
12137
12138 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12139
12140         * dbus/dbus-errors.c: (dbus_set_error):
12141         * dbus/dbus-errors.h:
12142         Add a few errors and make dbus_set_error void.
12143
12144         * dbus/dbus-sysdeps.c:
12145         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12146         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12147         * dbus/dbus-sysdeps.h:
12148         Add _dbus_spawn_async.
12149
12150         * test/spawn-test.c: (main):
12151         Test for _dbus_spawn_async.
12152
12153 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12154
12155         * dbus/dbus-internals.h:
12156         Fix build without tests.
12157
12158         * dbus/dbus-list.c: (alloc_link):
12159         Fix a segfault when a malloc fails.
12160
12161         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12162         (dbus_malloc0), (dbus_realloc):
12163         Add support for malloc debugging.
12164
12165 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12166
12167         * dbus/dbus-threads.c:
12168         * dbus/dbus-threads.h:
12169         Add condvars. Remove static mutext from API.
12170         Implement static mutexes by initializing them from threads_init.
12171
12172         * glib/dbus-gthread.c:
12173         * qt/dbus-qthread.cpp:
12174         Update with the thread api changes.
12175
12176
12177         * dbus/dbus-list.c:
12178         * dbus/dbus-list.h:
12179         Turn StaticMutex into normal mutex + init function.
12180         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12181         _dbus_list_append_link, _dbus_list_prepend_link
12182
12183
12184         * dbus/dbus-sysdeps.c:
12185         * dbus/dbus-sysdeps.h:
12186         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12187         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12188
12189         * dbus/dbus-protocol.h:
12190         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12191
12192         * dbus/dbus-message.c:
12193         Make ref/unref atomic.
12194         Fix some docs.
12195
12196         * dbus/dbus-connection-internal.h:
12197         * dbus/dbus-connection.c:
12198         * dbus/dbus-connection.h:
12199         Make threadsafe.
12200         Change _peek to _borrow,_return & _steal_borrowed.
12201         Change disconnect callback to event.
12202         Make dbus_connection_dispatch_messages reentrant.
12203
12204         * dbus/dbus-transport.c:
12205         Don't ref the connection on calls to the transport
12206         implementation.
12207
12208         * dbus/dbus-message-handler.c:
12209         Make threadsafe.
12210
12211         * glib/dbus-gmain.c:
12212         Don't use peek_message anymore
12213
12214         * test/Makefile.am:
12215         * test/debug-thread.c:
12216         * test/debug-thread.h:
12217         Simple thread implementation that asserts() on deadlocks in
12218         single-threaded code.
12219
12220         * test/bus-test.c:
12221         (main) Call debug_threads_init.
12222
12223         * test/watch.c:
12224         Use disconnect message instead of disconnect callback.
12225
12226         * bus/connection.c:
12227         * bus/connection.h:
12228         Don't call dbus_connection_set_disconnect_function. Instead export
12229         bus_connection_disconnect.
12230
12231         * bus/dispatch.c:
12232         Call bus_connection_disconnect when we get a disconnected message.
12233
12234 2003-02-15  Havoc Pennington  <hp@pobox.com>
12235
12236         * dbus/dbus-message.c (dbus_message_new): fool around with the
12237         docs
12238
12239 2003-02-14  Havoc Pennington  <hp@pobox.com>
12240
12241         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12242
12243         * dbus/dbus-memory.c: fail if the debug functions indicate we
12244         should
12245
12246         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12247         (_dbus_decrement_fail_alloc_counter): debug functions to
12248         simulate memory allocation failures
12249
12250 2003-02-14  Havoc Pennington  <hp@pobox.com>
12251
12252         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12253         to DBusError
12254
12255 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12256
12257         * bus/driver.c: (bus_driver_handle_hello):
12258         * bus/driver.h:
12259         * bus/services.c: (bus_service_lookup):
12260         Reorder message sending so we get a more sane order.
12261
12262         * test/bus-test.c: (message_handler):
12263         Fix tyop.
12264
12265 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12266
12267         * bus/driver.c: (bus_driver_send_service_deleted),
12268         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12269         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12270         (bus_driver_send_welcome_message),
12271         (bus_driver_handle_list_services),
12272         (bus_driver_handle_acquire_service),
12273         (bus_driver_handle_service_exists):
12274         * dbus/dbus-bus.c: (dbus_bus_register_client),
12275         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12276         * dbus/dbus-errors.c: (dbus_result_to_string):
12277         * dbus/dbus-errors.h:
12278         * dbus/dbus-message.c: (dbus_message_append_args),
12279         (dbus_message_append_args_valist), (dbus_message_get_args),
12280         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12281         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12282         (dbus_message_iter_get_byte_array),
12283         (dbus_message_iter_get_string_array), (message_iter_test),
12284         (check_message_handling), (_dbus_message_test):
12285         * dbus/dbus-message.h:
12286         * test/bus-test.c: (main):
12287         Change fields to arguments in messages, so that they won't be
12288         confused with header fields.
12289
12290         * glib/test-dbus-glib.c: (main):
12291         Remove append_fields from hello message.
12292
12293 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12294
12295         * dbus/dbus-errors.c:
12296         * dbus/dbus-message.c:
12297         * dbus/dbus-string.c:
12298         Documentation fixes.
12299
12300 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12301
12302         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12303         (remove_timeout):
12304         Implement support for timeouts in dbus-glib.
12305
12306 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12307
12308         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12309         * dbus/dbus-message.c: (process_test_subdir):
12310         * test/break-loader.c: (find_breaks_based_on):
12311         Plug some memory leaks.
12312
12313 2003-02-13  Richard Hult  <rhult@codefactory.se>
12314
12315         * bus/main.c: Fix build.
12316
12317         * dbus/dbus-errors.h:
12318         * dbus/dbus-errors.c: Fix copyright for Anders.
12319
12320 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12321
12322         * bus/Makefile.am:
12323         Add utils.[ch]
12324
12325         * bus/connection.c: (bus_connection_foreach):
12326         Fix a warning.
12327
12328         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12329         (unescape_string), (new_section), (parse_section_start),
12330         (parse_key_value), (report_error), (bus_desktop_file_load),
12331         (bus_desktop_file_get_string):
12332         * bus/desktop-file.h:
12333         Use DBusError for error reporting.
12334
12335         * bus/dispatch.c: (send_one_message),
12336         (bus_dispatch_message_handler):
12337         * bus/driver.c: (bus_driver_send_service_deleted),
12338         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12339         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12340         (bus_driver_send_welcome_message),
12341         (bus_driver_handle_list_services),
12342         (bus_driver_handle_acquire_service),
12343         (bus_driver_handle_service_exists):
12344         * bus/loop.c: (bus_loop_run):
12345         * bus/main.c:
12346         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12347
12348         * bus/utils.c: (bus_wait_for_memory):
12349         * bus/utils.h:
12350         New files with general utility functions.
12351
12352         * dbus/dbus-internals.h:
12353         Remove _DBUS_HANDLE_OOM.
12354
12355 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12356
12357         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12358         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12359         * dbus/dbus-errors.h:
12360         Add DBusError structure.
12361
12362 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12363
12364         * test/data/valid-messages/standard-acquire-service.message:
12365         * test/data/valid-messages/standard-hello.message:
12366         * test/data/valid-messages/standard-list-services.message:
12367         * test/data/valid-messages/standard-service-exists.message:
12368         Add some standard messages.
12369
12370 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12371
12372         * bus/driver.c: (bus_driver_send_welcome_message),
12373         (bus_driver_handle_list_services),
12374         (bus_driver_handle_acquire_service),
12375         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12376         Update for API changes in libdbus.
12377
12378         * dbus/dbus-message.c: (dbus_message_new_reply):
12379         * dbus/dbus-message.h:
12380         Remove the name argument. The spec states that replies shouldn't
12381         have a name.
12382
12383 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12384
12385         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12386         (report_error), (bus_desktop_file_load), (lookup_section),
12387         (lookup_line), (bus_desktop_file_get_raw),
12388         (bus_desktop_file_get_string):
12389         * bus/desktop-file.h:
12390         Some fixes, and new functions for getting a key value from a section.
12391
12392 2003-02-13  Havoc Pennington  <hp@pobox.com>
12393
12394         * test/data/auth/fail-after-n-attempts.auth-script: new test
12395
12396         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12397         reject the client.
12398
12399 2003-02-13  Havoc Pennington  <hp@pobox.com>
12400
12401         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12402         dbus_credentials_match were backward
12403
12404         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12405         NO_CREDENTIALS and ROOT_CREDENTIALS
12406
12407         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12408         into here. Never process more commands after we've reached an
12409         end state; store further data as unused bytes.
12410
12411         * test/data/auth/*: add more auth tests
12412
12413         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12414         command to match exact string and EXPECT_UNUSED to match unused
12415         bytes
12416
12417         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12418
12419 2003-02-12  Havoc Pennington  <hp@pobox.com>
12420
12421         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12422         \r off of popped lines
12423
12424         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12425         scripts
12426
12427         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12428         SEND, append \r\n
12429
12430 2003-02-12  Havoc Pennington  <hp@pobox.com>
12431
12432         * dbus/Makefile.am: remove break-loader from the build, since it
12433         moved.
12434
12435         * configure.in: add --enable-gcov to turn on coverage profiling
12436         flags and disable optimization
12437
12438 2003-02-10  Havoc Pennington  <hp@pobox.com>
12439
12440         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12441         initial cut at test framework for DBusAuth from laptop.
12442         Doesn't quite work yet but it compiles and I need to get
12443         it off the 266mhz laptop. ;-)
12444
12445         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12446         fix a memleak in error case
12447
12448 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12449
12450         * bus/Makefile.am:
12451         * bus/desktop-file.c:
12452         * bus/desktop-file.h:
12453         Add a desktop file parser.
12454
12455 2003-02-11  Zack Rusin  <zack@kde.org>
12456
12457         * qt/message.[h|cpp]: sample implementation
12458         of the KDE wrapper for DBusMessage
12459
12460 2003-02-09  Zack Rusin  <zack@kde.org>
12461
12462         * test/bus-test.c: make_it_compile
12463         * doc/dbus-specification.sgml: minimal semantic fix
12464
12465 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12466
12467         Release 0.3
12468
12469         * NEWS: Update
12470
12471 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12472
12473         * dbus/Makefile.am:
12474         * dbus/dbus-break-loader.c:
12475         * test/Makefile.am:
12476         * test/break-loader.c:
12477         Move dbus-break-loader to test/ and rename it to break-loader.
12478
12479 2003-02-02  Havoc Pennington  <hp@pobox.com>
12480
12481         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12482         for code to manage cookies in your home directory
12483
12484         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12485
12486         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12487         to authenticate, then disconnect the client.
12488
12489 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12490
12491         * dbus/dbus-message.c (dbus_message_append_fields):
12492         Correct docs.
12493
12494 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12495
12496         * doc/dbus-specification.sgml:
12497         Update address format section.
12498
12499 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12500
12501         * test/Makefile.am:
12502         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12503         (message_handler), (new_connection_callback), (loop_quit),
12504         (loop_run), (main):
12505         Add bus test.
12506
12507 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12508
12509         * bus/driver.c: (bus_driver_handle_service_exists):
12510         Simplify the code a bit.
12511
12512         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12513         Fix a silly.
12514
12515 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12516
12517         * bus/Makefile.am:
12518         Add libdbus-daemon.la and link to it.
12519
12520 2003-02-01  James Willcox  <jwillcox@gnome.org>
12521
12522         * bus/driver.c: (bus_driver_handle_own_service):
12523         Actually include the service reply code in the message.
12524
12525 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12526
12527         * bus/driver.c: (bus_driver_handle_service_exists):
12528         Don't unref the incoming message.
12529
12530 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12531
12532         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12533
12534 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12535
12536         * dbus/dbus-server.c: (dbus_server_listen):
12537         * dbus/dbus-transport.c: (_dbus_transport_open):
12538         ifdef out the calls to the debug transport and server.
12539
12540 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12541
12542         * dbus/dbus-watch.c (dbus_watch_get_flags):
12543         Add note in the docs that ERROR or HANGUP won't be returned
12544         and are assumed always on.
12545
12546         * glib/dbus-gmain.c (add_watch):
12547         Always add IO_ERR | IO_HUP
12548
12549         * dbus/dbus-message.h:
12550         Add semicolon after dbus_message_iter_get_string_array().
12551         Makes qt code build again
12552
12553 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12554
12555         * bus/driver.c: (create_unique_client_name),
12556         (bus_driver_handle_hello):
12557         Don't take a name, just use a numeric id to identify
12558         each client.
12559
12560         * dbus/Makefile.am:
12561         * dbus/dbus-bus.c: (dbus_bus_register_client),
12562         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12563         * dbus/dbus-bus.h:
12564         Add new convenience functions for communicating with the bus.
12565
12566         * dbus/dbus-message.h:
12567
12568         * dbus/dbus-protocol.h:
12569         Fix a typo.
12570
12571 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12572
12573         * dbus/dbus-message.c (dbus_message_append_fields):
12574         Add some more doc comments.
12575
12576 2003-02-01  Havoc Pennington  <hp@pobox.com>
12577
12578         * dbus/dbus-break-loader.c (randomly_modify_length): change
12579         a 4-byte value in the message as if it were a length
12580
12581         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12582         execute bit on saved files
12583
12584 2003-02-01  Havoc Pennington  <hp@pobox.com>
12585
12586         * dbus/dbus-break-loader.c (main): new program to find messages
12587         that break the loader.
12588
12589         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12590         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12591
12592         * dbus/dbus-string.c (_dbus_string_set_byte): new
12593
12594 2003-01-31  Havoc Pennington  <hp@pobox.com>
12595
12596         * dbus/dbus-message.c: refactor the test code to be more general,
12597         in preparation for writing a "randomly permute test cases to
12598         try to break the loader" program.
12599
12600 2003-01-31  Havoc Pennington  <hp@pobox.com>
12601
12602         * doc/dbus-specification.sgml: work on the specification
12603
12604         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12605         the protocol version of the message.
12606
12607         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12608         no longer specifies that.
12609         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12610         1/2/3/4)
12611
12612         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12613         "break" for DBUS_TYPE_NIL, remove @todo
12614
12615 2003-01-31  Havoc Pennington  <hp@pobox.com>
12616
12617         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12618         just set_is_error/get_is_error as this is a commonly-used
12619         function, and write docs.
12620
12621 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12622
12623         * dbus/dbus-address.c: (dbus_address_entry_free):
12624         Free key and value lists.
12625
12626         * dbus/dbus-internals.c: (_dbus_type_to_string):
12627         Add the types we didn't have.
12628
12629         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12630         (_dbus_marshal_validate_arg):
12631         Add NIL types.
12632
12633         * dbus/dbus-message.c: (dbus_message_set_sender):
12634         Remove todo about being able to set sender to NULL.
12635
12636         (dbus_message_set_is_error_reply),
12637         (dbus_message_get_is_error_reply):
12638         * dbus/dbus-message.h:
12639         New functions.
12640
12641         * dbus/dbus-protocol.h:
12642         Add error reply flag.
12643
12644         * test/data/valid-messages/opposite-endian.message:
12645         Add NIL type to test.
12646
12647 2003-01-31  Havoc Pennington  <hp@pobox.com>
12648
12649         * doc/dbus-specification.sgml: fully specify the header.  Add
12650         flags and major protocol version, and change header/body len to
12651         unsigned.
12652
12653         * dbus/dbus-message-builder.c (append_saved_length): append length
12654         as uint32
12655
12656         * dbus/dbus-message.c (dbus_message_create_header): change header
12657         length and body length to unsigned. Add the new fields from the
12658         spec
12659         (_dbus_message_loader_return_buffer): unsigned header/body len
12660
12661 2003-01-30  Havoc Pennington  <hp@pobox.com>
12662
12663         * dbus/dbus-auth.c: rework to use only REJECTED, no
12664         MECHANISMS
12665
12666         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12667         use REJECTED, suggested by Mark McLoughlin
12668
12669 2003-01-30  Havoc Pennington  <hp@pobox.com>
12670
12671         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12672         a better way to report errors here. e.g.  "unix address lacks
12673         path" or something. also "no such file" when the path doesn't
12674         exist, etc.
12675
12676         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12677         leaking list nodes
12678         (dbus_parse_address): add @todo about documenting address format,
12679         and allowing , and ; to be escaped
12680
12681 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12682
12683         * dbus/Makefile.am:
12684         Add dbus-address.[ch]
12685
12686         * dbus/dbus-address.c: (dbus_address_entry_free),
12687         (dbus_address_entries_free), (create_entry),
12688         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12689         (dbus_parse_address), (_dbus_address_test):
12690         * dbus/dbus-address.h:
12691         New files for dealing with address parsing.
12692
12693         * dbus/dbus-connection.c:
12694         Document timeout functions.
12695
12696         * dbus/dbus-message.c:
12697         Document dbus_message_new_from_message.
12698
12699         * dbus/dbus-server-debug.c:
12700         Document.
12701
12702         * dbus/dbus-server.c: (dbus_server_listen):
12703         Parse address and use correct server implementation.
12704
12705         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12706         * dbus/dbus-string.h:
12707         New function with test.
12708
12709         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12710         * dbus/dbus-test.h:
12711         Add address tests.
12712
12713         * dbus/dbus-transport-debug.c:
12714         Document.
12715
12716         * dbus/dbus-transport.c: (_dbus_transport_open):
12717         Parse address and use correct transport implementation.
12718
12719 2003-01-30  Havoc Pennington  <hp@pobox.com>
12720
12721         * dbus/dbus-message.c: use message->byte_order instead of
12722         DBUS_COMPILER_BYTE_ORDER throughout.
12723         (dbus_message_create_header): pad header to align the
12724         start of the body of the message to 8-byte boundary
12725
12726         * dbus/dbus-marshal.h: make all the demarshalers take const
12727         DBusString arguments.
12728
12729         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12730         validate message args here, so we don't have to do slow validation
12731         later, and so we catch bad messages as they are incoming. Also add
12732         better checks on header_len and body_len. Also fill in
12733         message->byte_order
12734
12735         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12736         implemented properly)
12737         (_dbus_string_validate_nul): new function to check all-nul
12738
12739         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12740         get_arg_end_pos and remove all validation
12741         (_dbus_marshal_validate_arg): actually do validation here.
12742
12743 2003-01-29  Havoc Pennington  <hp@pobox.com>
12744
12745         * dbus/dbus-message.c (check_message_handling): fix assertion
12746         failure on set_client_serial
12747
12748 2003-01-28  Havoc Pennington  <hp@pobox.com>
12749
12750         * dbus/dbus-server-debug.c: Add doc section comments
12751
12752         * dbus/dbus-transport-debug.c: add doc section comments
12753
12754 2003-01-28  Havoc Pennington  <hp@redhat.com>
12755
12756         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12757         the reverse order from how I had it
12758         (_dbus_string_base64_encode): reverse encoding order. I was
12759         basically byteswapping everything during encoding.
12760
12761 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12762
12763         * dbus/dbus-connection-internal.h:
12764         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12765         (_dbus_connection_remove_timeout):
12766         Add functions for adding and removing timeouts.
12767
12768         * dbus/dbus-message.c: (dbus_message_new_from_message):
12769         Add new function that takes a message and creates an exact
12770         copy of it, but with the refcount set to 1.
12771         (check_message_handling):
12772         Fix build error.
12773
12774         * dbus/dbus-server-protected.h:
12775         * dbus/dbus-server.c: (_dbus_server_init_base),
12776         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12777         (dbus_server_set_timeout_functions):
12778         (_dbus_server_remove_timeout):
12779         New functions so that a server can add and remove timeouts.
12780
12781         (dbus_server_listen):
12782         Add commented out call to dbus_server_debug_new.
12783
12784         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12785         Actually set the handler, doh.
12786
12787         * dbus/dbus-transport.c: (_dbus_transport_open):
12788         Add commented out call to dbus_transport_debug_client_new.
12789
12790         * dbus/Makefile.am:
12791         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12792
12793 2003-01-28  Havoc Pennington  <hp@pobox.com>
12794
12795         * dbus/dbus-message.c (check_message_handling): function to check
12796         on the loaded message, iterates over it etc.
12797
12798 2003-01-28  Havoc Pennington  <hp@pobox.com>
12799
12800         * test/Makefile.am (dist-hook): fix make distdir
12801
12802         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12803
12804 2003-01-27  Havoc Pennington  <hp@pobox.com>
12805
12806         * dbus/dbus-mempool.c (time_for_size): replace printf with
12807         _dbus_verbose
12808
12809         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12810         empty lines; fix the SAVE_LENGTH stuff to be
12811         START_LENGTH/END_LENGTH so it actually works; couple other
12812         bugfixes
12813
12814         * test/Makefile.am (dist-hook): add dist-hook for .message files
12815
12816         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12817         can be constant or locked.
12818         (_dbus_string_free): allow freeing a const string as
12819         documented/intended
12820
12821         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12822
12823         * dbus/dbus-test-main.c (main): take an argument which is the
12824         directory containing test data
12825
12826         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12827         argument to this and load all the messages in test/data/
12828         checking that they can be loaded or not loaded as appropriate.
12829
12830 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12831
12832         * bus/dispatch.c: (bus_dispatch_message_handler):
12833         Dispatch messages sent to services.
12834
12835         * bus/driver.c: (bus_driver_send_service_deleted),
12836         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12837         (bus_driver_send_service_acquired):
12838         Add helper functions for sending service related messages.
12839
12840         (bus_driver_send_welcome_message):
12841         Send HELLO_REPLY instead of WELCOME.
12842
12843         (bus_driver_handle_list_services):
12844         Send LIST_SERVICES_REPLY instead of SERVICES.
12845
12846         (bus_driver_handle_own_service),
12847         (bus_driver_handle_service_exists):
12848         New message handlers.
12849
12850         (bus_driver_handle_message):
12851         Invoke new message handlers.
12852
12853         (bus_driver_remove_connection):
12854         Don't remove any services here since that's done automatically
12855         by bus_service_remove_owner now.
12856
12857         * bus/driver.h:
12858         New function signatures.
12859
12860         * bus/services.c: (bus_service_add_owner):
12861         Send ServiceAcquired message if we're the only primary owner.
12862
12863         (bus_service_remove_owner):
12864         Send ServiceAcquired/ServiceLost messages.
12865
12866         (bus_service_set_prohibit_replacement),
12867         (bus_service_get_prohibit_replacement):
12868         Functions for setting prohibit replacement.
12869
12870         (bus_service_has_owner):
12871         New function that checks if a connection is in the owner queue of
12872         a certain service.
12873
12874         * bus/services.h:
12875         Add new function signatures.
12876
12877         * dbus/dbus-list.c: (_dbus_list_test):
12878         Add tests for _dbus_list_remove_last and traversing the list backwards.
12879
12880         * dbus/dbus-list.h:
12881         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12882         go any further, so return NULL then.
12883
12884         * dbus/dbus-protocol.h:
12885         Add new messages, service flags and service replies.
12886
12887 2003-01-26  Havoc Pennington  <hp@pobox.com>
12888
12889         * dbus/dbus-message-builder.c: implement, completely untested.
12890
12891         * test/data/*: add data to be used in testing.
12892         ".message" files are our simple loadable text format.
12893         ".message-raw" will be binary dumps of messages.
12894
12895         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12896
12897 2003-01-26  Havoc Pennington  <hp@pobox.com>
12898
12899         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12900
12901         * dbus/dbus-errors.c (dbus_result_to_string): add
12902         file errors
12903
12904         * dbus/dbus-message-builder.c: new file, will contain code to load
12905         up messages from files. Not implemented yet.
12906
12907 2003-01-26  Havoc Pennington  <hp@pobox.com>
12908
12909         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12910         the sender by setting to NULL
12911
12912 2003-01-26  Havoc Pennington  <hp@pobox.com>
12913
12914         The unit tests pass, but otherwise untested.  If it breaks, the
12915         tests should have been better. ;-)
12916
12917         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12918         the connection.
12919
12920         * dbus/dbus-message.c: redo everything so we maintain
12921         message->header as the only copy of the various fields.
12922         This avoids the possibility of out-of-memory in some cases,
12923         for example dbus_message_lock() can't run out of memory anymore,
12924         and avoids extra copying. Figured I may as well go ahead and do
12925         this since it was busted for dbus_message_lock to not return
12926         failure on OOM, and dbus_message_write_header was totally
12927         unchecked for OOM. Also fixed some random other bugs.
12928
12929         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12930         that strings are nul-terminated. Also, end_pos can be equal
12931         to string length just not greater than, I think.
12932         (_dbus_marshal_set_int32): new function
12933         (_dbus_marshal_set_uint32): new function
12934         (_dbus_marshal_set_string): new function
12935
12936         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12937         a warning, init timeout_list to NULL
12938         (dbus_connection_send_message): don't use uninitialized variable
12939         "serial"
12940
12941         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12942
12943 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12944
12945         * bus/driver.c: (bus_driver_handle_hello),
12946         (bus_driver_send_welcome_message):
12947         Plug leaks
12948
12949 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12950
12951         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12952         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12953         (dbus_connection_unref):
12954         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12955         * dbus/dbus-message.c: (dbus_message_unref),
12956         Plug memory leaks.
12957
12958         (dbus_message_get_fields):
12959         Remove debugging printout.
12960
12961         (_dbus_message_loader_return_buffer):
12962         Don't store the header string.
12963
12964         (_dbus_message_test):
12965         Plug leaks.
12966
12967 2003-01-26  Richard Hult  <rhult@codefactory.se>
12968
12969         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12970         the file descriptor list, since it can change under us.
12971
12972 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12973
12974         * glib/dbus-gmain.c: (dbus_connection_prepare),
12975         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12976         (remove_watch), (dbus_connection_hookup_with_g_main):
12977         Rewrite the glib handling to use its own GSource instead of a
12978         GIOChannel so we can catch messages put in the queue while waiting
12979         for a reply.
12980
12981 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12982
12983         * bus/Makefile.am:
12984         * bus/connection.c: (connection_disconnect_handler),
12985         (connection_watch_callback), (bus_connection_setup):
12986         * bus/dispatch.c: (send_one_message),
12987         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12988         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12989         * bus/dispatch.h:
12990         * bus/driver.c: (bus_driver_send_service_deleted),
12991         (bus_driver_send_service_created), (bus_driver_handle_hello),
12992         (bus_driver_send_welcome_message),
12993         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12994         (bus_driver_handle_message):
12995         * bus/driver.h:
12996         Refactor code, put the message dispatching in its own file. Use
12997         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12998         is disconnected.
12999
13000 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13001
13002         * dbus/dbus-internals.h:
13003         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13004
13005         * dbus/dbus-message.c: (dbus_message_get_sender):
13006         * dbus/dbus-message.h:
13007         Implement dbus_message_get_sender.
13008
13009         * dbus/dbus-protocol.h:
13010         Add message and service defines.
13011
13012 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13013
13014         * dbus/dbus-connection.c: (dbus_connection_send_message):
13015         * dbus/dbus-message-internal.h:
13016         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13017         (dbus_message_write_header):
13018         Remove _dbus_messag_unlock and don't set the client serial on a
13019         message if one already exists.
13020
13021 2003-01-24  Havoc Pennington  <hp@pobox.com>
13022
13023         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13024         list_pool
13025
13026         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13027         on OOM
13028
13029 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13030
13031         * dbus/dbus-list.c: (alloc_link), (free_link):
13032         Use a memory pool for the links.
13033
13034 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13035
13036         * bus/connection.c: (bus_connection_foreach):
13037         * bus/connection.h:
13038         Add new bus_connection_foreach function.
13039
13040         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13041         Add function that broadcasts a message to all clients.
13042
13043         (bus_driver_send_service_created), (bus_driver_handle_hello),
13044         (bus_driver_send_welcome_message),
13045         (bus_driver_handle_list_services), (bus_driver_message_handler):
13046         Implement functions that take care of listing services, and notifying
13047         clients when new services are created.
13048
13049         * bus/services.c: (bus_services_list):
13050         * bus/services.h:
13051         Add new function that returns an array of strings with the currently
13052         registered services.
13053
13054         * glib/dbus-glib.h:
13055         * glib/dbus-gmain.c:
13056         Update copyright year.
13057
13058 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13059
13060         * dbus/dbus-connection.c: (dbus_connection_send_message):
13061         Unlock the message in case it was sent earlier.
13062
13063         (dbus_connection_send_message_with_reply_and_block):
13064         Remove the reply message from the list.
13065
13066         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13067         Set array_len and new_pos correctly.
13068
13069         (_dbus_marshal_test):
13070         Remove debug output.
13071
13072         * dbus/dbus-message-internal.h:
13073         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13074         New function that returns the reply serial.
13075
13076         (_dbus_message_unlock):
13077         New function that unlocks a message and resets its header.
13078
13079         (dbus_message_append_string_array),
13080         (dbus_message_get_fields_valist),
13081         (dbus_message_iter_get_field_type),
13082         (dbus_message_iter_get_string_array),
13083         (dbus_message_get_fields),
13084         (dbus_message_append_fields_valist):
13085         Handle string arrays.
13086
13087         (dbus_message_set_sender):
13088         Make this function public since the bus daemon needs it.
13089
13090         (decode_header_data):
13091         Set the reply serial to -1 initially.
13092
13093         * dbus/dbus-message.h:
13094         Add dbus_message_set_sender.
13095
13096 2003-01-24  Havoc Pennington  <hp@pobox.com>
13097
13098         * doc/dbus-specification.sgml: add some stuff
13099
13100 2003-01-22  Havoc Pennington  <hp@pobox.com>
13101
13102         * doc/dbus-specification.sgml: Start to document the protocol.
13103
13104 2003-01-22  Havoc Pennington  <hp@pobox.com>
13105
13106         * dbus/dbus-connection.c
13107         (dbus_connection_send_message_with_reply_and_block): add some @todo
13108
13109         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13110
13111 2003-01-21  Havoc Pennington  <hp@pobox.com>
13112
13113         (patch untested because can't compile)
13114
13115         * bus/driver.c (create_unique_client_name): make this function
13116         never recycle client names. Also, caller should initialize
13117         the DBusString.
13118
13119         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13120
13121 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13122
13123         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13124         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13125         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13126         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13127         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13128         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13129         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13130         * dbus/dbus-marshal.h:
13131         * dbus/dbus-protocol.h:
13132         Add support for marshalling and demarshalling integer, double
13133         and string arrays.
13134
13135 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13136
13137         * bus/Makefile.am:
13138         Add driver.[ch]
13139
13140         * bus/connection.c: (connection_disconnect_handler):
13141         Remove the connection from the bus driver's list.
13142
13143         (connection_watch_callback): Dispatch messages.
13144
13145         (free_connection_data): Free connection name.
13146
13147         (bus_connection_setup): Add connection to the bus driver's list.
13148         (bus_connection_remove_owned_service):
13149         (bus_connection_set_name), (bus_connection_get_name):
13150         Add functions for setting and getting the connection's name.
13151
13152         * bus/connection.h:
13153         Add function headers.
13154
13155         * bus/driver.c: (create_unique_client_name),
13156         (bus_driver_handle_hello_message),
13157         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13158         (bus_driver_add_connection), (bus_driver_remove_connection):
13159         * bus/driver.h:
13160         * bus/main.c:
13161         * bus/services.c: (bus_service_free):
13162         * bus/services.h:
13163         New file that handles communication and registreation with the bus
13164         itself.
13165
13166 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13167
13168         * dbus/dbus-connection.c: (dbus_connection_send_message):
13169         Add a new client_serial parameter.
13170
13171         (dbus_connection_send_message_with_reply):
13172         Remove a @todo since we've implemented the blocking function.
13173
13174         (dbus_connection_send_message_with_reply_and_block):
13175         New function that sends a message and waits for a reply and
13176         then returns the reply.
13177
13178         * dbus/dbus-connection.h:
13179         Add new functions.
13180
13181         * dbus/dbus-errors.c: (dbus_result_to_string):
13182         * dbus/dbus-errors.h:
13183         Add new DBUS_RESULT.
13184
13185         * dbus/dbus-message-internal.h:
13186         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13187         (_dbus_message_set_sender), (dbus_message_write_header),
13188         (dbus_message_new_reply), (decode_header_data),
13189         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13190         * dbus/dbus-message.h:
13191         Add new functions that set the reply serial and sender.
13192         Also marshal and demarshal them correctly and add test.
13193
13194         * dbus/dbus-protocol.h:
13195         Add new DBUS_MESSAGE_TYPE_SENDER.
13196
13197         * glib/dbus-glib.h:
13198         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13199         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13200         (dbus_connection_hookup_with_g_main):
13201         * glib/test-dbus-glib.c: (main):
13202         Rewrite to use GIOChannel and remove the GSource crack.
13203
13204         * test/echo-client.c: (main):
13205         * test/watch.c: (check_messages):
13206         Update for changed APIs
13207
13208 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13209
13210         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13211
13212         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13213         Create a DBusTimeoutList.
13214         (dbus_connection_set_timeout_functions): Add new function to
13215         set timeout callbacks
13216
13217         * dbus/dbus-connection.h: Add public DBusTimeout API.
13218
13219         * dbus/dbus-message.c: (dbus_message_get_service):
13220         * dbus/dbus-message.h:  New function.
13221
13222         * dbus/dbus-server.c: Fix small doc typo.
13223
13224         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13225
13226 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13227
13228         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13229         of the string, just as long as specified.
13230
13231 2003-01-19  Havoc Pennington  <hp@pobox.com>
13232
13233         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13234         new function
13235
13236         * dbus/dbus-server.c (dbus_server_set_max_connections)
13237         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13238         keep track of current number of connections, and add API for
13239         setting a max (but haven't implemented enforcing the max yet)
13240
13241 2003-01-18  Havoc Pennington  <hp@pobox.com>
13242
13243         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13244         reading/writing if read_watch != NULL or write_watch != NULL.
13245
13246         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13247         the message loader code to actually load message->header and
13248         message->body into the newly-created message.
13249
13250         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13251         in OOM case
13252
13253         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13254         (dbus_connection_get_max_message_size)
13255         (dbus_connection_set_max_live_messages_size)
13256         (dbus_connection_get_max_live_messages_size): implement some
13257         resource limitation functions
13258
13259         * dbus/dbus-resources.c: new file implementing some of the
13260         resource limits stuff
13261
13262         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13263         missing docs, add @todo to handle OOM etc.
13264
13265         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13266         docs
13267
13268 2003-01-18  Havoc Pennington  <hp@pobox.com>
13269
13270         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13271         connection if it hasn't been already.
13272
13273         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13274         replace with DisconnectFunction.
13275
13276 2003-01-18  Havoc Pennington  <hp@pobox.com>
13277
13278         Building --disable-verbose-mode --disable-asserts --disable-tests
13279         cuts the library from 112K to 45K or so
13280
13281         * configure.in: check for varargs macro support,
13282         add --enable-verbose-mode, --enable-asserts.
13283
13284         * dbus/dbus-internals.h (_dbus_assert): support
13285         DBUS_DISABLE_ASSERT
13286         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13287
13288 2003-01-18  Havoc Pennington  <hp@pobox.com>
13289
13290         * dbus/dbus-test.c: include config.h so that tests actually run
13291
13292         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13293         so the failure mode when that assumption fails will be plenty
13294         obvious.
13295
13296 2003-01-18  Havoc Pennington  <hp@pobox.com>
13297
13298         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13299
13300         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13301         the distribution
13302
13303         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13304         since we don't want to use those in make check
13305
13306 2003-01-15  Havoc Pennington  <hp@redhat.com>
13307
13308         Release 0.2
13309
13310         * NEWS: update
13311
13312 2003-01-15  Havoc Pennington  <hp@redhat.com>
13313
13314         * test/Makefile.am: fix so that test source code ends up in the
13315         distribution on make distcheck
13316
13317 2003-01-15  Havoc Pennington  <hp@redhat.com>
13318
13319         Release 0.1.
13320
13321         * NEWS: update
13322
13323 2003-01-15  Havoc Pennington  <hp@redhat.com>
13324
13325         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13326         fix build when --disable-tests
13327
13328         * Makefile.am (EXTRA_DIST): put HACKING in here
13329
13330         * HACKING: document procedure for making a tarball release.
13331
13332 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13333
13334         * bus/connection.c: (connection_error_handler),
13335         (bus_connection_setup):
13336         * bus/main.c: (main):
13337         Make sure that the DBusConnectionData struct is NULLed
13338         out to prevent a segfault.
13339
13340         * dbus/dbus-errors.c: (dbus_result_to_string):
13341         * dbus/dbus-errors.h:
13342         * dbus/dbus-message.c: (dbus_message_get_fields),
13343         (dbus_message_get_fields_valist), (_dbus_message_test):
13344         * dbus/dbus-message.h:
13345         Make dbus_message_get_fields return a result code so we can
13346         track invalid fields as well as oom.
13347
13348 2003-01-11  Havoc Pennington  <hp@pobox.com>
13349
13350         * configure.in: change --enable-test/--enable-ansi action-if-given
13351         to enable_foo=$enableval instead of enable_foo=yes
13352
13353 2003-01-08  Havoc Pennington  <hp@pobox.com>
13354
13355         * dbus/dbus-string.c (_dbus_string_align_length): new function
13356
13357         * dbus/dbus-test-main.c: move main() for test app here
13358         * dbus/dbus-test.c
13359         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13360         symbol to run tests, because dbus-test isn't in the main
13361         library
13362
13363         Code review nitpicks.
13364
13365         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13366         for people with narrow emacs ;-). Assert client_serial was filled
13367         in. Assert message->name != NULL.
13368         (dbus_message_append_fields): have "first_field_type" arg separate
13369         from va list, needed for C++ binding that also uses varargs IIRC
13370         and helps with type safety
13371         (dbus_message_new): add @todo about using DBusString to store
13372         service/name internally
13373         (dbus_message_new): don't leak ->service and ->name on OOM later
13374         in the function
13375         (dbus_message_unref): free the service name
13376         (dbus_message_get_fields): same change to varargs
13377         i.e. first_field_type
13378         (_dbus_message_loader_return_buffer): assert that the message data
13379         is aligned (if not it's a bug in our code). Put in verbose griping
13380         about why we set corrupted = TRUE.
13381         (decode_header_data): add FIXME that char* is evil.  Was going to
13382         add FIXME about evil locale-specific string.h strncmp, but just
13383         switched to wacky string-as-uint32 optimization. Move check for
13384         "no room for field name" above get_const_data_len() to avoid
13385         assertion failure in get_const_data_len if we have trailing 2
13386         bytes or the like. Check for service and name fields being
13387         provided twice. Don't leak service/name on error. Require field
13388         names to be aligned to 4 bytes.
13389
13390         * dbus/dbus-marshal.c: move byte swap stuff to header
13391         (_dbus_pack_int32): uscore-prefix
13392         (_dbus_unpack_int32): uscore-prefix
13393         (_dbus_unpack_uint32): export
13394         (_dbus_demarshal_string): add @todo complaining about use of
13395         memcpy()
13396         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13397         handling allowing corrupt data to go unchecked
13398
13399 2003-01-08  Havoc Pennington  <hp@redhat.com>
13400
13401         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13402         to the select() as needed for authentication. (should be using
13403         _dbus_poll() not select, but for another day)
13404
13405         * dbus/dbus.h: include dbus/dbus-protocol.h
13406
13407 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13408
13409         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13410         dbus-connection.h
13411
13412 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13413
13414         * dbus/dbus-internals.c: (_dbus_type_to_string):
13415         New function that returns a string describing a type.
13416
13417         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13418         * dbus/dbus-marshal.h:
13419         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13420         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13421         (dbus_message_iter_get_byte_array):
13422         * dbus/dbus-message.h:
13423         Add new convenience functions for appending and getting message fields.
13424         Also add demarshalling routines for byte arrays.
13425
13426 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13427
13428         * dbus/dbus-connection-internal.h:
13429         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13430         (_dbus_connection_get_next_client_serial),
13431         (dbus_connection_send_message):
13432         * dbus/dbus-internals.h:
13433         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13434         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13435         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13436         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13437         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13438         (_dbus_verbose_bytes), (_dbus_marshal_test):
13439         * dbus/dbus-marshal.h:
13440         * dbus/dbus-message-internal.h:
13441         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13442         (dbus_message_write_header), (_dbus_message_lock),
13443         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13444         (dbus_message_get_name), (dbus_message_append_int32),
13445         (dbus_message_append_uint32), (dbus_message_append_double),
13446         (dbus_message_append_string), (dbus_message_append_byte_array),
13447         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13448         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13449         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13450         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13451         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13452         (decode_header_data), (_dbus_message_loader_return_buffer),
13453         (message_iter_test), (_dbus_message_test):
13454         * dbus/dbus-message.h:
13455         * dbus/dbus-protocol.h:
13456         * dbus/dbus-test.c: (main):
13457         * dbus/dbus-test.h:
13458         * glib/test-dbus-glib.c: (message_handler), (main):
13459         * test/echo-client.c: (main):
13460         * test/watch.c: (check_messages):
13461         Make messages sendable and receivable for real.
13462
13463 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13464
13465         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13466         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13467         * dbus/dbus-message.c: (dbus_message_append_int32),
13468         (dbus_message_append_uint32), (dbus_message_append_double),
13469         (dbus_message_append_string), (dbus_message_append_byte_array):
13470         Handle OOM restoration.
13471
13472 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13473
13474         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13475         (_dbus_demarshal_string), (_dbus_marshal_test):
13476         * dbus/dbus-marshal.h:
13477         * dbus/dbus-message.c: (dbus_message_get_name),
13478         Document these functions.
13479
13480         (dbus_message_append_int32), (dbus_message_append_uint32),
13481         (dbus_message_append_double), (dbus_message_append_string),
13482         (dbus_message_append_byte_array):
13483         * dbus/dbus-message.h:
13484         Add functions for adding message fields of different types.
13485
13486         * dbus/dbus-protocol.h:
13487         Add the different types.
13488
13489 2003-01-05  Havoc Pennington  <hp@pobox.com>
13490
13491         * bus/connection.c: implement routines for handling connections,
13492         first thing is keeping a list of owned services on each connection
13493         and setting up watches etc.
13494
13495         * bus/services.c: implement a mapping from service names to lists
13496         of connections
13497
13498         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13499
13500         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13501         to use static mutexes for global data
13502
13503         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13504         collection of functions to set/get application-specific data
13505         on the DBusConnection.
13506
13507 2003-01-04  Havoc Pennington  <hp@pobox.com>
13508
13509         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13510         (_dbus_poll): new function
13511
13512         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13513         copied from GLib
13514
13515         * bus/loop.c: initial code for the daemon main loop
13516
13517 2003-01-04  Havoc Pennington  <hp@pobox.com>
13518
13519         * test/watch.c (error_handler): make it safe if the error handler
13520         is called multiple times (if we s/error handler/disconnect
13521         handler/ we should just guarantee it's called only once)
13522
13523         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13524         error handler on disconnect (it's quite possible we should
13525         just change the error handler to a "disconnect handler," I'm
13526         not sure we have any other meaningful errors)
13527
13528         * configure.in: check for getpwnam_r
13529
13530         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13531         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13532         mechanism as in SASL spec, using socket credentials
13533
13534         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13535         (_dbus_send_credentials_unix_socket): new function
13536
13537         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13538         dbus_accept()
13539         (_dbus_write): only check errno if <0 returned
13540         (_dbus_write_two): ditto
13541
13542 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13543
13544         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13545         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13546         (_dbus_marshal_test):
13547         * dbus/dbus-marshal.h:
13548         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13549         to _dbus_marshal_utf8_string. Also fix some tests.
13550
13551 2002-12-28  Harri Porten  <porten@kde.org>
13552
13553         * configure.in: added check for C++ compiler and a very cheesy
13554         check for the Qt integration
13555
13556         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13557
13558         * qt/Makefile.am: added
13559
13560         * qt/.cvsignore: added
13561
13562         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13563         latter, added #ifdef QT_THREAD_SUPPORT guard.
13564
13565         * dbus/Makefile.am: added missing headers for make dist
13566
13567 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13568
13569         * dbus/Makefile.am: fixup export-symbols-regex.
13570
13571 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13572
13573         * acinclude.m4: Add this file and put the
13574         PKG_CHECK_MODULE macro in it.
13575
13576 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13577
13578         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13579         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13580         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13581         (_dbus_marshal_test):
13582         Make the demarshalling routines align the pos argument.
13583         Add string marshalling tests and fix the obvious bugs
13584         discovered.
13585
13586 2002-12-26  Havoc Pennington  <hp@pobox.com>
13587
13588         * dbus/dbus-auth.c: fixes fixes fixes
13589
13590         * dbus/dbus-transport-unix.c: wire up support for
13591         encoding/decoding data on the wire
13592
13593         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13594         (_dbus_auth_decode_data): append to target string
13595         instead of nuking it.
13596
13597 2002-12-26  Havoc Pennington  <hp@pobox.com>
13598
13599         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13600         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13601         doh
13602
13603         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13604         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13605         now). Main point is because I wanted unpack_uint32 to implement
13606         _dbus_verbose_bytes
13607         (_dbus_verbose_bytes): new function
13608
13609         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13610
13611         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13612         mechanism to handle a corrupt message stream
13613         (_dbus_message_loader_new): fix preallocation to only prealloc,
13614         not prelengthen
13615
13616         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13617         (_dbus_string_test): enhance tests for copy/move and fix the
13618         functions
13619
13620         * dbus/dbus-transport-unix.c: Hold references in more places to
13621         avoid reentrancy problems
13622
13623         * dbus/dbus-transport.c: ditto
13624
13625         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13626         leak reference count in no-message case
13627
13628         * test/watch.c (do_mainloop): handle adding/removing watches
13629         during iteration over the watches. Also, ref the connection/server
13630         stored on a watch, so we don't try to mangle a destroyed one.
13631
13632         * dbus/dbus-transport-unix.c (do_authentication): perform
13633         authentication
13634
13635         * dbus/dbus-auth.c (get_state): add a state
13636         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13637         (_dbus_auth_get_unused_bytes): append the unused bytes
13638         to the passed in string, rather than prepend
13639
13640         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13641         the auth conversation DBusAuth
13642
13643         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13644         (_dbus_transport_new_for_domain_socket): when creating a
13645         transport, pass in whether it's a client-side or server-side
13646         transport so we know which DBusAuth to create
13647
13648 2002-12-03  Havoc Pennington  <hp@pobox.com>
13649
13650         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13651         _after_ finalizing the derived members
13652         (unix_connection_set): unref watch if we fail to add it
13653
13654         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13655         transport first, so that the connection owned by the
13656         transport will be valid as the transport finalizes.
13657
13658         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13659         if necessary, and remove watches from the connection.
13660
13661         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13662
13663 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13664
13665         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13666         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13667         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13668         (_dbus_marshal_test):
13669         * dbus/dbus-marshal.h:
13670         Add string marshal functions and have the demarshal functions
13671         return the new position.
13672
13673 2002-12-25  Havoc Pennington  <hp@pobox.com>
13674
13675         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13676         it is a simple protocol that just maps directly to SASL.
13677
13678         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13679         initial implementation, not actually used yet.
13680
13681         * dbus/dbus-string.c (_dbus_string_find): new function
13682         (_dbus_string_equal): new function
13683         (_dbus_string_base64_encode): new function
13684         (_dbus_string_base64_decode): new function
13685
13686 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13687
13688         * dbus/Makefile.am:
13689         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13690         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13691         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13692         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13693         * dbus/dbus-marshal.h:
13694         * dbus/dbus-protocol.h:
13695         * dbus/dbus-test.c: (main):
13696         * dbus/dbus-test.h:
13697         Add un-optimized marshalling/demarshalling routines.
13698
13699 2002-12-25  Harri Porten  <porten@kde.org>
13700
13701         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13702
13703 2002-12-24  Zack Rusin  <zack@kde.org>
13704
13705         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13706         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13707         main loop stuff
13708
13709 2002-12-24  Havoc Pennington  <hp@pobox.com>
13710
13711         * glib/dbus-gthread.c: fix include
13712
13713         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13714         I think glib API needs to change, though, as you don't
13715         want to use DBusMessageFunction, you want to use the
13716         DBusMessageHandler object. Probably
13717         dbus_connection_open_with_g_main_loop()
13718         and dbus_connection_setup_g_main_loop() or something like that
13719         (but think of better names...) that just create a connection
13720         that has watch/timeout functions etc. already set up.
13721
13722         * dbus/dbus-connection.c
13723         (dbus_connection_send_message_with_reply): new function just to
13724         show how the message handler helps us deal with replies.
13725
13726         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13727
13728         * dbus/dbus-string.c (_dbus_string_test): free a string that
13729         wasn't
13730
13731         * dbus/dbus-hash.c: use memory pools for the hash entries
13732         (rebuild_table): be more paranoid about overflow, and
13733         shrink table when we can
13734         (_dbus_hash_test): reduce number of sprintfs and write
13735         valid C89. Add tests for case where we grow and then
13736         shrink the hash table.
13737
13738         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13739
13740         * dbus/dbus-connection.c (dbus_connection_register_handler)
13741         (dbus_connection_unregister_handler): new functions
13742
13743         * dbus/dbus-message.c (dbus_message_get_name): new
13744
13745         * dbus/dbus-list.c: fix docs typo
13746
13747         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13748         an object representing a handler for messages.
13749
13750 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13751
13752         * glib/dbus-glib.h:
13753         * glib/dbus-gthread.c: (dbus_gthread_init):
13754         Don't use the gdbus prefix for public functions.
13755
13756 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13757
13758         * Makefile.am:
13759         * configure.in:
13760         Add GLib checks and fixup .pc files
13761
13762         * glib/Makefile.am:
13763         * glib/dbus-glib.h:
13764         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13765         (gdbus_connection_check), (gdbus_connection_dispatch),
13766         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13767         (dbus_connection_gsource_new):
13768         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13769         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13770         * glib/test-dbus-glib.c: (message_handler), (main):
13771         Add GLib support.
13772
13773 2002-12-15  Harri Porten  <porten@kde.org>
13774
13775         * autogen.sh: check for libtoolize before attempting to use it
13776
13777         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13778         struct.
13779
13780         * .cvsignore: ignore more stamp files
13781
13782         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13783
13784         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13785         without make install.
13786
13787 2002-12-15  Havoc Pennington  <hp@pobox.com>
13788
13789         * dbus/dbus-threads.c: add thread stubs that a higher library
13790         layer can fill in. e.g. the GLib wrapper might fill them in with
13791         GThread stuff. We still need to use this thread API to
13792         thread-safe-ize the library.
13793
13794 2002-12-12  Havoc Pennington  <hp@pobox.com>
13795
13796         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13797         below new interfaces and include fewer system headers.
13798
13799         * dbus/dbus-sysdeps.c (_dbus_read): new function
13800         (_dbus_write): new function
13801         (_dbus_write_two): new function
13802         (_dbus_connect_unix_socket): new function
13803         (_dbus_listen_unix_socket): new function
13804
13805         * dbus/dbus-message-internal.h: change interfaces to use
13806         DBusString
13807
13808 2002-12-11  Havoc Pennington  <hp@pobox.com>
13809
13810         * dbus/dbus-types.h: add dbus_unichar
13811
13812         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13813
13814         * dbus/dbus-connection.c (dbus_connection_send_message): return
13815         TRUE on success
13816
13817         * dbus/dbus-transport.c: include dbus-watch.h
13818
13819         * dbus/dbus-connection.c: include dbus-message-internal.h
13820
13821         * HACKING: add file with coding guidelines stuff.
13822
13823         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13824         handling here, for security purposes (as in vsftpd). Not actually
13825         using this class yet.
13826
13827         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13828         system/libc usage here, as in vsftpd, for ease of auditing (and
13829         should also simplify portability). Haven't actually moved all the
13830         system/libc usage into here yet.
13831
13832 2002-11-25  Havoc Pennington  <hp@pobox.com>
13833
13834         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13835         always print the first verbose message.
13836
13837 2002-11-24  Havoc Pennington  <hp@pobox.com>
13838
13839         * test/echo-client.c, test/echo-server.c: cheesy test
13840         clients.
13841
13842         * configure.in (AC_CHECK_FUNCS): check for writev
13843
13844         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13845         function
13846
13847         * dbus/dbus-list.c (_dbus_list_foreach): new function
13848
13849         * dbus/dbus-internals.c (_dbus_verbose): new function
13850
13851         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13852         representing a server that listens for connections.
13853
13854         * dbus/.cvsignore: create
13855
13856         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13857         public API for reporting errors
13858
13859         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13860         public object representing a connection that
13861         sends/receives messages. (Same object used for
13862         both client and server.)
13863
13864         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13865         Basic abstraction for different kinds of stream
13866         that we might read/write messages from.
13867
13868 2002-11-23  Havoc Pennington  <hp@pobox.com>
13869
13870         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13871         _DBUS_INT_MAX
13872
13873         * dbus/dbus-test.c (main): add list test, and include
13874         dbus-test.h as intended
13875
13876         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13877         (_dbus_hash_table_remove_int): return value indicates
13878         whether the entry existed to remove
13879
13880         * dbus/dbus-list.c: add linked list utility class,
13881         with docs and tests
13882
13883         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13884         array sometimes.
13885
13886 2002-11-23  Havoc Pennington  <hp@pobox.com>
13887
13888         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13889         DBUS_END_DECLS to nothing, that should fix this once and for all
13890
13891         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13892
13893         * dbus/dbus-message.c, dbus/dbus-hash.c:
13894         add some missing @brief
13895
13896 2002-11-23  Havoc Pennington  <hp@pobox.com>
13897
13898         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13899         to avoid confusing Doxygen
13900
13901         * dbus/dbus-hash.c: @} not }@
13902
13903         * dbus/dbus-message.c (struct DBusMessage): split out
13904         internals docs
13905
13906 2002-11-23  Havoc Pennington  <hp@pobox.com>
13907
13908         * configure.in: pile on more warning flags if using gcc
13909
13910         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13911         to document static functions
13912
13913         * configure.in: add summary to end of configure so it
13914         looks nice and attractive
13915
13916         * dbus/dbus-hash.c: finish implementation and write unit
13917         tests and docs
13918
13919         * configure.in: add --enable-tests to enable unit tests
13920
13921         * dbus/dbus-test.c: test program to run unit tests
13922         for all files in dbus/*, initially runs a test for
13923         dbus-hash.c
13924
13925         * dbus/dbus-internals.h: file to hold some internal utility stuff
13926
13927 2002-11-22  Havoc Pennington  <hp@redhat.com>
13928
13929         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13930         "ported" away from Tcl
13931
13932         * dbus/dbus-types.h: header for types such as dbus_bool_t
13933
13934 2002-11-22  Havoc Pennington  <hp@redhat.com>
13935
13936         * dbus/dbus.h: fixups for doc warnings
13937
13938         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13939         macros
13940         (QUIET): make it quiet so we can see warnings
13941
13942         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13943
13944 2002-11-22  Havoc Pennington  <hp@redhat.com>
13945
13946         * Makefile.am: include "Doxyfile" target in all-local
13947
13948         * configure.in: generate the Doxyfile
13949
13950         * Doxyfile.in: move Doxyfile here, so we can use
13951         configure to generate a Doxyfile with the right
13952         version number etc.
13953
13954 2002-11-22  Havoc Pennington  <hp@redhat.com>
13955
13956         * dbus/dbus-message.c: move inline docs into .c file
13957
13958         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13959         so all docs are under doc/
13960         (MAN_EXTENSION): generate man pages. Use extension
13961         ".3dbus" which matches ".3qt" on my system,
13962         I guess this is OK, I don't know really.
13963         (FILE_PATTERNS): look for .c files not .h, makes sense
13964         for plain C I think
13965
13966 2002-11-22  Havoc Pennington  <hp@pobox.com>
13967
13968         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13969         because any app can be a server, and any app can be a client,
13970         the bus is a special kind of server.
13971
13972 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13973
13974         * Doxyfile : adding. Still needs Makefile rules to be generated
13975         automatically (just run "doxygen" in the toplevel dir for now to
13976         generate docs)
13977
13978         * dbus/dbus-message.h : Adding sample docs (javadoc since
13979         resembles gtk-doc a little more)
13980
13981         * dbus/dbus.h : Adding sample docs
13982
13983 2002-11-21  Havoc Pennington  <hp@redhat.com>
13984
13985         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13986         so we can allow ourselves to include files directly,
13987         instead of having to use dbus.h
13988
13989         * dbus/dbus.h: fill in
13990
13991         * dbus/dbus-message.h: sketch out a sample header file.
13992         Include griping if you include it directly instead of
13993         via dbus.h
13994
13995         * dbus/dbus-macros.h: new file with macros for extern "C",
13996         TRUE/FALSE, NULL, etc.
13997
13998         * doc/file-boilerplate.c: put include guards in here
13999
14000 2002-11-21  Havoc Pennington  <hp@redhat.com>
14001
14002         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14003
14004         * COPYING: include the GPL as well, and license code
14005         under both AFL and GPL.
14006
14007 2002-11-21  Havoc Pennington  <hp@redhat.com>
14008
14009         * acconfig.h: get rid of this
14010
14011         * autogen.sh (run_configure): add --no-configure option
14012
14013         * configure.in: remove AC_ARG_PROGRAM to make
14014         autoconf complain less. add AC_PREREQ.
14015         add AC_DEFINE third arg.
14016
14017 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14018
14019         * doc/Makefile.am:
14020         Fix references so we can distcheck.
14021
14022 2002-11-21  Havoc Pennington  <hp@redhat.com>
14023
14024         * Initial module creation
14025