* configure.in: make sure the compiler supports -Wfloat-equal
[platform/upstream/dbus.git] / ChangeLog
1 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
2
3         * configure.in: make sure the compiler supports -Wfloat-equal
4         
5         * bus/dir-watch-dnotify.c: move functional code after 
6         variable declerations (C99 fix)  (patches from Jens Granseuer
7         <jensgr at gmx dot net>
8
9 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
10
11         * dbus/dbus-macros.h:
12         add #include <stddef.h> so that Sun compilers don't complain about
13         the defining NULL
14
15 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
16
17         * dbus/dbus-sysdeps.c:
18         * dbus/dbus-address.c:
19         * bus/activation.c:
20         * test/shell-test.c:
21         don't hardcode tmp directory (patch from Dave Meikle 
22         <dmk at davemeikle dot co dot uk>)
23
24 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
25
26         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
27         Change an assert to a detailed warning and abort.  
28         When allocator->lock != mutex it indicates that the user has failed
29         to initalize threads before using the D-Bus library.  This warning
30         helps the user identify the issue and fix their app.
31
32 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
33
34         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
35         with cleanups of bugs found from Coverity reports:
36
37         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
38         close the file on error to avoid a leak
39
40         * bus/expirelist.c (bus_expire_list_test):
41         Check for NULL on dbus_new0
42
43         * bus/activation.c (update_directory):
44         remove dead code
45
46         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
47         Fix some leaks
48
49         * bus/bus.c (process_config_every_time):
50         Fixed a leak
51
52         * bus/desktop-file.c (parse_key_value):
53         Fixed leak
54
55         * bus/selinux.c (bus_selinux_id_table_insert):
56         Fixed leak
57
58 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
59
60         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
61         remove dead code
62
63 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
64
65         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
66         #!/bin/bash
67
68 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
69
70         * Doxyfile.in: fix the INPUT line so we can generate docs 
71         when sourcedir != builddir (patch from Cygwin Ports maintainer
72         <yselkowitz at users dot sourceforge dot net>
73
74 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
75
76         * dbus/dbus-sysdeps.h:
77         * dbus/dbus-sysdeps.c: 
78         * dbus/dbus-string.c: 
79         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
80         GLib's function which does the same thing
81
82         * configure.in:
83         * bus/Makefile.am:
84         * bus/dir-watch-default.c:
85         * bus/dir-watch-dnotify.c:
86         * bus/dir-watch-kqueue.c:
87         Add kqueue directory watching for freebsd and split the directory
88         watching code into seperate files per method/arch
89         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
90
91 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
92
93         * configure.in:
94         * tools/Makefile.am:
95         * tools/dbus-launch.c:
96         * bus/Makefile.am:
97         allow --with-dbus-daemondir switch to be used to make the
98         daemon install to a seperate bindir like /usr/libexec
99         (patch from Brian Cameron <brian dot cameron at sun dot com)
100
101 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
102
103         * bus/Makefile.am (install-data-hook): removed the slash after 
104         $(DESTDIR) so we don't get the double slash which does not work
105         in windows (patch from Andras Porjesz 
106         <andras dot porjesz at siemens dot com>)
107
108 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
109
110         * dbus/dbus-sysdeps.h:
111         * dbus/dbus-sysdeps.c: 
112           add _dbus_printf_length (patch from Peter Kümmel 
113           <syntheticpp at gmx dot net>)
114
115 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
116
117         * dbus/dbus-internals.c: unistd.h is not used 
118         (_dbus_verbose_real): only enable verbose printing 
119         if DBUS_VERBOSE environment var is set to '1'
120         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
121
122 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
123
124         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
125         so we still compile on older gcc (patch from Frederic Peters 
126         <fpeters at 0d dot be>
127
128 2006-08-04  Havoc Pennington  <hp@redhat.com>
129
130         * configure.in: add -Wdeclaration-after-statement
131
132         * dbus/dbus-connection.c: change all the pending call stuff to
133         reflect the fact that pending call operations use the connection
134         lock
135
136         * dbus/dbus-pending-call.c: add locking here
137
138         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
139         field const consistent with how message field is done
140
141 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
142
143         * s/D-BUS/D-Bus/g
144
145 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
146
147         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
148         <in7y118 at public.uni-hamburg dot de> - fix invalid
149         read/write reported by valgrind
150
151 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
152
153         * Released 0.91
154
155 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
156
157         * dbus/dbus-connection.c:
158         (_dbus_connection_attach_pending_call_unlocked):
159         (connection_timeout_and_complete_all_pending_calls_unlocked):
160         Make sure we set timeout_added on pending calls to FALSE when
161         we remove the timeout from the connection
162
163 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
164
165         * Removed some extra bindings stuff lingering around (thanks timo)
166         * dbus-pendingcall.c (_dbus_pending_call_new): 
167         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
168         when we tried to take a lock on an already locked connection
169
170 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
171
172         * Released 0.90
173
174 2006-07-17  Havoc Pennington  <hp@redhat.com>
175
176         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
177         ints, reported by Owen Taylor
178
179 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
180
181         * doc/TODO:
182         * dbus/dbus-bus.c:
183         * dbus-errors.c:
184         * dbus/dbus-marshal-validate.c:
185           Removed TODO items which were fixed or are no longer relevent
186
187 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
188
189         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
190         Remove stray files from the stripped bindings
191
192 2006-07-16  Havoc Pennington  <hp@redhat.com>
193
194         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
195         Improve the error message on reply timeout
196
197 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
198
199         * Remove all bindings
200
201 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
202
203         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
204         and set pending_reply out arg to NULL is connection is disconnected
205         (connection_timeout_and_complete_all_pending_calls_unlocked): New
206         static method for cleaning up pending calls on disconnect
207         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
208         calls queued timeouts on disconnect 
209
210          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
211         Remove 
212
213 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
214
215         * bus/activation.[ch] (bus_activation_list_services): new function to 
216         get the list of services that can be activated
217
218         * bus/dispatch.c: test coverage for the new bus method
219         ListActivatableNames
220
221         * bus/driver.c: new bus method ListActivatableNames to get the list of
222         services that can be activated
223
224         * doc/dbus-specification.xml: ListActivatableNames method documentation
225
226 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
227         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
228         source files
229
230 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
231         * dbus/dbus-message-factory.c:
232         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
233
234 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
235         * dbus/dbus-connection-internal.h:
236         * dbus/dbus-connection.c:
237         * file dbus/dbus-pending-call.c:
238         * dbus/dbus-pending-call.h:
239         Make DBusPendingCall an opaque type even to D-Bus internals
240
241 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
242
243         * dbus/dbus-connection.h: remove connection_disconnect and replace with
244         connection_close
245
246         * dbus/dbus-connection.c: include dbus-bus.h
247         (_dbus_connection_read_write_dispatch): make static
248
249 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
250
251         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
252         function
253         (dbus_connection_dispatch): On disconnect unref any shared connections
254
255         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
256         for cleaning up shared connections on disconnect
257         (internal_bus_get): get a hard refrence to shared connections when
258         they are created
259         
260         * doc/TODO: Remove items which are no longer relevent or have been fixed
261         Split 1.0 todo items with a 0.90 freeze todo list
262  
263 2006-06-14  Ross Burton  <ross@openedhand.com>
264
265         * glib/dbus-gobject.c:
266         Free a leaking GArray (surely not!) in dbus_g_method_return.
267
268 2006-06-14  Ross Burton  <ross@openedhand.com>
269
270         * tools/Makefile.am:
271         * tools/dbus-monitor.c:
272         Don't use the GLib bindings in dbus-monitor (patch from Ralf
273         Habacker).
274         
275 2006-06-14  Ross Burton  <ross@openedhand.com>
276
277         * tools/dbus-print-message.c:
278         Also print the object path when outputting signals or method calls.
279
280 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
281
282         * qt/src/Makefile.am: install the qdbus.h header.
283         This allows people to actually use the installed code.
284
285 2006-06-12  Ross Burton  <ross@openedhand.com>
286
287         * glib/dbus-gproxy.c:
288         Don't leak a GArray when firing signals (thank Rob Taylor for review).
289
290 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
291
292         * Released 0.62
293
294 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
295
296         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
297         break pedantic builds. Closes bug 6043 (patch approved by
298         Havoc back in February).
299
300 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
301
302         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
303         that took a QDBusMessage parameter.
304         * qt/src/qdbusbus.h: Add a default flag for RequestName.
305         * qt/tools/dbus.cpp: Don't use automatic call because we might
306         be calling an async method: request a reply.
307
308 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
309
310         * test/qt/*: Update the testcases, including testing the new
311         functionality of sending null QByteArray and QString over the
312         bus. Add new headertest test and restore the old
313         qdbusxmlparser test.
314
315 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
316
317         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
318         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
319
320         * qt/examples/Makefile.am:
321         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
322         form.
323
324         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
325         QByteArray() (nulls) over the bus.
326         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
327         the one that has the signature suffix stripped.
328         * qt/src/qdbusreply.h: Make some methods const.
329
330 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
331
332         Patch from Timo Hoenig <thoenig@suse.de>.
333
334         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
335         required during build to EXTRA_DIST.
336         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
337         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
338         * configure.in: Fix "make dist", take care that the Makefile for
339         qt/dbus is being generated.
340
341 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
342
343         * bus/bus.c: Fix eavesdropping on method calls
344
345 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
346
347         * configure.in:
348         * dbus/dbus-userdb-util.c:
349         Add Solaris console owner patch from Artem Kachitchkine
350
351 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
352
353         * qt/Makfile.am:
354         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
355         reorganisation. Thanks to Timo Hoenig for pointing this out.
356
357 2006-06-06  Robert McQueen  <robot101@debian.org>
358
359         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
360           call to dbus_g_type_get_struct.
361
362 2006-06-06  Robert McQueen  <robot101@debian.org>
363
364         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
365           pointers were put into a GPtrArray-based specialised collection, and
366           then freed along with the array. GValues which you add into
367           collections or maps which have the NOCOPY flag set are assumed to not
368           belong to the caller, so rather than the existing pointer-stealing
369           semantics, they are copied instead. Given that the main consumers of
370           this abstraction are the bindings themselves, I don't think this is
371           too bad, but others should watch their choice of take vs set_static.
372
373 2006-06-06  Robert McQueen  <robot101@debian.org>
374
375         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
376           of g_slist_prepend not being used. Fixed copying of slist-based
377           specialised collections, then wrote a test case and found that it was
378           all broken. Went on to fix iterating and appending too. Good thing
379           nobody uses this code yet.
380
381 2006-06-06  Robert McQueen  <robot101@debian.org>
382
383         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
384           the iterators use gvalue_take_ptrarray_value (the GValues themselves
385           are discarded without unsetting, so it makes no difference whether
386           we take or set_static). Remove cases for G_TYPE_POINTER because
387           there really is nothing useful we can do with them in our
388           specialised types - we *need* boxed copy/free functions at the very
389           least.
390
391 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
392
393         * qt/dbus: Add directory. I had forgotten to add this
394         yesterday after the move...
395
396         * qt/examples/Makefile.am:
397         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
398
399         * qt/tools/Makefile.am:
400         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
401         Added feature to get and set properties.
402         Added validation of service, object path and interface names.
403
404         * qt/tools/dbusidl2cpp.cpp: Two new features:
405         1) Allow specifying both the header and the source file names,
406         by separating them with a colon.
407         2) Don't write an interface output if the -p switch wasn't
408         given, but the -a was.
409
410         * qt/src/*: Fix usage of Iterators and ConstIterators.
411         Fix shadowing of variables by other variables (-Wshadow).
412         Fix keyword-cleanliness in headers.
413         Fix ASCII-cast (QLatin1String, QLatin1Char).
414         Fix validation of member names.
415         Add extra checking of introspection data during XML parsing.
416         Various bug fixes.
417
418 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
419
420         * dbus/Makefile.am:
421         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
422         qt/dbus/qdbus.h now.
423
424 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
425
426         * configure.in: Make --disable-qt actually do
427           something. Patch inspired by Zack Rusin.
428
429 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
430
431         * qt/: Update to Subversion r548032.
432         This includes a big reorganisation of the files inside the
433         subdir.
434
435 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
436
437         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
438         clear:  
439         "Failed to connect to socket <host>:<port> <error>" instead of
440         "Failed to connect to socket <host>: <error>:<port>"
441
442         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
443         for a tcp transport. 
444
445 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
446
447         * qt/*: Update the QtDBus bindings up to revision 546310 in
448         Subversion.
449         This adds the dbuscpp2xml tool, that parses a C++ header and
450         outputs a D-BUS Introspection XML.
451
452 2006-05-21  Havoc Pennington  <hp@redhat.com>
453
454         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
455         is not NULL when it shouldn't be. Also a couple of possible fixes
456         for #4637 though I don't understand why the bug happens, to be
457         honest... also the object constructor has an assert name != NULL
458         and the name is only currently NULL for peer-to-peer proxies that 
459         I don't think anyone uses? So it should be asserting.
460         Anyway, for now at least see if we get an earlier assertion failure.
461
462         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
463         apparently broken code to be sure the tests fail and someone 
464         will fix them...
465
466 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
467
468         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
469         and arrays when they had a single element: has_next returns
470         false, even before you read the element. So, instead, check
471         the array length.
472
473 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
474
475         * qt/qdbusmessage.cpp:
476         * qt/qdbustypehelper_p.h:
477         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
478         the list is a const-reference
479
480 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
481
482         * Adding old doc patch that never got applied
483         
484         * dbus/bus.c (dbus_bus_add_match): Add documentation
485
486         * doc/dbus-specification.xml: Add documentation for the match rules
487           and the AddMatch and RemoveMatch methods
488
489 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
490
491         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
492         call (r535506)
493
494         * qt/dbusidl2cpp.cpp:
495         * qt/qdbusabstractadaptor.cpp:
496         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
497         sibling of the QDBusAbstractAdaptor objects instead of the
498         parent. (r535848)
499
500         * qt/dbusidl2cpp.cpp:
501         * qt/qdbusabstractinterface.cpp:
502         * qt/qdbusabstractinterface.h:
503         * qt/qdbusabstractinterface_p.h:
504         * qt/qdbusinterface.cpp: Make properties in interfaces
505         actually work. The code that was generated would not compile,
506         due to moc calls to functions that did not exist. They now
507         shall. (r536571)
508
509 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
510
511         * Makefile.am:
512         * configure.in:
513         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
514         Thanks to Brad Hards for providing the patch
515
516 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
517
518         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
519         call. (r535506)
520
521 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
522
523         * qt/examples/dbus.cpp: Enhance error messages and use
524         QDBusInterfacePtr.
525
526 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
527
528         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
529         and disable the copy operators. (r533772, r534746)
530
531         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
532
533         * qt/qdbusabstractinterface.cpp:
534         * qt/qdbusabstractinterface.h: Change the default call mode to
535         not use the event loop. Add convenience call() methods that
536         take a CallMode parameter. (r534042)
537
538         * qt/qdbusconnection.h: Change the default call mode to not
539         use the event loop. (r534042)
540
541         * qt/qdbusinterface.cpp:
542         * qt/qdbusinterface.h: Add a method to tell us if the
543         interface is valid (since we don't return a null pointer
544         anymore) (r534099)
545
546         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
547         (r534101)
548
549         * qt/qdbusinternalfilters.cpp: Decouple the introspection
550         function in two so taht we get the chance to introspect
551         without having a QDBusMessage (r534102)
552
553         * qt/qdbusbus.h:
554         * qt/qdbusconnection.cpp:
555         * qt/qdbusconnection_p.h:
556         * qt/qdbusintegrator.cpp: Keep a list of our own names to
557         avoid a round-trip to the server when attempting to introspect
558         one of our own objects. Also make sure the filter functions
559         match the empty interface as well. (r534108)
560         Don't keep the connection names. Instead, trust the unique
561         connection name (r534111)
562         Remove event loop usage (r534112)
563
564 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
565
566         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
567         Brad Hards.
568
569 2006-04-28  Robert McQueen  <robot101@debian.org>
570
571         * glib/dbus-gproxy.c: Fix properties so that they can be given in
572         any order, making it easier for people who inherit from this
573         object.
574
575 2006-04-28  Robert McQueen  <robot101@debian.org>
576
577         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
578         of memory from within pointer arrays and lists. Fixes bug #6300.
579
580 2006-04-28  Robert McQueen  <robot101@debian.org>
581
582         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
583         generating struct signatures. Fixes bug #6083.
584
585 2006-04-28  Robert McQueen  <robot101@debian.org>
586
587         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
588         to qdbusconnection_p.moc.
589
590 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
591
592         * README, INSTALL: Doc fixes
593         Patch from Brad Hards <bradh at frogmouth.net>
594
595 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
596
597         * qt/examples/dbus.cpp: Use the new merged-interface mode for
598         the dynamic meta object. No need to guess which interface to
599         call.
600
601 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
602
603         * qt/qdbusconnection_p.h:
604         * qt/qdbusmetaobject.cpp:
605         * qt/qdbusmetaobject_p.h:
606         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
607         for the dynamic meta object. No need to guess which
608         interface to call.
609         * qt/qdbusabstractinterface_p.h:
610         * qt/qdbusconnection.cpp:
611         * qt/qdbusintegrator.cpp:
612         * qt/qdbusinterface.cpp:
613         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
614         Add a QDBusRef that looks and behaves like DCOPRef.
615
616 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
617
618         * dbus/dbus-connection.c: Interfaces are optional in method
619         calls, so don't give up if the interface parameter is NULL.
620         Patch reviewed by Havoc Pennington.
621
622 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
623
624         * qt/qdbusreply.h: Add default constructor and operator=
625           (r532625)
626         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
627           in public headers (r532952)
628         * qt/qdbusabstractinterface.cpp:
629         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
630           make it the default (r532951)
631
632 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
633
634         * dbus/dbus-connection.c: Fix asserts
635         Patch from Tim Moloney <t.moloney at verizon.net>
636
637 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
638
639         * mono/Connection.cs, mono/Message.cs: Check Target type
640         Patch from Aaron Bockover (abockover at novell.com)
641
642 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
643
644         * INSTALL: fine-tune the requirements for the Qt4 binding.
645
646 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
647
648         * tools/dbus-print-message.c: Added support for printing of all 
649           remaining data types. Fixed logic for indentation of compound
650           data types.
651         
652 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
653
654         * INSTALL: fill out content of file providing DBus specific
655           build installations, followed by generic Auto* INSTALL file
656           content
657         
658 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
659
660         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
661           Patch by Stefan Eilers. (r529537)
662
663 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
664
665         * qt/qdbusinternalfilters.cpp: Don't show the parent's
666           contents (r528208)
667
668 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
669
670         * qt/Makefile.am: fix the dependency for
671           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
672           not in qdbusconnection.cpp.
673           Thanks to Jakub Stachowski <stachowski@hypair.net> for
674           spotting this.
675
676 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
677
678         * qt/examples/listnames.cpp:
679         * qt/examples/Makefile.am: Three ways to list the names on the
680           bus.
681
682 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
683
684         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
685           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
686
687 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
688
689         Merge from Subversion:
690         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
691           something that exists (r526315)
692         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
693           slots/signals (r526316)
694         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
695           also return an unknown-method error if the parameters don't
696           match for org.freedesktop.DBus.Properties. (r526842)
697         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
698         * qt/qdbusintegrator.cpp: Restore the proper order of
699           delivery: don't make method returns be delivered on priority
700           (r528150)
701
702 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
703
704         * configure.in qt/Makefile.am: add qt/examples
705         * qt/examples: Add QtDBus example programs:
706           - hello: Hello, World
707           - ping: Simple method-calling program
708           - pong: Simple object-exporting program (not using adaptors)
709           - complexping: Interactive method-calling program 
710                 (also gets and sets properties).
711           - complexpong: Sample program exporting methods, signals and
712                 properties, using adaptors.
713           - dbus: Simple implementation of a generic method-calling
714                 program, similar to 'dbus-send', but with semantics
715                 similar to 'dcop'.
716           - chat: Simplistic chat program, implemented using signals
717                 and the system bus. Looks like IRC.
718
719 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
720
721         * configure.in: Detect QtGui (necessary for one of the
722           example programs). Note: this increases the minimum required
723           version of Qt to 4.1.3.
724
725 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
726
727         * test/qt/*: Sync with KDE Subversion revision 523647.
728         Update the testcases to the new API. Remove testcases for
729         classes that are no longer public or have been removed.
730
731 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
732
733         * qt/*: 
734         * dbus/qdbus.h: Sync with KDE Subversion revision
735         523647. Hopefully, this will be the last of the
736         source-incompatible changes. Documentation has been improved;
737         support for QList<basic-types> has been added; QDBusObject is
738         gone; QDBus(Abstract)Interface is now a QObject with
739         auto-generated meta-object; QDBusIntrospection is marked
740         private, since QMetaObject can be used now; lots of bugfixes.
741
742 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
743
744         Patch from Milosz Derezynski <internalerror at gmail.com>
745         
746         * configure.in:
747         Output the service directory in the configure summary
748
749         * dbus-1.pc.in:
750         Add session_bus_services_dir
751
752 2006-03-10  Ross Burton  <ross@openedhand.com>
753
754         * tools/dbus-print-message.c:
755         Add support for object paths and signatures.
756
757 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
758
759         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
760         config reload.
761         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
762         information caches
763         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
764         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
765         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
766         * dbus/dbus-userdb.h: Add function to flush all user/group information
767         caches.
768
769 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
770
771         * qt/dbusidl2cpp.cpp:
772         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
773         for dcopidl2cpp, found in the KDE installations (or the more
774         modern kalyptus): generate Qt4 C++ code for the input XML
775         introspection. Currently no IDL parsing.
776
777 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
778
779         * test/qt/*: Update the self-tests.
780
781 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
782
783         * qt/*: 
784         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
785         represents the first feature-complete version of the Qt4
786         bindings since I took ove maintainership.
787
788 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
789
790         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
791         dir. This is C++, so we can't use the DBus ones.
792
793 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
794
795         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
796         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
797
798 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
799
800         * dbus/dbus-connection.c: 
801         (_dbus_connection_block_pending_call):
802         Check to see if our data has already been read off the connection
803         by another blocking pending call before we block in poll.
804         (check_for_reply_and_update_dispatch_unlocked):
805         Code taken from _dbus_connection_block_pending_call - checks for
806         an already read reply and updates the dispatch if there is one.
807
808         * test/name-test/test-pending-call-dispatch.c:
809         New test for making sure we don't get stuck polling a 
810         dbus connection which has no data on the socket when
811         blocking out of order on two or more pending calls.
812
813 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
814
815         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
816         make/automake don't detect that we're talking about the same
817         .lo file if I specify the full path to the source files.
818
819 2006-02-26  Havoc Pennington  <hp@redhat.com>
820
821         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
822
823         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
824         session bus variable is unset, suggest "man dbus-launch" and "man
825         dbus-daemon" to figure out how to fix the problem
826
827 2006-02-25  Havoc Pennington  <hp@redhat.com>
828
829         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
830         should make this thing use the new glib options parser
831
832 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
833
834         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
835         .lo files taking moc sources.
836
837 2006-02-25  Havoc Pennington  <hp@redhat.com>
838
839         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
840         and install it as a public header
841
842 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
843
844         * Released 0.61
845
846 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
847         
848         * proxies.py: Fix the callchain
849
850 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
851         
852         * patch from Sjoerd Simons <sjoerd at debian.org>:      
853
854         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
855         dbus/dbus-sysdeps.c
856
857         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
858         call _dbus_group_info_free_allocated which causes infinite loop,
859         correctly call _dbus_group_info_free
860
861 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
862
863         * qt/qdbusinterface_p.h:
864         * qt/qdbusinterface.cpp: Use the standard
865         org.freedesktop.DBus.Method.NoReply annotation for the "async"
866         calls instead of creating one for us.
867
868         * qt/qdbusconnection_p.h:
869         * qt/qdbusintegrator.cpp: Remove debugging code.
870
871         * qt/qdbusintegrator.cpp:
872         * qt/qdbusmessage.cpp:
873         * qt/qdbusmessage_p.h:
874         * qt/qdbusmessage.h: Change the behaviour of automatic
875         reply-sending: now a reply is always sent, unless the caller
876         didn't request one or if the user slot has already sent one.
877
878 2006-02-16  Robert McQueen  <robot101@debian.org>
879
880         * configure.in: Patch from Debian packages by Sjoerd Simons
881         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
882         arguments so it's possible to build both bindings in the
883         same tree.
884
885         * qt/Makefile.am: Fix truncated value so that make dist works.
886
887 2006-02-16  Robert McQueen  <robot101@debian.org>
888
889         * acinclude.m4, configure.in: Patch from Brad Hards
890         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
891         improving quoting, re-ordering a few checks, and a few other
892         aesthetic tidy-ups.
893
894 2006-02-16  Robert McQueen  <robot101@debian.org>
895
896         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
897         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
898         assertion that the next element to read from the iter is fixed in
899         size. This is not the case when you are at the end of the iter,
900         because the next element type is INVALID.
901
902         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
903         a bogus assert which means that you may not initialise a 0-length
904         string unless you provide a non-NULL pointer. This prevented
905         you from marshalling messages containing zero-length arrays in
906         some cases.
907
908         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
909         from Rob to correct bogus asserts when trying to demarshal an
910         array and get_fixed_array got you 0 elements. Append nothing to
911         the GArray in this case.
912
913         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
914         an empty array via the glib bindings. Without all of the above
915         patches, this new test fails.
916
917 2006-02-16  Robert McQueen  <robot101@debian.org>
918
919         * glib/dbus-gmain.c: Make the previous commit compile.
920
921         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
922         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
923         specify sender_keyword="foo", path_keyword="bar" when adding
924         a signal listener, so that you can bind to signals generically
925         but still do something useful in your callback.
926
927         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
928         chars so that they're not cast to chars and made negative. Thanks
929         to Jakub Stachowski for reporting this and testing the fix.
930
931 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
932
933         * dbus/dbus-glib.h:
934         * glib/dbus-gmain.h:
935         (dbus_g_connection_open): new method for openning
936         a connection to an arbitrary address in the glib bindings
937
938         * ChangeLog: checkin last entry which doesn't seem to be commited
939
940 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
941
942         * tools/dbus-launch.c: Fixed sh syntax output
943
944 2006-02-13  Robert McQueen  <robot101@debian.org>
945
946         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
947         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
948         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
949         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
950         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
951         missing piece of the glib bindings jigsaw puzzle. This modifies
952         the existing specialised types to have N type parameters (rather
953         than the current 1 or 2 for arrays and dictionaries respectively).
954         You can then use this to get a glib type to represent any arbitrary
955         D-Bus struct type using dbus_g_type_get_struct. The only
956         implementation of these types is with GValueArrays as before,
957         but it's now possible to store these in arrays, emit them in
958         signals, etc.
959
960 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
961
962         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
963         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
964         <thiago.macieira at trolltech.com>
965
966 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
967
968         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
969         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
970
971 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
972
973         * bus/connection.c (bus_connections_expect_reply): Make
974         pending reply limit not common to all connections (Bug #5416)
975         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
976
977 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
978
979         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
980
981 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
982
983         * gcj/Makefile.am: point to correct jar command (Bug #4529)
984         patch from Doug Goldstein <cardoe at gentoo.org>
985
986 2006-02-09  Joe Shaw  <joeshaw@novell.com>
987
988         * mono/Arguments.cs: Fix a magic number in the mono bindings
989         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
990
991 2006-01-27  Robert McQueen  <robot101@debian.org>
992
993         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
994         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
995         when generating the client-side methods, instead of overloading
996         CSymbol which broke everything horribly. My apologies.
997
998 2006-01-27  Robert McQueen  <robot101@debian.org>
999
1000         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1001         by me and Rob Taylor to add a simple_free function to D-Bus map
1002         and collection types, which allows those types which can be freed
1003         with a GDestroyNotify (such as GHashTables and GArrays, but not
1004         GPtrArrays) to be stored as the values in hashtables.
1005
1006         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1007         Patch by Rob Taylor to add nested dicts to the glib tests to check
1008         the above code works, and appears not to leak when called repeatedly.
1009
1010 2006-01-27  Robert McQueen  <robot101@debian.org>
1011
1012         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1013         to free a D-Bus allocated string with dbus_free () instead of
1014         g_free ().
1015
1016 2006-01-27  Iain Holmes  <iain@openedhand.com>
1017
1018         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1019         method from being called multiple times.
1020
1021 2006-01-19  Robert McQueen  <robot101@debian.org>
1022
1023         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1024         <rob.taylor@collabora.co.uk> to add support for generating bindings
1025         to arrays that are represented as GPtrArrays rather than GArrays (ie
1026         size-variable things, such as strings, objects, structs, etc).
1027
1028 2006-01-05  Robert McQueen  <robot101@debian.org>
1029
1030         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1031         <ricardo.kekki@movial.fi> to make it possible to inherit from
1032         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1033         a private part, and moving the setting of the DBusGProxyManager into a
1034         connection property, allowing proper GObject construction.
1035
1036 2006-01-05  Robert McQueen  <robot101@debian.org>
1037
1038         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1039         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1040         annotations when generating glib client bindings.
1041
1042 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1043
1044         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1045
1046         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1047
1048 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1049
1050         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1051
1052 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1053
1054         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1055
1056 2005-12-19  Ross Burton  <ross@openedhand.com>
1057
1058         * doc/dbus-tutorial.xml:
1059         Document the Glib client-side bindings, and list all possible annotations.
1060
1061 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1062
1063         * dbus/bus.c (dbus_bus_release_name): Add documentation
1064
1065 2005-12-06  Robert McQueen  <robot101@debian.org>
1066
1067         * python/service.py: s/sucessful/successful/ so we're allocating to
1068         and reading from the same variable. Oops.
1069
1070 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1071
1072         * Released 0.60
1073
1074 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1075
1076         * test/qt/Makefile.am: build from srcdir
1077
1078         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1079         Note - this code is wrong and needs to be fixed by the Qt binding
1080         developers.  The flags should be treated as bitfields and not enums.
1081
1082         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1083
1084 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1085
1086         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1087           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1088           in production code
1089
1090 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1091
1092         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1093         method for getting messages off the bus in the absence of a
1094         mainloop.  This method is much like 
1095         dbus_connection_read_write_dispatch except it does not dispatch
1096         the messages to a registered filter function.  Instead it
1097         allows a developer to process messages by directly popping
1098         them off the bus.
1099
1100 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1101
1102         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1103         the parser to continue instead of returning error
1104         (bus_desktop_file_load): Do not free parser data when
1105         parse_section_start or parse_key_value fails because it was 
1106         already freed by parser_free (patch from Carlos Garcia Campos  
1107         <carlosgc at gnome.org>)
1108
1109 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1110
1111         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1112         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1113         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1114         test/test-segfault.c, test/test-utils.c,
1115         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1116         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1117         Various cleanup of dead code and compiler warnings (patch from
1118         Kjartan Maraas <kmaraas at gnome.org>) 
1119
1120 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1121
1122         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1123         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1124
1125 2005-11-27  Robert McQueen  <robot101@debian.org>
1126
1127         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1128         part of the preceding one. Oops. Merge patch by Johan Hedberg
1129         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1130         on big-endian platforms.
1131
1132         * test/python/test-client.py: Add some 16-bit integers to the test
1133         values.
1134
1135 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1136
1137         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1138         method return message for property getters
1139
1140 2005-11-27  Robert McQueen  <robot101@debian.org>
1141
1142         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1143         with type v of an instance of dbus.Variant(foo, type='x') caused
1144         it to be boxed twice before sending over the bus.
1145
1146         * python/dbus_bindings.pyx, python/service.py,
1147         test/python/test-client.py: Update the constants for the new
1148         request_name flags, and update comments/test cases now that queueing
1149         is the default action.
1150
1151 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1152
1153         * configure.in:
1154         - Change version to 0.60 for impending release
1155         - upped the sonames because of ABI and API breakage
1156
1157 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1158
1159         * configure.in: Add test/name-test/Makefile to the generated
1160         Makefile list
1161
1162         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1163         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1164         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1165         not to queue an ower if it can't be the primary owner
1166
1167         * bus/bus.h: Add new internal BusOwner struct
1168
1169         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1170         to bus_registry_ensure and don't set the prohibit_replacement flag
1171         since they are now set per BusOwner and not per name.
1172         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1173         that returns the list of connections in a name's connection queue
1174         
1175         * bus/services.c (struct BusService): remove prohibit_replacement field
1176         (struct BusOwner): new struct for keeping track of queued connections
1177         and their associated flags for the queue
1178         (struct BusRegistry): add a BusOwner memory pool
1179         (bus_registry_new): initialize the BusOwner memory pool
1180         (bus_registry_unref): free the BusOwner memory pool
1181         (_bus_service_find_owner_link): new internal method for
1182         searching the queue for a specific connection
1183         (bus_owner_set_flags): new method for adding setting the flags on a
1184         bus owner
1185         (bus_owner_new): new method that creates a BusOwner object from the
1186         pool and sets its flags
1187         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1188         (bus_registry_ensure): Add the flags parameter
1189         (bus_registry_acquire_service): Switch from using raw connections to
1190         using the BusOwner struct
1191         Add new state machine for dealing with the new set of flags
1192         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1193         cancel_ownership, free_ownership_cancel_data, 
1194         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1195         restore_ownership, free_ownership_restore_data, 
1196         add_restore_ownership_to_transaction): Switch to using BusOwner 
1197         instead of raw connections
1198         (bus_service_add_owner): Add flags parameter
1199         Switch to using BusOwner instead of raw connections
1200         Add state machine for dealing with the new set of flags
1201         (bus_service_swap_owner): Swaps the first and second owners in the
1202         queue.  Used to make sure proper signals are sent when a service looses 
1203         or gains primary ownership.  We never insert an owner at the top of the
1204         queue.  Instead we insert it in the second position and then swap.
1205         (bus_service_remove_owner): Remove the owner from the queue sending
1206         out the NameLost and NameOwnerChanged signals if the we were the 
1207         primary owner
1208         (bus_service_get_primary_owners_connection): New method that extracts
1209         the connection from the primary owner
1210         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1211         connection
1212         (bus_service_get_allow_replacement): Changed from the old 
1213         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1214         primary owner and returns if it can be replaced or not
1215         (bus_service_set_prohibit_replacement): removed
1216         (bus_service_has_owner): returns TRUE if and owner with
1217         the specified connection exists in the queue
1218         
1219         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1220         method that only compiles if tests are enabled.  Allows us to get the 
1221         unique name of a connection so we can check it against the queue when
1222         doing regression tests
1223
1224         * bus/activation.c (bus_activation_send_pending_auto_activate),
1225         bus/dispatch.c (bus_dispatch),  
1226         bus/driver.c (bus_driver_handle_get_service_owner, 
1227         bus_driver_handle_get_connection_unix_user, 
1228         bus_driver_handle_get_connection_unix_process_id,
1229         bus_driver_handle_get_connection_selinux_security_context),
1230         bus/signals.c (connection_is_primary_owner): 
1231         use bus_service_get_primary_owners_connection instead of
1232         bus_service_get_primary_owner
1233
1234         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1235         _dbus_listen_unix_socket): Calculate the length of the socket
1236         path and use that instead of using a fixed length which was
1237         causing socket names to contain many trailing Nul bytes.
1238
1239         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1240         (dbus_g_method_get_sender): New method for extracting the sender 
1241         from a DBusGMethodInvocation
1242         (dbus_g_method_return_get_reply): changed name to 
1243         dbus_g_method_get_reply
1244         (dbus_g_method_return_send_reply): changed name to
1245         dbus_g_method_send reply
1246
1247         * doc/dbus-specification.xml: New docs that describe how the new
1248         queueing system works and talks about the changes to the how
1249         we specify socket names
1250
1251         * glib/examples/example-service.c, 
1252         glib/examples/example-signal-emitter.c,
1253         glib/examples/statemachine/statemachine-server.c:
1254         Changed the RequestName flags to the new system
1255
1256         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1257         regression test suite for testing various states of the new
1258         queueing system
1259         
1260 2005-11-15  Robert McQueen  <robot101@debian.org>
1261
1262         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1263         Taylor to add two methods, dbus_g_method_return_get_reply and
1264         dbus_g_method_return_send_reply, to allow you to get the reply
1265         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1266         and send it. The GLib bindings can't marshal a return value of
1267         something like a(s) if the array is empty - ultimately they should be
1268         made to heed the signature of the out arguments as the Python bindings
1269         now can, but this is a workable interim solution which might have
1270         other applications.
1271
1272 2005-11-15  Robert McQueen  <robot101@debian.org>
1273
1274         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1275         method to org.freedesktop.DBus to release a bus name or give up
1276         waiting in the queue for it.
1277
1278         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1279         dbus_bus_release_name method to send the ReleaseName method calls.
1280         Add constants for the return values to dbus/dbus-shared.h.
1281
1282         * doc/dbus-specification.xml: Document the new ReleaseName method
1283         in the specification.
1284
1285         * python/dbus_bindings.pyx: Add a low-level python binding for the
1286         release name method.
1287
1288         * python/exceptions.py, python/service.py: Make freeing BusName
1289         objects release the name. Add a NameExistsException, and fix a
1290         bug with creating UnknownMethodException.
1291
1292         * test/python/test-client.py: Add tests for freeing BusName
1293         objects causing names to be released.
1294
1295 2005-11-14  Robert McQueen  <robot101@debian.org>
1296
1297         * python/service.py: Include the traceback in the error reply when we
1298         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1299
1300 2005-11-14  David Zeuthen  <davidz@redhat.com>
1301
1302         Patch from Timo Hoenig <thoenig@suse.de>.
1303
1304         * bus/bus.c: I've recently investigated why the automatic reload
1305         of configuration files does not work as expected.
1306
1307         Currently, reloading configuration files does only work when
1308         running dbus-daemon with --nodaemon.  If we are running as daemon
1309         we're hitting a dnotify bug once we fork the process.
1310
1311         We're initializing the dnotify fds before calling fork().  Once
1312         the child process forked it does still have the fds (and they
1313         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1314         getting SIGIO as changes are made to the configuration files.
1315
1316         The attached patch moves the initialization of the dnotify fds to
1317         process_config_postinit().  This is safe for all current code
1318         paths and solves the dnotify disfunction.  If we're running
1319         dbus-daemon as daemon the fds for dnotify are now being
1320         initialized after fork() for the child process.
1321
1322         * configure.in: The current configure.in check for dnotify probes
1323         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1324         match for 'xlinux', too. Additionally I have adapted the configure
1325         option's style to match with the others.
1326
1327 2005-11-14  Robert McQueen  <robot101@debian.org>
1328
1329         * python/decorators.py, python/service.py: Add a new argument to the
1330         dbus.service.method decorator called sender_keyword, which if set,
1331         specifies the name of an argument which will be provided the bus
1332         name of the method caller.
1333
1334         * test/python/test-client.py, test/python/test-service.py: Add a
1335         method and test to check the sender_keyword functionality.
1336
1337 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1338
1339         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1340         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1341         Simons <sjoerd at luon.net>)
1342
1343         * AUTHORS: Add Robert McQueen for his work on the Python
1344         Bindings and other parts of D-Bus
1345
1346 2005-11-07  Robert McQueen  <robot101@debian.org>
1347
1348         * python/decorators.py: Change emit_signal function to use the
1349         signature annotation of the signal when marhsalling the arguments from
1350         the service. Fix a bug where the code checking signature length
1351         against argument length referenced the wrong variable.
1352
1353         * python/introspect_parser.py: Avoid adding the type signature of
1354         signal arguments to any methods which occur after them in the
1355         introspection data (!) by making the parser a little more careful
1356         about its current state.
1357
1358         * python/service.py: Remove debug prints from last commit (again :D).
1359
1360         * test/python/test-client.py, test/python/test-service.py: Add test
1361         signals with signature decorators to test the strict marshalling code
1362         gives errors at the right time. Could do with checking the signals
1363         actually get emitted too, given that the test does nothing with
1364         signals at the moment...
1365
1366 2005-11-07  Robert McQueen  <robot101@debian.org>
1367
1368         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1369         instances to stop madness of creating new instances representing
1370         the same bus connection all the time, rendering any tracking of
1371         match rules and bus names quite meaningless. Caught a bug where
1372         the private argument to SessionBus() and friends was being passed
1373         in as use_default_mainloop by mistake. Still some problems with
1374         multiple dbus_binding.Connection instances representing the same
1375         low-level connection (eg when you use both SessionBus() and
1376         StarterBus() in same process), but it's a lot better now than it
1377         was.
1378
1379         * python/dbus_bindings.pyx: Add constants with the return values
1380         for bus_request_name().
1381
1382         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1383         and retrieve the same instances for the same name, so deletion can be
1384         done with refcounting. Also now throws some kind of error if you
1385         don't actually get the name you requested, unlike previously...
1386
1387         * test/python/test-client.py: Add tests for instance caching of buses
1388         and bus name objects.
1389
1390 2005-11-04  Robert McQueen  <robot101@debian.org>
1391
1392         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1393         marshalling of boolean values. Add some booleans to the values in
1394         the test client.
1395
1396         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1397         argument to the dbus.service.method decorator, which allows you to
1398         name arguments to take two callback functions for replying with
1399         return values or an exception.
1400
1401         * test/python/test-client.py, test/python/test-service.py: Add test
1402         case using asynchronous method reply functions, both return values and
1403         errors, and from within both the function itself and from a mainloop
1404         callback.
1405
1406         * python/decorators.py, python/service.py: Perform checking that the
1407         number of method/signal arguments matches the number of types in the
1408         signature at class loading time, not when you first introspect the
1409         class.
1410
1411         * python/service.py: Remove debug print left by the last commit.
1412
1413 2005-11-03  Robert McQueen  <robot101@debian.org>
1414
1415         * python/service.py: Heavy refactoring of method invocation, with
1416         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1417         in favour of a new _message_cb that uses seperate functions for
1418         looking up the method to call, marshalling the return values, and
1419         sending exceptions as errors, and is easier to follow as a
1420         consequence.  Fixes some corner cases about returning things that
1421         don't match your declared out_signature, allows exceptions to define
1422         _dbus_error_name and have it be sent over the bus as the error name,
1423         and paves the way for cool stuff like heeding the message no reply
1424         flag, asynchronous method implementations, informing the method of the
1425         sender, and including backtraces in the error messages.
1426
1427         * test/python/test-client.py: Catch and print exceptions thrown in the
1428         async callback tests, rather than passing them to the low-level
1429         bindings to be ignored in a noisy and frustrating manner.
1430
1431 2005-11-03  Robert McQueen  <robot101@debian.org>
1432
1433         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1434         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1435         tweak others to be consistent.
1436
1437         * test/python/test-client.py: Tweak output of testInheritance.
1438
1439 2005-10-29  Robert McQueen  <robot101@debian.org>
1440
1441         * python/service.py: Major changes to allow multiple inheritance
1442         from classes that define D-Bus interfaces:
1443         
1444          1. Create a new Interface class which is the parent class of
1445             Object, and make the ObjectType metaclass into InterfaceType.
1446         
1447          2. Patch written with Rob Taylor to replace use of method_vtable
1448             with code that walks the class's __MRO__ (method resolution order)
1449             to behave like Python does when invoking methods and allow
1450             overriding as you'd expect. Code is quite tricky because
1451             we have to find two methods, the one to invoke which has the
1452             right name and isn't decorated with the /wrong/ interface,
1453             and the one to pick up the signatures from which is decorated
1454             with the right interface.
1455         
1456             The same caveats apply as to normal multiple inheritance -
1457             this has undefined behaviour if you try and inherit from two
1458             classes that define a method with the same name but are
1459             decorated with different interfaces. You should decorate
1460             your overriding method with the interface you want.
1461         
1462          3. Replace grungy introspection XML generation code in the metaclass
1463             with dictionaries that cope correctly with multiple inheritance
1464             and the overriding of methods. This also uses the signature
1465             decorations to provide correct introspection data, including
1466             the debut appearance of the types of your return values. :D
1467
1468         * test/python/test-client.py, test/python/test-service.py: Add a test
1469         case to try invoking an method that overrides one inherited from a
1470         D-Bus interface class.
1471
1472 2005-10-29  Robert McQueen  <robot101@debian.org>
1473
1474         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1475         Add checking for the end of struct character when marshalling a
1476         struct in MessageIter.append_strict.
1477
1478         * python/examples/example-service.py,
1479         python/examples/gconf-proxy-service.py,
1480         python/examples/gconf-proxy-service2.py: Update to use gobject
1481         mainloop directly rather than appearing to depend on gtk.
1482
1483         * python/test/test-client.py, python/test/test-server.py: Remove
1484         obsolete and broken test scripts for old bindings. We have up to date
1485         and working tests in test/python/.
1486
1487 2005-10-29  Robert McQueen  <robot101@debian.org>
1488
1489         * python/decorators.py: Add optional arguments to the method and
1490         signal decorators to allow you to specify the signature of arguments
1491         and return values. Preserve the doc strings of signal functions in the
1492         decorated version, for pydoc and friends.
1493
1494         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1495         parse_signature_block function with an iterable dbus.Signature()
1496         type. Fix a bug in MessageIter.append_strict where you could append
1497         anything by claiming it was a string.
1498
1499         * python/service.py: Use the out_signature decoration on methods to
1500         marshal return values, meaning you no longer require dbus.Array()
1501         or dbus.Dictionary() to indicate the type when returning empty
1502         arrays or dictionaries. Fix a bug where exceptions which are defined
1503         in __main__ are not turned into error replies.
1504
1505         * test/python/test-client.py, test/python/test-service.py: Add test
1506         for correct marshalling of return values according to out_signature.
1507         Fix a bug in the async call test where the error_handler is missing a
1508         self argument.
1509
1510 2005-10-29  Robert McQueen  <robot101@debian.org>
1511
1512         * glib/Makefile.am, glib/examples/Makefile.am,
1513         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1514         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1515
1516         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1517
1518         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1519         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1520         the command line.
1521
1522 2005-10-27  Ross Burton  <ross@openedhand.com>
1523
1524         * dbus/dbus-marshal-header.c:
1525         Remove dead code.
1526
1527         * glib/dbus-gobject.c:
1528         Stop compiler warning.
1529
1530 2005-10-25  Ross Burton  <ross@openedhand.com>
1531
1532         * dbus/dbus-auth.c:
1533         * dbus/dbus-server-unix.c:
1534         * dbus/dbus-transport-unix.c:
1535         * glib/dbus-gmain.c:
1536         * glib/dbus-gobject.c:
1537         Add some const keywords.
1538
1539 2005-10-25  Ross Burton  <ross@openedhand.com>
1540
1541         * doc/dbus-specification.xml:
1542         Document the NoReply annotation.
1543
1544         * glib/dbus-binding-tool-glib.h:
1545         * glib/dbus-binding-tool-glib.c:
1546         Respect the NoReply annotation.
1547
1548 2005-10-24  Robert McQueen <robot101@debian.org>
1549
1550         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1551         derive from unicode instead of str, and encode/decode UTF-8 when
1552         marshalling/unmarshalling bus messages
1553
1554         * python/introspect_parser.py: encode introspection data as UTF-8
1555         before passing the buffer into libxml2
1556
1557         * test/python/test-client.py: add unicode test strings
1558
1559         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1560         ignore generated python test files
1561
1562 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1563
1564         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1565         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1566         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1567
1568         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1569         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1570         when constructing struct signatures
1571
1572         * python/_dbus.py (Bus): handle private connections using the
1573         private keyword in the constructor. defaults to private=False
1574         (Bus::close): new method to close a connection to the bus
1575
1576         * python/dbus_bindings.pyx (Connection::close): renamed method
1577         was previously called disconnect
1578         (bus_get): now supports getting a private connection
1579
1580         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1581         keyword is set to True.  if it is, execute the method without waiting
1582         for a reply
1583         (ProxyObject::_introspect_execute_queue): new method for executing
1584         all the pending methods that were waiting for the introspect to
1585         finish.  this is called when introspect either succeeds or fails
1586         (ProxyObject::_introspect_error_handler): call queued methods
1587
1588 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1589
1590         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1591         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1592
1593         * python/service.py (Object::_message_cb): handle exceptions correctly
1594         by sending them over the wire to the calling app.  This makes sure
1595         the client returns immediately instead of waiting the 15 seconds to
1596         timeout.
1597
1598         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1599         Add a test to benchmark how long it takes to introspect a service and 
1600         call a method which returns a large element (pretty fast)
1601
1602         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1603         method which pushes a lot of data
1604
1605 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1606
1607         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1608         reclaim memory outside of the loop and use del istead of just setting
1609         the key to None
1610
1611 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1612
1613         * python/service.py (ObjectType::_reflect_on_signal): Always close
1614         signal tag even when there are no arguments
1615
1616 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1617
1618         * configure.in: Set mono, mono-docs and Qt3 to default
1619         to no instead of auto when building.  These bindings do not
1620         have full time maintainers and will not be supported for the
1621         1.0 release.
1622
1623 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1624
1625         patches from Michael Krivoruchko <misha at sun.com>: 
1626         
1627         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1628         _dbus_connection_message_sent, 
1629         _dbus_connection_send_preallocated_unlocked_no_update, 
1630         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1631         is NULL when calling _dbus_verbose
1632
1633         * configure.in: check for functions getpeerucred and getpeereid
1634
1635         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1636         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1637         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1638         Patch was only tested on Solaris 10 x86 so it might be issues
1639         with other platforms (i.e. BSDs and MacOSX)
1640         
1641
1642 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1643
1644         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1645         instead of marshal basic so we can handle recursive types in a variant
1646
1647         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1648         in variants
1649
1650         * test/glib/test-service-glib.c, test-service-glib.xml
1651         (my_object_echo_variant [EchoVariant], 
1652         my_object_process_variant_of_array_of_ints123
1653         [ProcessVariantOfArrayOfInts123]): 
1654         Add two test methods
1655
1656         * python/introspect_parser.py: New module for parsing introspect
1657         data.
1658
1659         * python/dbus_bindings.pyx:
1660         (various places): when throwing errors fix to use errormsg instead 
1661         of message local variable because Pyrex can get confused with other 
1662         message variables (initial patch by Robert McQueen 
1663         <robert.mcqueen at collabora.co.uk>)
1664         (MessageIter::parse_signature_block): new method for getting the next
1665         block in a signiture.
1666         (MessageIter::append_strict): new method for appending values strictly
1667         using the passed in signature instead of guessing at the type
1668         (MessageItter:: append_dict, append_struct, append_array): use 
1669         signatures to marshal children if the signature is available
1670         
1671         * python/exceptions.py (IntrospectionParserException): new exception
1672
1673         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1674         introspected signatures if available, else we fall back to the
1675         old way of doing things.
1676         (ProxyObject::_introspect_reply_handler ): parse introspection data
1677         
1678         * python/service.py (ObjectType::_reflect_on_method): Properly
1679         terminate <method> if there are no args in the reflection data
1680
1681         * test/python/test-client.py: add tests for talking with the GLib
1682         test server.  This gives us better coverage for introspection since
1683         python to python will always generate arguments as variants.  It also
1684         allows us to test the robustness of the GLib bindings and interlanguage
1685         communications.
1686
1687         
1688 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1689
1690         * bus/driver.c (bus_driver_handle_introspect): Add signals
1691         to the introspect data. (patch from Daniel P. Berrange 
1692         <dan at berrange.com>)
1693
1694         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1695         
1696         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1697         _dbus_connection_run_builtin_filters): Changed these to
1698         be unlock_no_update functions and call 
1699         _dbus_connection_send_unlocked_no_update instead of
1700         dbus_connection_send to avoid locking errors.
1701         
1702         * doc/TODO: Removed the make Ping test TODO
1703         
1704 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1705
1706         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1707         We now copy the message from a DBusError and then free 
1708         the error object befor throwing the error
1709
1710         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1711         DBusBindingOutputMode enum which was causing a warning.
1712         #include <time.h> so using time_t is explicitly defined
1713
1714 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1715
1716         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1717         - dbus/dbus-bus.c
1718         (internal_bus_get): new method that take over the heavy lifting
1719         of dbus_bus_get and adds the ability to get a private connection
1720         to the bus
1721         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1722         interface as in previous versions
1723         (dbus_bus_get_private): new method that is a wrapper to 
1724         internal_bus_get to get a private connection to the bus
1725
1726         - dbus/dbus-bus.h
1727         (dbus_bus_get_private): add as a public libdbus interface
1728
1729         - dbus-1.pc.in: output system_bus_default_address and 
1730         sysconfdir variables so apps can use them when compiling
1731
1732 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1733         * dbus/qt: New Qt bindings
1734
1735 2005-09-12  Waldo Bastian  <bastian@kde.org>
1736
1737         * dbus/dbus-marshal-validate.c,
1738         doc/dbus-specification.xml, test/Makefile.am,
1739         test/test-names.c: allow hyphens in bus names.
1740
1741 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1742
1743         * test/data/auth/fallback.auth-script: we don't
1744         retry the EXTERNAL method when we know its going
1745         to fail anymore.
1746
1747 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1748
1749         * dbus/dbus-connection-internal.h: rename
1750         (add|remove|toggle)_(watch|timeout) to unlocked()
1751         
1752         * dbus/dbus-connection.c: ditto.
1753         
1754         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1755         Update some callers for the renaming.
1756
1757 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1758
1759         * dbus/dbus-auth.c: (record_mechanisms): don't
1760         retry the first auth mechanism because we know
1761         we're just going to get rejected again.
1762         
1763         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1764         Fix thinko ... and what a nasty little bugger to
1765         track down you were ...
1766
1767         * dbus/dbus-connection.c:
1768         (_dbus_connection_add_watch),
1769         (_dbus_connection_remove_watch): add note about
1770         these needing the connection to be locked.
1771         (_dbus_connection_get_dispatch_status_unlocked):
1772         set status to DATA_REMAINS when we queue the
1773         disconnected message.
1774         
1775         * bus/dispatch.c:
1776         (bus_dispatch): fix warning.
1777         (check_existent_service_no_auto_start):
1778         Expect ChildSignaled error too.
1779         (check_existent_hello_from_self): fix another
1780         couple of warnings.
1781         
1782 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1783
1784         Patches from James Willcox <snorp@snorp.net>
1785
1786         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1787
1788         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1789         support array "out" parameters.
1790
1791         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1792         for 16-bit int support.
1793
1794 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1795
1796         * Released 0.50
1797
1798         * Patch from Steve Grubb:
1799         - bus/activation.c (bus_activation_service_reload_test): clean up
1800         some indentation
1801         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1802         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1803         buffer overflows in the test suite.  This is non critical because
1804         it can not be exploited and this code is only run when doing a 
1805         make check.
1806
1807         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1808         - configure.in: Don't check and link against kdecore, only qt headers
1809         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1810         - gcj/org/freedesktop/dbus/Makefile.am:
1811         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1812         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1813         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1814         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1815         - tools/Makefile.am: Add platform extentions to binaries 
1816         (i.e. .exe on windows)
1817
1818         * configure.in: 
1819         - Make it so if no suitable version of python is found we only 
1820         disable building python instead of exiting the configure script
1821         - Require version 2.4 of glib for glib bindings
1822         - Up version to 0.50
1823
1824         * python/__init__.py: Sync version with libdbus to (0,50,0)
1825         
1826 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1827
1828         * dbus/dbus-object-tree.c (find_subtree_recurse):
1829         a couple of optimizations (bug #710):
1830         - do a binary search in the tree
1831         - insert a new child at the right place directly, no need for
1832           qsort anymore
1833         - do the "double alloc" thing when allocating children
1834
1835 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1836
1837         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1838
1839         * python/dbus_bindings.pyx: Memory management foo
1840         (global): remove hacky _user_data_references global list
1841         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1842         tuples. Unref user_data
1843         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1844         (Connection::__del__): Remove and replace with __dealloc__ method
1845         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1846         to keep tuple from being deallocated instead of the global var hack
1847         (Connection::register_object_path): Stuff user_data into a tuple.
1848         Use Py_INCREF to keep tuple from being deallocated instead of the 
1849         global var hack
1850         (Connection::register_fallback): Stuff user_data into a tuple.
1851         Use Py_INCREF to keep tuple from being deallocated instead of the 
1852         global var hack
1853         (GIL_safe_pending_call_notification): Don't unref the message
1854         because it gets unreffed when going out of scope.  Py_XDECREF
1855         the user_data
1856         (PendingCall::__del__): Remove and replace with __dealloc__ method
1857         (PendingCall::set_notify): ref the pending call because we will
1858         need it to stick around for when the notify callback gets called
1859         (Message::__del__): Remove and replace with __dealloc__ method
1860
1861         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1862         gthreads_init to match up with the dbus call
1863
1864         * python/glib.py (init_threads): Changed to threads_init to match
1865         up with gobject.threads_init().  init_threads is kept for backwards
1866         compat but will most likely be deprecated in the future
1867
1868         * test/python/test-client.py: 
1869         - revamp to use Python's unittest functionality
1870         - add async call tests
1871         - setup threads in glib and dbus so we make sure locks are working
1872         
1873 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1874
1875         * python/dbus_bindings.pyx 
1876         (_pending_call_notification, cunregister_function_handler, 
1877         cmessage_function_handler): All callback functions have been rearranged 
1878         to workaround a bug in Pyrex when working with the GIL which is Python's 
1879         global lock when dealing with threads.  They have been split into
1880         a wrapper function (which assumes the name of the old function) and
1881         a _GIL_safe_<function name> function which contains the functionality
1882         of the old function.  This ensures that Pyrex does not write code
1883         the lock is released.
1884         
1885
1886 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1887
1888         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1889         GIL global lock when calling back into Python
1890
1891 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1892
1893         * Release 0.36.2
1894
1895         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1896
1897         * bus/policy.c (bus_policy_allow_user): change default "user is
1898         allowed" to be "user has same uid as the bus itself"; any
1899         allow/deny rules will override.
1900
1901         * bus/session.conf.in: don't allow all users, since now by default
1902         the user that ran the bus can connect.
1903
1904 2005-08-26  Colin Walters  <walters@verbum.org>
1905
1906         * tools/dbus-print-message.c (print_message): Flush stdout
1907         after printing a message, so that redirecting to a file, then
1908         hitting Ctrl-C works.
1909
1910 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1911
1912         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1913         (EmptyMessage): new class that subclasses Message.  This is a workaround
1914         to a Pyrex bug that fails to call __del__ when the Message object goes out
1915         of scope.  For some reason subclassing Message fixes this bug
1916         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1917         - s/Message(_create=0)/EmptyMessage everywhere else
1918         
1919         * test/python/test-{server|client}.py: add the python/.libs directory
1920         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1921         get picked up from the system
1922
1923 2005-08-25  Colin Walters  <walters@verbum.org>
1924
1925         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1926         to Ryan Lortie for the suggestion.
1927
1928 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1929
1930         * test/python: Add python regression test
1931
1932         * configure.in: Add test/python/Makefile
1933
1934         * test/Makefile.am: Add the python directory to SUBDIRS
1935
1936 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1937
1938         * Release 0.36.1
1939
1940         * python/_dbus.py: 
1941         (Interface::connect_to_signal): propigate keywords for match on args
1942         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1943
1944         * python/proxies.py (ProxyObject::connect_to_signal):
1945         propigate keywords for match on args
1946
1947         * Makefile.am: point everything to pyexecdir since python borks
1948         on multilib
1949
1950 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1951
1952         * Release 0.36
1953
1954 2005-08-23  Colin Walters  <walters@verbum.org>
1955
1956         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1957
1958 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1959
1960         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1961         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1962         of defining DBusConnection ourselves.
1963
1964 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1965
1966         * python/dbus.pth: New path file to fix up problems when installing
1967         c libraries to lib64 and python files to lib.
1968
1969         * python/Makefile.am: install dbus.pth in the correct spot
1970
1971 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1972         * ChangeLog: clean up my last entry a bit
1973
1974         * doc/introspect.xsl: New stylesheet for converting introspection data
1975         into browser renderable xhtml. Contributed by Lennart Poettering.
1976
1977         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1978         Poettering.
1979
1980         * doc/dbus-tutorial.xml: 
1981         - Add Colin Walter to the Authors section for authoring the GLib
1982         section
1983         - Add descriptions of the new signature and type functionality
1984         in the Python complex type mapping section
1985         - Add a sidenote on the new args matching functionality in 
1986         the Python bindings
1987         - Fixed up some of the examples to use the gobject.MainLoop
1988         instead of gtk.main
1989         
1990         * python/_dbus.py:
1991         (Bus::_create_args_dict): New. Converts a hash of arg matches
1992         to a more useable format
1993         (Bus::add_signal_receiver): add a **keywords parameter for catching
1994         arg match parameters
1995         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1996         arg match parameters
1997         
1998         * python/matchrules.py:
1999         (MatchTree::exec_matches): Check for arg matches
2000         (SignalMatchRule::add_args_match): New method
2001         (SignalMatchRule::execute): Added args_list parameter as an optimization
2002         so we don't have to marshal the args more than once
2003         (SignalMatchRule::match_args_from_list): New method that checks to see
2004         if the rule's arg matches match an argument list.  Only arguments
2005         set in the rule are checked.
2006         (SignalMatchRule::match_args_from_rule): New method that checks to see
2007         if the rule's arg matches match another rule's.  All args have to match
2008         in order for this method to return true.  If either rule has more args
2009         then it is not a match.
2010         (SignalMatchRule::is_match): Add args match
2011         (SignalMatchRule::repr): Add args to the final output if they exist
2012
2013 2005-08-17  Ross Burton  <ross@burtonini.com>
2014
2015         * glib/dbus-gproxy.c:
2016         (dbus_g_proxy_call_no_reply): unref the message once sent.
2017         (dbus_g_proxy_call): protect against NULL proxy.
2018
2019 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2020
2021         * python/__init__.py: Version updated (0, 43, 0)
2022         
2023         * python/dbus_bindings.pyx: 
2024         - Fixed type objects to have self passed into __init__
2025         - Added the Variant type
2026         - Add the ability to specify types or signatures for Array, Variant 
2027         and Dictionary
2028         (Connection::send_with_reply_handlers): return a PendingCall object
2029         (_pending_call_notification): handle the case when an error is returned 
2030         without an error message in the body
2031         (MessageIter::get_boolean): return True or False instead of an integer
2032         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2033         and add checks for objects with embeded signatures or types (Array, 
2034         Variant and Dictionary)
2035         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2036         (MessageIter::append_dict): handle embeded types or signatures
2037         (MessageIter::append_array): handle embeded types or signatures
2038         (MessageIter::append_variant): new method
2039         
2040         * python/proxies.py:
2041         (DeferedMethod): New. Dummy executable object used when queuing calls 
2042         blocking on introspection data
2043         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2044         or shorter timeouts for method calls
2045         (ProxyObject): Add first pass at an introspection state machine
2046         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2047         introspection. 
2048         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2049         the usual mechanisms for sending messages.  This is to avoid a deadlock
2050         where the Intospect call would be queued waiting for the Introspect 
2051         call to finish ;-)
2052         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2053         when introspection returns with no error
2054         (ProxyObject::_introspect_error_handler): New.  This method is called 
2055         when introspection encounters an error
2056         (ProxyObject::__getattr__): Code to handle different introspection 
2057         states.  Queue async calls or block blocking calls if we are 
2058         introspecting.  Pass through as normal if we are not or are done with 
2059         introspecting.
2060         
2061         * python/service.py: Import signal and method from decorators.py
2062
2063         * python/types.py: Add Variant type
2064
2065 2005-08-16  Colin Walters  <walters@verbum.org>
2066
2067         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2068         DBusError message is NULL.
2069
2070 2005-08-09  Havoc Pennington  <hp@redhat.com>
2071
2072         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2073         malloc'd copy of the name parameter
2074
2075 2005-08-09  Havoc Pennington  <hp@redhat.com>
2076
2077         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2078         warning if the reply serial is set to 0
2079
2080 2005-08-04  Colin Walters  <walters@verbum.org>
2081
2082         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2083         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2084         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2085         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2086         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2087         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2088         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2089         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2090         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2091         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2092         
2093         Prefix name with _ to ensure they're not exported.  All callers
2094         updated.
2095
2096         * glib/dbus-gvalue.c (typecode_to_gtype)
2097         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2098         (signature_iter_to_g_type_dict)
2099         (signature_iter_to_g_type_array)
2100         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2101         (dbus_gtypes_from_arg_signature):
2102         Move to dbus-gsignature.c.
2103
2104         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2105         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2106         (dbus_binding_tool_output_glib_client): Ditto.
2107
2108         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2109         and dbus-gsignature.h
2110
2111         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2112         unused variable.
2113
2114 2005-08-03  Colin Walters  <walters@verbum.org>
2115
2116         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2117         catch any incompatible changes accidentally made.
2118
2119 2005-08-03  Havoc Pennington  <hp@redhat.com>
2120
2121         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2122         typo, from Julien Puydt
2123
2124         * bus/connection.c (bus_connection_disconnected): we were always
2125         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2126
2127 2005-08-01  Colin Walters  <walters@verbum.org>
2128
2129         Patch from Joe Markus Clarke:   
2130         
2131         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2132         use-after-free.
2133
2134 2005-08-01  Colin Walters  <walters@verbum.org>
2135         
2136         Patch from Joe Markus Clarke:   
2137         
2138         * tools/dbus-send.c (main): 
2139         
2140         Don't use C99 style initializers (bug #3933).
2141         
2142 2005-08-01  Colin Walters  <walters@verbum.org>
2143
2144         Patch from Joe Markus Clarke:   
2145
2146         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2147         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2148         * glib/dbus-gobject.c (write_interface):
2149
2150         Don't use C99 style initializers (bug #3933).
2151
2152 2005-07-31  Havoc Pennington  <hp@redhat.com>
2153
2154         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2155         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2156
2157 2005-07-30  Havoc Pennington  <hp@redhat.com>
2158
2159         * fix a bunch of Doxygen warnings and mistakes
2160
2161 2005-07-30  Havoc Pennington  <hp@redhat.com>
2162
2163         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2164         DBUS_BUILD_TESTS since it's now used in production code
2165
2166 2005-07-29  Havoc Pennington  <hp@redhat.com>
2167
2168         * test/glib/test-profile.c (write_junk): initialize the junk
2169         buffer so valgrind doesn't have a breakdown
2170
2171 2005-07-29  Havoc Pennington  <hp@redhat.com>
2172
2173         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2174         (match_rule_matches): remove unused arg
2175         (test_matching): add tests for match_rule_matches()
2176
2177         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2178         do arg0='foo' arg5='bar' in the match rules
2179         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2180
2181         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2182
2183 2005-07-29  Ross Burton  <ross@openedhand.com>
2184
2185         * dbus/dbus-connection.c:
2186         Don't create a DBusCondVar which is never used.
2187
2188 2005-07-27  Ross Burton  <ross@openedhand.com>
2189
2190         * dbus/dbus-message.c:
2191         Reduce the size of the maximum cached message to 10K.
2192
2193 2005-07-25  Ross Burton  <ross@openedhand.com>
2194
2195         * glib/dbus-gproxy.c:
2196         Remove matches when all proxies are unregistered.
2197
2198 2005-07-24  Colin Walters  <walters@verbum.org>
2199
2200         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2201         typedata; recursive arrays won't have it.
2202
2203         * test/glib/test-dbus-glib.c:
2204         * test/glib/test-service-glib.c:
2205         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2206         
2207 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2208
2209         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2210         proxies.py, service.py: Cleanup of code after running it through the
2211         pyflakes code checker mostly dealing with undefined names.  
2212         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2213
2214 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2215
2216         * NEWS: Update to 0.35.2
2217
2218 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2219
2220         * python/_dbus.py: Remove import of the dbus.services
2221         module as it no longer exists (patch from Dimitur Kirov)
2222
2223         * python/service.py (Object::__init__): Fixed typo
2224         s/name/bus_name (patch from Dimitur Kirov)
2225
2226         * python/examples/example-signal-emitter.py: import dbus.glib
2227         to get the main loop and use glib mainloop instead of gtk so
2228         X doesn't have to be running.
2229
2230         * python/examples/example-signal-recipient.py: import dbus.glib
2231         to get the main loop and use glib mainloop instead of gtk so
2232         X doesn't have to be running. Import the decorators module
2233         directly.
2234
2235         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2236         didn't pick up on but are needed to build
2237
2238         * configure.in: upped version to 0.35.2
2239
2240         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2241         added Colin Walters' SELinux API rename patch from head 
2242         s/unix sercurity context/selinux security context/
2243
2244 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2245
2246         * python/Makefile.am: dbus_binding.pxd.in should be included 
2247         in EXTRA_DIST not dbus_binding.pxd
2248         fix up $(srcdir) hopefully for the last time
2249
2250         * NEWS: Update to 0.35.1
2251
2252 2005-07-16  Colin Walters  <walters@verbum.org>
2253
2254         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2255         from bus_driver_handle_get_connection_unix_security_context.  Update for
2256         error usage.
2257         (message_handlers): Update for renames.
2258
2259         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2260         _dbus_string_init failure correctly.
2261         (bus_selinux_append_context): Convert SID to context.  Append it
2262         as a byte array.
2263         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2264         hasn't been called.
2265
2266         * bus/selinux.h: Update prototype.
2267
2268         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2269         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2270
2271 2005-07-15  Colin Walters  <walters@verbum.org>
2272
2273         * doc/TODO: Add note about convenience wrappers.
2274
2275 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2276
2277         * NEWS: Update to 0.35
2278
2279 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2280
2281         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2282         so distcheck doesn't fail
2283
2284         * glib/examples/Makefile.am: Add example-service.xml and 
2285         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2286
2287         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2288         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2289
2290         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2291         compiler looks in the right places during distcheck
2292
2293 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2294
2295         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2296         to fail
2297
2298 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2299
2300         * python/examples/example-service.py,
2301         python/examples/example-signal-emitter.py: Fixed up examples
2302         for API changes
2303
2304 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2305
2306         * python/__init__.py: Upped to version (0,42,0) because of
2307         the API change
2308
2309 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2310
2311         * ChangeLog: fix date in last entry
2312
2313         * configure.in, bus/system.conf.in: add the ability to configure 
2314         the system bus user at compiletime with the --with-dbus-user flag
2315         (patch from Kristof Vansant)
2316
2317 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2318
2319         * bus/dispatch.c, test/test-service.c: Add testcase
2320         for sending messages to oneself (TODO item).
2321
2322         * python/service.py (class Object): Swap ordering of bus_name 
2323         and object_path parameters to better support inheritance.
2324
2325         * doc/dbus-tutorial.xml: change Python docs to reflect change
2326         in parameter ordering and fix the inheritance section.
2327
2328         * doc/TODO: remove sending message to oneself TODO item
2329
2330 2005-07-15  Ross Burton  <ross@openedhand.com>
2331
2332         * glib/dbus-gproxy.c:
2333         Fix a leak when calling methods via the proxy.
2334
2335 2005-07-15  Colin Walters  <walters@verbum.org>
2336
2337         * bus/selinux.c (bus_selinux_append_context): Wrap in
2338         HAVE_SELINUX.
2339
2340 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2341
2342         * python/_dbus.py (Bus::remove_signal_receiver):
2343         don't add a callback to the match if none has been passed in
2344         
2345         * python/matchrules.py (SignalMatchTree::remove): if the rule
2346         being matched does not have a callback treat it as a wildcard
2347         fix matching logic
2348
2349         * doc/dbus-tutorial.xml: Add Python tutorial
2350
2351 2005-07-14  Colin Walters  <walters@verbum.org>
2352
2353         * bus/driver.c
2354         (bus_driver_handle_get_connection_unix_security_context): New function.
2355         (message_handlers): Add.
2356
2357         * bus/selinux.c (bus_selinux_append_context): New function; appends
2358         security context to message.
2359
2360         * bus/selinux.h: Prototype.
2361
2362         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2363
2364 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2365
2366         * bus/activation.c: clean up all tabs to be 8 spaces 
2367         (bus_activation_activate_service): make sure we clean up
2368         if activation fails
2369
2370         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2371         (check_shell_fail_service_auto_start): New function
2372         tests to make sure we get fail properly when trying to auto start a service
2373         with a faulty command line
2374         (check_shell_service_success_auto_start): New function tests to make sure
2375         auto started services get the arguments on the command line
2376
2377         * test/test-shell-service.c: Added service for testing auto-starting with 
2378         command line arguments
2379
2380         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2381         test/data/valid-service-files/debug-shell-echo-success.service.in:
2382         Added service files for testing auto-starting with command line arguments
2383
2384         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2385
2386 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2387
2388         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2389         
2390         * dbus/Makefile.am: added new files to build.
2391
2392         * bus/activation.c (bus_activation_activate_service): support
2393         activation commands with parameters.
2394
2395         * test/shell-test.c: added test program for the shell parsing
2396         code.
2397
2398 2005-07-13  David Zeuthen  <davidz@redhat.com>
2399
2400         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2401         64 bit signed and unsigned parameters
2402
2403 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2404
2405         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2406
2407         * python/service.py (class Name): renamed BusName to make it clearer
2408         what the object is for (a name on the bus)
2409
2410         * python/examples/example-service.py,
2411         python/examples/example-signal-emitter.py: change the Name object to
2412         BusName
2413
2414 2005-07-12  Colin Walters  <walters@verbum.org>
2415
2416         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2417
2418         * tools/dbus-launch.c: Include sys/select.h.
2419
2420 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2421         * python/dbus_bindings.pyx.in: removed
2422
2423         * python/dbus_bindings.pyx: Added.
2424         - Fixed some memleaks (patch from 
2425         Sean Meiners <sean.meiners@linspireinc.com>)
2426         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2427         own pxd file (Pyrex definition)
2428         - Broke out glib dependancies into its own pyx module
2429         
2430         * python/dbus_bindings.pdx: Added.
2431         - Defines C class Connection for exporting to other modules
2432
2433         * python/dbus_glib_bindings.pyx: Added.
2434         - New module to handle lowlevel dbus-glib mainloop integration
2435
2436         * python/glib.py: Added.
2437         - Registers the glib mainloop when you import this module
2438
2439         * python/services.py: Removed (renamed to service.py)
2440         
2441         * python/service.py: Added.
2442         - (class Server): renamed Name
2443
2444         * python/__init__.py: Bump ro version (0,41,0)
2445         -don't import the decorators or service module
2446         by default.  These now reside in the dbus.service namespace
2447
2448         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2449         setup function on creation 
2450
2451         * python/examples/example-service.py,
2452         python/examples/example-signal-emitter.py: update examples
2453
2454         * python/examples/gconf-proxy-service.py,
2455         python/examples/gconf-proxy-service2.py: TODO fix these up
2456
2457         * doc/TODO: Addition
2458         - Added a Python Bindings 1.0 section
2459         - added "Add match on args or match on details to match rules"
2460
2461
2462 2005-07-12  Colin Walters  <walters@verbum.org>
2463
2464         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2465         (statemachine-glue.h): 
2466         * glib/examples/Makefile.am (example-service-glue.h) 
2467         (example-signal-emitter-glue.h): 
2468         * glib/Makefile.am (dbus-glib-error-switch.h): 
2469         Add libtool --mode=execute so we use the built library instead
2470         of any installed one.
2471
2472 2005-07-11  Colin Walters  <walters@verbum.org>
2473
2474         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2475         (dbus_g_value_types_init): Remove assertion.
2476         (dbus_g_value_get_g_type, dbus_g_value_open)
2477         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2478         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2479         functions related to DBusGValue.  Now we marshal/demarshal
2480         structures as GValueArray.
2481         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2482         structures.
2483         (signature_iter_to_g_type_array): Don't call
2484         signature_iter_to_g_type_struct.
2485         (signature_iter_to_g_type_struct): Delete.
2486         (dbus_gvalue_to_signature): Delete.
2487         (dbus_gvalue_to_signature): New function with same name as other
2488         one; we can convert structures to signatures.
2489         (demarshal_valuearray): New function.
2490         (get_type_demarshaller): Use it.
2491         (demarshal_recurse): Delete.
2492         (marshal_proxy): New function.
2493         (marshal_map): Warn if we can't determine signature from type.
2494         (marshal_collection_ptrarray): Ditto.
2495         (marshal_collection_array): Ditto.
2496         (get_type_marshaller): Use marshal_valuearray.
2497         (marshal_recurse): Delete.
2498         (_dbus_gvalue_test): Add some tests.
2499
2500         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2501         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2502         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2503         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2504         (dbus_g_value_free): Remove prototypes.
2505
2506         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2507         G_TYPE_VALUE_ARRAY.
2508
2509         * glib/examples/example-service.c:
2510         * glib/examples/example-client.c: Implement GetTuple.
2511
2512         * test/glib/test-dbus-glib.c:
2513         * test/glib/test-service-glib.c:
2514         * test/glib/test-service-glib.xml: Add structure tests.
2515
2516 2005-07-10  Colin Walters  <walters@verbum.org>
2517
2518         * doc/TODO: Knock off some GLib items with this patch.
2519
2520         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2521         (_dbus_gvalue_signals_error): New functions.
2522
2523         * glib/dbus-gvalue-utils.h: Prototype them.
2524
2525         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2526         and change to not output const/retval flags for input args.  All
2527         callers updated.
2528         (invoke_object_method): Refactor to handle return values.  Add
2529         some more comments in various places.  Remove debug g_print.
2530
2531         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2532
2533         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2534         Handle G_TYPE_NONE.
2535         (compute_gsignature): New function; refactored from code from
2536         compute_marshaller and compute_marshaller_name.  Enhance to
2537         handle return values and async ops more cleanly.  Update for
2538         async ops returning NONE instead of BOOLEAN.
2539         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2540         and output appropriate string.
2541         (generate_glue): Handle return value annotation.  Also don't dump
2542         constness flag for input arguments.
2543
2544         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2545         files shared between installed library and utilities.
2546         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2547         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2548         binding tool can access gtype utility functions.
2549
2550         * test/glib/test-service-glib.c: 
2551         * test/glib/test-service-glib.xml: 
2552         * test/glib/test-dbus-glib.c: Add some tests for return values.
2553
2554 2005-07-09  Colin Walters  <walters@verbum.org>
2555
2556         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2557         argument if available, not method.
2558
2559         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2560         (invoke_object_method): First, remove some redundant
2561         GValues (object_value, error_value) in favor of working on
2562         array directly.  Second, rework constness to be less buggy.
2563         Now we iterate directly over the argument metadata instead
2564         of parallel iterating over output signature and metadata.
2565
2566         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2567
2568         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2569         annotation on input args.
2570         
2571 2005-07-09  Colin Walters  <walters@verbum.org>
2572
2573         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2574         Define.
2575
2576         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2577         annotation.
2578
2579         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2580         (method_dir_signature_from_object_info): Handle arg_iterate change.
2581         (write_interface): Ditto.
2582         (lookup_object_info): Don't barf if format_version is > 0.
2583         (invoke_object_method): Handle arg constness.
2584
2585         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2586         (arg_info_new): Create.
2587         (arg_info_unref): Destroy.
2588         (arg_info_get_annotations, arg_info_get_annotation) 
2589         (arg_info_add_annotation): New functions.
2590
2591         * glib/dbus-gidl.h: Prototype them.
2592
2593         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2594         args, disallow them in properties.
2595         (parse_annotation): Handle arg annotations.
2596
2597         * test/glib/test-service-glib.xml: 
2598         * test/glib/test-service-glib.c: Update to make some methods
2599         const.
2600
2601 2005-07-08  Colin Walters  <walters@verbum.org>
2602
2603         * test/glib/test-service-glib.xml: 
2604         * test/glib/test-service-glib.c:
2605         * test/glib/test-dbus-glib.c: Test a{sv}.
2606
2607         * glib/examples/statemachine/statemachine.c:
2608         * glib/examples/statemachine/statemachine-server.c:
2609         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2610         add progress bar, etc.
2611
2612         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2613         needed anymore due to generic array/map marshalling.
2614         (dbus_g_value_types_init): Don't register basic arrays or the
2615         string/string hash.
2616         (dbus_gtype_from_signature_iter): Don't try to recurse into
2617         variants.
2618         (dbus_gtype_to_signature): Check collection/map before type
2619         metadata.
2620         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2621         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2622         generic map creation/append functions instead of hash table
2623         specifically.
2624         (get_type_demarshaller): Handle maps.
2625         (demarshal_collection): Dispatch on collection type to either
2626         demarshal_collection_ptrarray or demarshal_collection_array.
2627         (get_type_marshaller): Handle maps.
2628         (marshal_collection): Dispatch collection type to either
2629         marshal_collection_ptrarray or marshal_collection_array.
2630         (_dbus_gvalue_test): New test.
2631
2632         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2633         (hash_free_from_gtype): Use it to free GValues.
2634         (hashtable_append): New function.
2635         (ptrarray_append): Fix prototype.
2636         (slist_append): Ditto.
2637         (_dbus_gvalue_utils_test): Extend tests.
2638
2639         * glib/dbus-gtype-specialized.c
2640         (dbus_g_type_specialized_init_append): Renamed from
2641         dbus_g_type_specialized_collection_init_append.  Remove const from
2642         value, since we steal it.
2643         (dbus_g_type_specialized_map_append): New function.
2644
2645         * glib/dbus-gtype-specialized.h: Update prototypes.
2646         Add DBusGTypeSpecializedMapAppendFunc.
2647
2648         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2649         _dbus_gvalue_test.
2650         
2651         * glib/dbus-gtest.h: Prototype it.
2652
2653 2005-07-08  Ross Burton  <ross@openedhand.com>
2654
2655         * dbus/dbus-glib.h:
2656         Add DBysGAsyncData for the async bindings.
2657
2658         * glib/dbus-binding-tool-glib.c:
2659         Re-enable the async bindings.
2660
2661         * test/glib/test-dbus-glib.c:
2662         Add a test for the generated async bindings.
2663
2664 2005-07-08  Colin Walters  <walters@verbum.org>
2665
2666         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2667         connection concept.
2668         
2669 2005-07-08  Colin Walters  <walters@verbum.org>
2670         
2671         * tools/Makefile.am: Kill of print-introspect in favor of using
2672         dbus-send --print-reply=literal.
2673
2674         * test/glib/test-service-glib.xml: 
2675         * test/glib/test-service-glib.c (my_object_get_objs): New test
2676         for "ao".
2677
2678         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2679         (main): Test GetObjs.
2680
2681         * glib/examples/statemachine/Makefile.am:
2682         * glib/examples/statemachine/sm-marshal.list:
2683         * glib/examples/statemachine/statemachine-client.c:
2684         * glib/examples/statemachine/statemachine-server.c:
2685         * glib/examples/statemachine/statemachine-server.xml:
2686         * glib/examples/statemachine/statemachine.c:
2687         * glib/examples/statemachine/statemachine.h:
2688         * glib/examples/statemachine/statemachine.xml:
2689
2690         New example.
2691
2692         * glib/examples/example-service.c (main): Move invocation
2693         of dbus_g_object_type_install_info earlier, to emphasize it
2694         should only be done once.
2695
2696         * glib/examples/example-signal-emitter.c (main): Ditto.
2697
2698         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2699
2700         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2701         (dbus_gvalue_marshal): Update prototypes.
2702
2703         * glib/dbus-gvalue.c: Update all marshalling functions to take
2704         const GValue instead of GValue.
2705         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2706         types.
2707         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2708         change.
2709         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2710         Return a newly-allocated string.
2711         (demarshal_proxy, demarshal_object_path, demarshal_object)
2712         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2713         we get the wrong types from message.
2714         (get_type_demarshaller): New function, extracted from
2715         dbus_gvalue_demarshal.
2716         (demarshal_collection): New function, demarshals generic
2717         collection.
2718         (dbus_gvalue_demarshal): Just invoke result of
2719         get_type_demarshaller.  Throw error if we don't have one.
2720         (marshal_garray_basic): Abort on OOM.
2721         (get_type_marshaller): New function, extracted from
2722         dbus_gvalue_marshal.
2723         (collection_marshal_iterator, marshal_collection): New functions;
2724         implements generic marshalling for an iteratable specialized
2725         collection.
2726         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2727
2728         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2729         G_TYPE_STRING.
2730         (ptrarray_value_from_gvalue): Ditto.
2731         (ptrarray_append, ptrarray_free): New functions.
2732         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2733         (slist_append, slist_end_append, slist_free): New functions.
2734         (dbus_g_type_specialized_builtins_init): Add append fuctions
2735         for GPtrArray and GSList.  Register GSList.
2736         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2737
2738         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2739         New.
2740         (dbus_g_type_specialized_collection_init_append)
2741         (dbus_g_type_specialized_collection_append)
2742         (dbus_g_type_specialized_collection_end_append): Prototype.
2743         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2744         end_append_func.
2745
2746         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2747         (dbus_g_type_specialized_collection_append) 
2748         (dbus_g_type_specialized_collection_end_append): New functions.
2749         (dbus_g_type_map_value_iterate): Take const GValue.
2750         (dbus_g_type_collection_value_iterate): Ditto.
2751
2752         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2753         _dbus_gvalue_utils_test.
2754         
2755         * glib/dbus-gtest.h: Prototype it.
2756
2757         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2758         using uninitialized owner_list.
2759         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2760         public API.
2761         (dbus_g_proxy_end_call_internal): Update to use error set
2762         from dbus_gvalue_demarshal instead of setting it here.
2763         (dbus_g_proxy_begin_call): Move return_if_fail here.
2764
2765         * glib/dbus-gobject.c (write_interface): Update for
2766         dbus_gtype_to_signature returning new string.
2767
2768         * configure.in: Add glib/examples/statemachine.
2769
2770 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2771
2772         * configure.in: Add a configure option, --with-console-auth-dir
2773         
2774         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2775         new setting.  Patch from Kay Sievers.
2776
2777 2005-07-06  Colin Walters  <walters@verbum.org>
2778
2779         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2780         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2781         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2782         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2783         Delete in favor of dbus_g_proxy_begin_call and
2784         dbus_g_proxy_cancel_call.
2785         (DBusGProxyCall, DBusGProxyCallNotify): New.
2786         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2787         data, and destroy function.  This replaces
2788         dbus_g_pending_call_set_notify.
2789         (dbus_g_proxy_cancel_call): Prototype.
2790         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2791
2792         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2793         pending_calls map.
2794         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2795         internal proxy for calls to the bus. Remove
2796         pending_nameowner_calls, now the internal proxy keeps track.
2797         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2798         pending_nameowner_calls.
2799         (got_name_owner_cb): Update prototype, and use
2800         dbus_g_proxy_end_call.
2801         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2802         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2803         favor of using internal proxy.
2804         (dbus_g_proxy_manager_unregister): Update to use
2805         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2806         (dbus_g_proxy_init): Initialize pending calls map.
2807         (dbus_g_proxy_constructor): New.
2808         (dbus_g_proxy_class_init): Add get/set property functions,
2809         constructor, and add NAME, PATH, and INTERFACE properties.
2810         (cancel_pending_call): New function.
2811         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2812         cancel them.
2813         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2814         (GPendingNotifyClosure): New structure.
2815         (d_pending_call_notify, d_pending_call_free): Moved here from
2816         dbus-glib.c.
2817         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2818         ordering.
2819         (manager_begin_bus_call): New internal function for talking to
2820         internal bus proxy.
2821         (dbus_g_proxy_new): Construct object using GObjet properties.
2822         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2823         Create closure of same, and insert call into map of pending calls.
2824         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2825         call.  Look up pending call in current set.  Remove it when we've
2826         completed.
2827         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2828         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2829         and destroy function directly.
2830         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2831         (dbus_g_proxy_call): Invoke with NULL callback.
2832         (dbus_g_proxy_cancel_call): New function, replaces
2833         dbus_g_pending_call_cancel.
2834
2835         * glib/dbus-gparser.c (validate_signature): Fix call to
2836         dbus_set_g_error.
2837
2838         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2839         New quark for attaching metadata to GType.
2840         (info_hash): Delete.
2841         (lookup_object_info): Look up using quark.
2842         (dbus_g_object_type_install_info): Check that a type is classed,
2843         not that it's an object.  Also just install type data using quark
2844         instead of using global hash.
2845
2846         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2847         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2848         (GPendingNotifyClosure): Delete.
2849         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2850         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2851
2852         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2853         client method generation until we can fix it...
2854         
2855         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2856         (load_from_service_thread_func): Ditto.
2857
2858         * tools/dbus-names-model.c (struct NamesModel): Hold
2859         DBusGProxyCall.
2860         (have_names_notify): Update prototype, use
2861         dbus_g_proxy_cancel_call.
2862         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2863
2864         * tools/dbus-monitor.c (filter_func): Update for print_message
2865         API change.
2866
2867         * test/glib/test-dbus-glib.c: Add more tests for async
2868         invocations.  Update many begin_call/end_call pairs to just use
2869         dbus_g_proxy_call.
2870
2871         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2872         allows us to dump print-introspect.c.
2873
2874         * tools/dbus-print-message.h (print_message): Add literal argument
2875         to print_message which is intended to allow printing arguments without
2876         metadata like "string=".
2877
2878         * tools/dbus-print-message.c (print_iter): Add literal argument.
2879         (print_message): Allow printing string messages literally.
2880
2881 2005-07-05  Colin Walters  <walters@verbum.org>
2882
2883         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2884         Remove value refcount leak, original patch from Jorn Baayen
2885         <jorn@openedhand.com>.  Also remove useless extra value in favor
2886         of prepending to value array directly.
2887
2888 2005-07-02  Colin Walters  <walters@verbum.org>
2889
2890         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2891
2892 2005-07-01  Colin Walters  <walters@verbum.org>
2893
2894         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2895         
2896         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2897         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2898         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2899         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2900
2901 2005-06-30  Colin Walters  <walters@verbum.org>
2902
2903         * test/glib/test-dbus-glib.c:
2904         * test/glib/test-service-glib.c:
2905         * test/glib/test-service-glib.xml: Update tests for new error
2906         setting bits, also add async tests (patch from Ross Burton).
2907
2908         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2909         DBUS_GLIB_THREADS_LIBS.
2910
2911         * glib/dbus-gproxy.c (get_name_owner)
2912         (dbus_g_pending_call_end_valist): Ditto.
2913
2914         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2915         domain (GQuark) to DBusGErrorInfo.  
2916         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2917         quark in error_metadata.  Take message interface as default
2918         error message interface.
2919         (gerror_to_dbus_error_message): Pass message interface.
2920         (dbus_set_g_error): Resurrected.
2921         (dbus_g_error_info_free): New function.
2922         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2923         of _peek to actually create the object class if it hasn't been
2924         created yet.
2925         (dbus_g_error_domain_register): New function.
2926
2927         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2928
2929         * glib/dbus-gparser.c (validate_signature): Ditto.
2930
2931         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2932         (dbus_g_error_domain_register): Prototype.
2933
2934         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2935         Update tests.
2936
2937 2005-06-29  Colin Walters  <walters@verbum.org>
2938
2939         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2940         DBUS_TYPE_G_OBJECT_PATH.
2941
2942         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2943         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2944         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2945         (dbus_g_object_path_get_g_type): New function.
2946         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2947         to DBUS_TYPE_G_OBJECT_PATH by default.
2948         (demarshal_proxy): Remove unused name variable.
2949         (demarshal_object_path, marshal_object_path): New functions.
2950         (demarshal_proxy_array, marshal_proxy_array): Delete.
2951         
2952         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2953         DBUS_TYPE_G_OBJECT_PATH to char *.
2954         (dbus_g_type_get_lookup_function): Map builtin
2955         DBUS_TYPE_G_OBJECT_PATH.
2956
2957         * test/glib/test-dbus-glib.c
2958         * test/glib/test-service-glib.c (my_object_objpath): 
2959         Adapt tests to new object path marshalling.
2960
2961 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2962
2963         * configure.in: force check for Python >= 2.4
2964
2965 2005-06-29  Colin Walters  <walters@verbum.org>
2966         
2967         Patch from Ross Burton <ross@openedhand.com>
2968         
2969         * glib/dbus-gobject.c (invoke_object_method): Unset object
2970         value in all cases, not only in async case.
2971
2972 2005-06-29  Colin Walters  <walters@verbum.org>
2973
2974         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2975         name_call for keeping track of any outgoing GetNameOwner call.
2976         Also add for_owner and associated.
2977         (struct _DBusGProxyManager): Add owner_names, which is hash table
2978         that maps a base name to a list of names it owns (that we're
2979         interested in).  Add pending_nameowner_calls which is a list of
2980         all outstanding GetNameOwner; avoids us having to iterate over
2981         every proxy.  Add unassociated_proxies which keeps track of name
2982         proxies with no associated name owner.
2983         (dbus_g_proxy_manager_unref): Destroy owner_names.
2984         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2985         name refcounts.
2986         (find_name_in_info, name_owner_foreach)
2987         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2988         (dbus_g_proxy_manager_monitor_name_owner)
2989         (dbus_g_proxy_manager_unmonitor_name_owner)
2990         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2991         New functions; they manipulate the owner_names mapping.
2992         (got_name_owner_cb): New function.
2993         (get_name_owner): New function, extracted from
2994         dbus_g_proxy_new_for_name_owner.
2995         (dbus_g_proxy_manager_register): For now we need to keep track of
2996         all NameOwnerChanged.  Also if the proxy is for a name, if we
2997         don't already know the name owner, queue a new GetNameOwner
2998         request and add it to our list of unassociated proxies.  Otherwise
2999         inc the refcount.
3000         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3001         cancel any pending GetNameOwner call, etc.
3002         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3003         the owner_names mapping to look up the current names for the
3004         signal source, and dispatch to any proxies for that name.
3005         (dbus_g_proxy_new): Initialize new members.
3006         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3007         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3008         (dbus_g_pending_call_end_valist): New function, extracted from
3009         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3010         but want to use the GLib infrastructure.  Also note how many
3011         arguments in reply were over.
3012         (dbus_g_pending_call_end): New function, just call
3013         dbus_g_pending_call_end_valist.
3014         (dbus_g_proxy_end_call_internal): Just call
3015         dbus_g_pending_call_end_valist.
3016
3017         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3018         of builtin marshaller for STRING_STRING_STRING.
3019
3020         * test/glib/test-dbus-glib.c: 
3021         * test/glib/test-service-glib.c:
3022         * test/glib/test-service-glib.xml:
3023         Extend tests to cover name proxies, destruction of owner proxies,
3024         etc.
3025         
3026         * glib/examples/example-signal-recipient.c
3027         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3028         
3029         * tools/dbus-send.c (main): Print D-BUS error name in addition
3030         to message.
3031
3032 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3033
3034         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3035         cmessage_function_handler): Patch from 
3036         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3037         by using the Py_GILState_Ensure/Release to synchronize with the
3038         python runtime.
3039         
3040 2005-06-28  Ray Strode  <rstrode@redhat.com>
3041
3042         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3043         babysitter helper process on last unref, bug #2813.
3044
3045 2005-06-27  Colin Walters  <walters@verbum.org>
3046
3047         * test/glib/test-dbus-glib.c: 
3048         * test/glib/test-service-glib.c:
3049         * test/glib/test-service-glib.xml:
3050         Test hash table signal emitting.
3051
3052         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3053         types to their fundamental basis types, since this is what
3054         marshallers operate on.  Also add an entry for VOID__BOXED.
3055         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3056
3057 2005-06-26  Havoc Pennington  <hp@redhat.com>
3058
3059         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3060         from Don Park
3061
3062 2005-06-26  Colin Walters  <walters@verbum.org>
3063
3064         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3065         (dbus_g_error_set): New public function from its ashes; used by
3066         both service-side method implementation and GLib bindings
3067         internals.
3068         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3069         (_dbus_glib_test): Add some tests.
3070
3071         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3072
3073         * test/glib/test-service-glib.c (my_object_throw_error): Use
3074         dbus_g_error_set.
3075
3076         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3077         errors thrown by dbus_g_error_set.
3078
3079         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3080
3081         * glib/dbus-gparser.c (validate_signature): Ditto.
3082
3083         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3084         (dbus_g_proxy_end_call_internal): Ditto.
3085
3086         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3087         converts DBUS_ERROR_x to DBUS_GERROR_x.
3088         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3089
3090         * doc/TODO: Remove error TODO.
3091
3092         * doc/dbus-tutorial.xml: Update with documentation about error
3093         handling.
3094
3095         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3096         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3097         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3098
3099 2005-06-22  Colin Walters  <walters@verbum.org>
3100         
3101         Patch from Ross Burton <ross@openedhand.com>
3102
3103         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3104
3105 2005-06-20  Colin Walters  <walters@verbum.org>
3106
3107         * configure.in: Add glib/examples.
3108
3109         * glib/Makefile.am: Add examples/
3110
3111         * glib/examples/.cvsignore
3112         * glib/examples/Makefile.am
3113         * glib/examples/example-client.c
3114         * glib/examples/example-service.c
3115         * glib/examples/example-service.xml
3116         * glib/examples/example-signal-emitter.c
3117         * glib/examples/example-signal-emitter.xml
3118         * glib/examples/example-signal-recipient.c:
3119         New files; GLib binding examples, ported from
3120         python/examples.
3121
3122 2005-06-20  Colin Walters  <walters@verbum.org>
3123
3124         * dbus/dbus-glib.h: 
3125         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3126         dbus_g_proxy_call.
3127
3128         * glib/dbus-binding-tool-glib.c: 
3129         * doc/dbus-tutorial.xml: 
3130         * test/glib/test-dbus-glib.c: Update for rename.
3131         
3132 2005-06-20  Colin Walters  <walters@verbum.org>
3133
3134         Patch suggested by Ross Burton <ross@openedhand.com>
3135
3136         * glib/dbus-gobject.c (export_signals): Free signal name.
3137         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3138         memory leak.  Add a bit of documentation.
3139         (dbus_g_method_return_error): Free context, and note we do
3140         so.
3141
3142 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3143
3144         * dbus/dbus-glib.h:
3145         * glib/dbus-gobject.c:
3146         * glib/dbus-gproxy.c:
3147         * glib/dbus-gvalue.c: Predeclare structs as 
3148         typedef struct _Something Something instead of 
3149         typedef struct Something Something, so we can 
3150         redeclare the prototypes. Other GNOME libraries 
3151         do this already.
3152
3153 2005-06-17  Colin Walters  <walters@verbum.org>
3154
3155         * tools/dbus-names-model.c (have_names_notify): Fix call
3156         to dbus_g_proxy_end_call.
3157         
3158 2005-06-17  Colin Walters  <walters@verbum.org>
3159
3160         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3161         spew warnings if we get malformed remote signals.
3162
3163         * glib/dbus-gobject.c (propsig_iterate): New function.
3164         (lookup_object_info): New function, extracted from
3165         lookup_object_and_method.
3166         (introspect_properties, introspect_signals): Delete; these
3167         are merged into write_interface.
3168         (write_interface): Write out signals and properties here;
3169         dump the org.gtk.object stuff and use the interface given
3170         in the introspection data blob.  Also fix up property XML.
3171         (lookup_values): New function.
3172         (introspect_interfaces): Gather a mapping from interface to a
3173         list of its methods, signals, and properties, then write out
3174         each interface.
3175         (lookup_object_and_method): Use lookup_object_info.
3176         (struct DBusGSignalClosure): Add interface.
3177         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3178         we can just use the constant data.
3179         (dbus_g_signal_closure_finalize): Don't free signal name.
3180         (signal_emitter_marshaller): Use interface from signal closure.
3181         (export_signals): Only export signals mentioned in introspection
3182         blob.
3183         (dbus_g_connection_register_g_object): Warn if we have no
3184         introspection data for an object.
3185         (funcsig_equal): Remove unused variable.
3186         (dbus_g_object_register_marshaller): Take varargs instead of
3187         list.
3188         (dbus_g_object_register_marshaller_array): New function,
3189         extracted from old dbus_g_object_register_marshaller.
3190
3191         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3192         signals and property data.
3193         (write_quoted_string): New function, extracted from generate_glue.
3194         (generate_glue): Write signals and properties to introspection
3195         blob.
3196
3197         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3198         exported_signals and exported_properties.
3199         (dbus_g_object_register_marshaller): Update prototype.
3200         (dbus_g_object_register_marshaller_array): Prototype.
3201         
3202         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3203
3204         * test/glib/test-service-glib.c: Add new test signals and method
3205         to emit them.
3206
3207         * test/glib/test-service-glib.xml: Add some test signals.
3208
3209         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3210         and my-object-marshal.h
3211         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3212         my-object-marshal.c.
3213         (my-object-marshal.c, my-object-marshal.h): Implement.
3214
3215         * test/glib/.cvsignore: Update.
3216
3217         * doc/TODO: Remove two GLib TODO items fixed by this
3218         patch.
3219
3220 2005-06-16  Colin Walters  <walters@verbum.org>
3221
3222         * doc/TODO: Update for GLib bindings.
3223         
3224 2005-06-16  Colin Walters  <walters@verbum.org>
3225
3226         * glib/dbus-binding-tool-glib.c:
3227         * glib/dbus-gobject.c:
3228         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3229         from Ross Burton, for his GLib bindings work.
3230
3231 2005-06-16  Colin Walters  <walters@verbum.org>
3232
3233         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3234         to iterate instead of walking to G_TYPE_INVALID.
3235
3236         Patch based on a patch from Ryan Gammon.
3237
3238 2005-06-16  Colin Walters  <walters@verbum.org>
3239
3240         * bus/bus.c (bus_context_new): Set parser to NULL
3241         after we unref it (Patch from Chris Boscolo, #2174).
3242         
3243 2005-06-16  Colin Walters  <walters@verbum.org>
3244
3245         * python/dbus_bindings.pyx.in: Import size_t,
3246         __int64_t, __uint64_t, and __signed.
3247
3248         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3249         Define cmsg struct, output it.
3250         (_dbus_read_credentials_unix_socket):
3251         Use cmsg struct.
3252         
3253         Patch from Joe Markus Clarke for FreeBSD support.
3254         
3255 2005-06-16  Colin Walters  <walters@verbum.org>
3256
3257         * tools/dbus-send.c (append_array): Use strtok.
3258         (append_dict): New function.
3259         (type_from_name): New function, extracted from main.
3260         (main): Handle sending dicts.
3261
3262         * tools/dbus-print-message.c (print_iter): Print dict
3263         entries.
3264         
3265 2005-06-16  Colin Walters  <walters@verbum.org>
3266
3267         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3268         values as the empty string (#2948).
3269         
3270 2005-06-16  Colin Walters  <walters@verbum.org>
3271
3272         * dbus/Makefile.am:
3273         * mono/doc/Makefile.am:
3274         * test/glib/Makefile.am:
3275
3276         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3277
3278 2005-06-16  Colin Walters  <walters@verbum.org>
3279
3280         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3281         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3282
3283         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3284         Increment pointer after swapping fixed array.  Add assertion
3285         for array length.
3286                 
3287 2005-06-15  Colin Walters  <walters@verbum.org>
3288
3289         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3290         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3291         
3292 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3293
3294         * NEWS: Update to 0.34
3295
3296 2005-06-15  David Zeuthen  <davidz@redhat.com>
3297
3298         * configure.in (LT_CURRENT): Revert back to 1 as the library
3299         hasn't changed and we've certainly not committed to protocol
3300         stability yet.  All this does is to break ABI. See commit note
3301         from hp@redhat.com 2005-05-05 for details.
3302         
3303 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3304
3305         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3306         (_dbus_connection_run_builtin_filters): New method
3307         (dbus_connection_dispatch): Run the builtin filters which in turn
3308         runs the peer filter which handles Ping messages.
3309
3310         * doc/TODO: 
3311          - Ping isn't handled: This patch fixes it
3312          
3313          - Add a test case for the Ping message: added TODO item
3314
3315 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3316
3317         * dbus/dbus-message.c:
3318         (dbus_message_has_path): New method
3319         (dbus_message_has_interface): New method
3320         (dbus_message_has_member): New method
3321
3322         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3323         New method
3324
3325         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3326         the keyring directory is private to the user
3327
3328         * doc/TODO:
3329          - The convenience functions in dbus-bus.h should perhaps have
3330          the signatures that they would have if they were autogenerated
3331          stubs. e.g. the acquire service function. We should also evaluate
3332          which of these functions to include, in light of the fact that
3333          GLib/Qt native stubs will probably also exist.: Punted
3334
3335          - add dbus_message_has_path(), maybe has_member/interface:
3336          fixed in this patch
3337
3338          - in dbus-keyring.c, enforce that the keyring dir is not
3339          world readable/writable: Fixed in this patch
3340
3341 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3342
3343         * dbus/dbus-marshal-validate.h: Added a new validation
3344         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3345         out of memory errors when validating signitures
3346
3347         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3348         in places where we previously used DBUS_VALID and a FALSE return 
3349         value to indicate OOM
3350         
3351         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3352         Use a stack to track the number of elements inside containers.  The 
3353         stack values are then used to validate that dict entries have only two
3354         elements within them.
3355         (validate_body_helper): check the reason for failure when validating
3356         varients
3357         
3358         * dbus/dbus-message.c (load_message): use 
3359         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3360         DBUS_VALID and a FALSE return value to indicate OOM
3361
3362         * doc/TODO: remove "- validate dict entry number of fields" as this
3363         patch fixes it
3364
3365 2005-06-14  David Zeuthen  <davidz@redhat.com>
3366
3367         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3368         watches (if applicable) and add new watches
3369
3370         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3371         (main): Setup SIGIO signal handler if using D_NOTIFY
3372
3373         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3374
3375         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3376         (merge_included): Also merge conf_dirs list
3377         (bus_config_parser_unref): Clear conf_dirs list
3378         (include_dir): Add directory to conf_dirs list
3379         (bus_config_parser_get_conf_dirs): New function
3380
3381         * bus/dir-watch.[ch]: New files
3382
3383         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3384
3385         * configure.in: Add checks for D_NOTIFY on Linux
3386
3387 2005-06-14  Colin Walters  <walters@verbum.org>
3388
3389         * glib/dbus-binding-tool-glib.c:
3390         * glib/dbus-gobject.c:
3391         * glib/dbus-gvalue.c: Fix indentation and brace style.
3392         
3393 2005-06-14  Ross Burton <ross@openedhand.com>.
3394
3395         * glib/dbus-glib.h: Make DBusGMethodInvocation
3396         a private structure.  Rearrange prototypes a bit.
3397         
3398         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3399         documentation for first_arg_type.
3400         
3401         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3402         here, add documentation.  Move dbus_g_method_return
3403         and dbus_g_method_return_error into public API
3404         section.
3405
3406 2005-06-14  Colin Walters  <walters@verbum.org>
3407
3408         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3409         Add missing return statements, noticed by Ross Burton.
3410         
3411 2005-06-13  Ross Burton <ross@openedhand.com>.
3412
3413         * glib/dbus-gobject.c: Handle errors on message
3414         demarshalling by sending error message back.
3415         * glib/dbus-gvalue.c: Initialize return variables.
3416
3417 2005-06-13  Colin Walters  <walters@verbum.org>
3418
3419         * glib/Makefile.am: Fix thinko in last patch.
3420
3421 2005-06-13  Colin Walters  <walters@verbum.org>
3422
3423         * glib/Makefile.am: Move dbus-gtype-specialized.c
3424         and dbus-gtype-specialized.h into a _HEADERS variable,
3425         install them.
3426
3427 2005-06-12  Colin Walters  <walters@verbum.org>
3428
3429         Async signals and various bugfixes and testing by
3430         Ross Burton <ross@openedhand.com>.
3431
3432         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3433         (dbus_gvalue_genmarshal_name_from_type)
3434         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3435         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3436         (dbus_g_value_types_init, dbus_gtype_from_signature)
3437         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3438         (dbus_gtypes_from_arg_signature): New function prototypes.
3439         (dbus_gvalue_demarshal): Take context and error arguments.
3440         (dbus_gvalue_demarshal_variant): New function.
3441         (dbus_gvalue_demarshal_message): New function.
3442         (dbus_gvalue_store): Delete.
3443
3444         * glib/dbus-gvalue.c:
3445
3446         File has been almost entirely rewritten; now we special-case
3447         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3448         hash tables correctly, etc.  Full support for recursive values
3449         is not yet complete.
3450
3451         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3452         argument of signal to G_TYPE_POINTER since we now pass a
3453         structure.
3454         (lookup_g_marshaller): Delete in favor of
3455         _dbus_gobject_lookup_marshaller.
3456         (marshal_dbus_message_to_g_marshaller): Use
3457         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3458         to handle remote signal callbacks.
3459         (dbus_g_proxy_new_from_proxy): New function; creates a new
3460         DBusGProxy by copying an existing one.
3461         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3462         (dbus_g_proxy_get_path): New functions.
3463         (dbus_g_proxy_marshal_args_to_message): New function;
3464         factored out of existing code.
3465         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3466         from a varargs array.
3467         (dbus_g_proxy_begin_call_internal): New function.
3468         (dbus_g_proxy_end_call_internal): New function.
3469         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3470         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3471         after collecting args into value array.
3472         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3473         invoke dbus_g_proxy_end_call_internal.
3474         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3475         end_call_internal.
3476         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3477         types.
3478         (array_free_all): New function.
3479         (dbus_g_proxy_add_signal): Take GTypes.
3480
3481         * glib/dbus-gobject.h:
3482         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3483         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3484         Prototype.
3485
3486         * glib/dbus-gobject.c: Add a global marshal_table hash which
3487         stores mappings from type signatures to marshallers.  Change lots
3488         of invocations of dbus_gtype_to_dbus_type to
3489         dbus_gtype_to_signature.
3490         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3491         (introspect_signals): Fix test for query.return_type.
3492         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3493         (invoke_object_method): Many changes.  Handle asynchronous
3494         invocations.  Convert arguments with
3495         dbus_gvalue_demarshal_message.  Handle errors.  Use
3496         DBusSignatureIter instead of strlen on args. Handle all arguments
3497         generically.  Special-case variants.
3498         (dbus_g_method_return, dbus_g_method_return_error): New function.
3499         (DBusGSignalClosure): New structure, closes over signal
3500         information.
3501         (dbus_g_signal_closure_new): New function.
3502         (dbus_g_signal_closure_finalize): New function.
3503         (signal_emitter_marshaller): New function; is special marshaller
3504         which emits signals on bus.
3505         (export_signals): New function; introspects object signals and
3506         connects to them.
3507         (dbus_g_object_type_install_info): Take GType instead of
3508         GObjectClass.
3509         (dbus_g_connection_register_g_object): Invoke export_signals.
3510         (dbus_g_connection_lookup_g_object): New function.
3511         (DBusGFuncSignature) New structure; used for mapping type
3512         signatures to marshallers.
3513         (funcsig_hash): New function; hashes DBusGFuncSignature.
3514         (funcsig_equal): New function; compares DBusGFuncSignature.
3515         (_dbus_gobject_lookup_marshaller): New function.
3516         (dbus_g_object_register_marshaller): New function; used to
3517         register a marshaller at runtime for a particular signature.
3518
3519         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3520
3521         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3522         which notes a server method implementation should be
3523         asynchronous.
3524
3525         * glib/dbus-binding-tool-glib.c
3526         (dbus_binding_tool_output_glib_server): Call
3527         dbus_g_value_types_init.
3528         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3529         variants specially.
3530         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3531         of a lookup function.
3532         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3533         (write_untyped_out_args): New method; write output arguments.
3534         (write_formal_declarations_for_direction): Function for
3535         writing prototypes.
3536         (write_formal_parameters_for_direction): Function for
3537         writing implementations.
3538         (write_typed_args_for_direction): Function for writing
3539         arguments prefixed with GTypes.
3540         (write_async_method_client): Write out async version
3541         of method.
3542
3543         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3544         (dbus_g_type_get_marshal_name): Move mapping from GType
3545         to marshal name into here.
3546         (dbus_g_type_get_c_name): Move into here.
3547         (compute_marshaller): Convert signature to type with
3548         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3549         (compute_marshaller_name): Ditto.
3550         (compute_marshaller): Handle async signal annotations.
3551         (gather_marshallers): Return if we don't have a known
3552         prefix.
3553         (generate_glue): Collect introspection blob here, and
3554         write all of the blob at the end.  This allows an object
3555         with multiple interfaces to work.
3556         Mark async methods in introspection blob.
3557
3558         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3559         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3560         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3561
3562         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3563         avoids people accidentally using DBUS_TYPE_* which should
3564         not be necessary anymore.
3565         Do include dbus-gtype-specialized.h, which are utilities
3566         for GLib container types.
3567         Add various #defines for types such as
3568         DBUS_TYPE_G_BOOLEAN_ARRAY.
3569         (DBusGValueIterator, DBusGValue): Define, not fully used
3570         yet.
3571         (dbus_g_value_get_g_type): Type for recursive value.
3572         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3573         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3574         (dbus_g_value_free): Prototypes.
3575         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3576         (dbus_g_proxy_set_interface): Prototype.
3577         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3578         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3579         types.
3580         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3581         Accessors.
3582         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3583         doing async invocations.
3584         (dbus_g_method_return, dbus_g_method_return_error):
3585         Prototypes.
3586         * doc/dbus-tutorial.xml: Update GLib section.
3587         
3588         * tools/dbus-viewer.c (load_child_nodes): Update
3589         for new invocation type of dbus_g_proxy_end_call.
3590         (load_from_service_thread_func): Ditto.
3591
3592         * tools/print-introspect.c (main): Ditto.
3593
3594         * tools/dbus-names-model.c (have_names_notify)
3595         (names_model_reload, names_model_set_connection)
3596         Use GTypes.
3597
3598         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3599         needed since Python bindings use GLib bindings.
3600
3601         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3602         Add --prefix argument.
3603
3604         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3605         unneeded --ignore-unsupported arg.
3606         
3607         * test/glib/test-service-glib.c: 
3608         * test/glib/test-service-glib.xml:
3609         * test/glib/test-dbus-glib.c: Add many more tests.
3610
3611 2005-06-06  David Zeuthen  <davidz@redhat.com>
3612
3613         * doc/TODO: Add item about need to remove deprecated functions.
3614
3615         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3616
3617         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3618         to repair the ABI which was broken with the last commit.
3619
3620 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3621
3622         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3623         (dbus_connection_disconnect): renamed to dbus_connection_close 
3624         for API symmetry with dbus_connection_open
3625         (_dbus_connection_open_internal): 
3626         s/dbus_connection_disconnect/dbus_connection_close
3627
3628         * dbus/dbus-bus.c (dbus_bus_get):
3629         s/dbus_connection_disconnect/dbus_connection_close
3630
3631         * bus/connection.c (bus_connections_unref, 
3632         bus_connections_setup_connection, bus_connections_expire_incomplete):
3633         s/dbus_connection_disconnect/dbus_connection_close
3634
3635         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3636         kill_client_connection_unchecked, check_hello_connection):
3637         s/dbus_connection_disconnect/dbus_connection_close
3638
3639         * bus/bus.c (new_connection_callback):
3640         s/dbus_connection_disconnect/dbus_connection_close
3641
3642         * tools/dbus-send.c (main):
3643         s/dbus_connection_disconnect/dbus_connection_close
3644
3645         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3646         s/dbus_connection_disconnect/dbus_connection_close
3647         
3648         * test/test-service.c (path_message_func, filter_func):
3649         s/dbus_connection_disconnect/dbus_connection_close
3650         
3651         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3652         
3653 2005-05-25  Colin Walters  <walters@verbum.org>
3654
3655         * dbus/dbus-protocol.h: Move various bus service #defines such
3656           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3657           dbus/dbus-shared.h.
3658         * dbus/dbus-shared.h: Various defines moved here.
3659         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3660
3661 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3662
3663         * python/__init__.py: Python bindings deserve a minor version
3664         update.  Upped to (0, 40, 2)
3665
3666 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3667
3668         * python/decorators.py: add explicitly_pass_message decorator
3669         for passing in the dbus message as keyword for edge case signal
3670         handling
3671
3672         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3673         to conform with what dbus expects for match rules
3674         (SignalMatchRule.execute): add the dbus message as a keyword
3675         if the signal handler has requested it
3676
3677         * python/examples/example/signal-recipient.py: added some more
3678         examples on how to hook up to signals
3679
3680 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3681
3682         * python/decorators.py: import dbus_bindings
3683
3684         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3685         SignalMatchNode): new classes that implement wildcard signal
3686         callback matching using a tree lookup. Heavily modified from a
3687         patch sent by Celso Pinto (fd.o bug #3241)
3688
3689         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3690         use new match classes to handle signals.
3691
3692 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3693         
3694         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3695
3696 2005-05-18  Havoc Pennington  <hp@redhat.com>
3697
3698         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3699         gettext. Not really worth requiring yet perhaps, but any
3700         production quality 1.0 would require it so we should go ahead and
3701         get things set up. We do have a couple token calls to
3702         bindtextdomain in the code already.
3703
3704 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3705
3706         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3707         when using recursive g_main_loops
3708
3709         * python/_dbus.py (class Bus): add the ProxyObjectClass
3710         alias for ProxyObject to make it easier for the Twisted 
3711         networking framework to integrate dbus.
3712
3713         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3714         alias for ProxyMethod to make it easier for the Twisted 
3715         networking framework to integrate dbus. 
3716
3717 2005-05-11  Ross Burton  <ross@openedhand.com>
3718
3719         * glib/dbus-glib-tool.c: Add --prefix argument.
3720         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3721         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3722         Add prefix argument.
3723         (generate_glue): Pass prefix argument down.
3724         (dbus_binding_tool_output_glib_server): Pass prefix to
3725         glib-genmarshal.
3726         
3727 2005-05-11  Colin Walters  <walters@verbum.org>
3728
3729         * tools/dbus-send.c (append_array): New function.
3730         (append_arg): Broken out from main.
3731         (main): Add cheesy hack to send arrays and variants.
3732         (usage): Update.
3733         * tools/dbus-print-message.c (print_iter): Broken out
3734         from main.
3735
3736 2005-05-11  Colin Walters  <walters@verbum.org>
3737
3738         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3739         New function, returns signature string for signature iter.
3740         * dbus/dbus-signature.h: Prototype it.
3741         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3742         New function, returns signature string for message iter.
3743         (dbus_message_iter_get_array_len): New function, returns
3744         length of array.
3745         (dbus_message_iter_get_fixed_array): Fix assertion; this
3746         function should be used when the iter is pointing to the
3747         contents of an array
3748         * dbus/dbus-message.h: Prototypes.
3749         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3750         New function; returns length of an array.
3751         * dbus/dbus-marshal-recursive.h: Prototype it.
3752         
3753 2005-05-11  Colin Walters  <walters@verbum.org>
3754
3755         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3756         compilation error.
3757         
3758 2005-05-08  Havoc Pennington  <hp@redhat.com>
3759
3760         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3761         daemon's pid, not the parent's pid, to the file descriptor.
3762         Reported by Taj Morton.
3763
3764 2005-05-05  Havoc Pennington  <hp@redhat.com>
3765
3766         * configure.in (LT_*): add notes on how the libtool versioning
3767         works to save thinking. Increment soname to indicate protocol
3768         breakage (though really the library interface hasn't changed I
3769         guess)
3770
3771         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3772         verify the GUID received from server matches what we were
3773         expecting, if we had an expectation
3774
3775         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3776         (_dbus_auth_get_guid_from_server): new function
3777         (send_begin): parse the OK args
3778
3779         * doc/dbus-specification.xml: add GUID to the auth protocol
3780
3781 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3782
3783         * Fix my name in previous changelog ;)
3784
3785         * python/proxies.py (ProxyObject.__getattr__): add further patch
3786         from Anthony Baxter to throw an AttributeError when python 
3787         __special__ functions are called instead of marshling them over 
3788         the bus (Bug#1685 comment 3).
3789
3790 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3791
3792         * python/Makefile.am: changed to use pyexecdir for the binding
3793         shared libraries (Bug#2494)
3794
3795         * python/exceptions.py: bring exceptions over from the bindings
3796         so they can be used in applications (Bug#2036)
3797         Make all exceptions derive from DBusException
3798
3799         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3800         of classes so that print obj doesn't throw an exception (Bug #1685)
3801
3802 2005-05-03  Ross Burton  <ross@openedhand.com>
3803
3804         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3805         Return if we get an error during registration.  Set up a
3806         weak reference on object to unregister if object is destroyed.
3807         (unregister_gobject): New function.
3808         
3809 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3810
3811         * python/dbus_bindings.pyx.in: 
3812         - added new type classes for hinting to the marashaler what type 
3813         to send over the wire
3814         - added int16 and uint16 marshalers
3815         - Fixed a bug in the type constants that caused int32 to go out
3816         as uint16 over the wire
3817         * python/dbus.py: split up into different files and renamed _dbus.py
3818         * python/__init__.py, python/_util.py, python/decorators.py, 
3819         python/exceptions.py, python/proxies.py, python/services.py,
3820         python/types.py: new files split off from dbus.py
3821         * python/Makefile.am: Add new files, remove dbus.py and 
3822         install all python files to <python module dir>/dbus
3823         * python/examples/*: Added #!/usr/bin/env python to the top of
3824         every example.  Patch provided by Tatavarty Kalyan
3825
3826 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3827
3828         * NEWS: Update to 0.33
3829
3830 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3831
3832         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3833         method for doing async calls
3834         (_pending_call_notification): New C function for handling pendning call
3835         callbacks
3836         (set_notify): New method for setting pending call notification
3837         
3838         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3839         Async capabilities added to remote method calls
3840         (Sender): class removed
3841         (RemoteService): class removed
3842         (ObjectTree): class removed for now
3843         (RemoteObject): Renamed to ProxyObject
3844         (RemoteMethod): Renamed to ProxyMethod
3845         (method): Decorator added for decorating python methods as dbus methods
3846         (signal): Decorator added for decorating python methods as signal emitters
3847         (ObjectType): Metaclass added for generating introspection data and the
3848         method callback vtable
3849         (Interface): Wrapper class added to wrap objects in a dbus interface
3850         (Object): Uses ObjectType as its metaclass and exports Introspect
3851         of the org.freedesktop.DBus.Introspectable interface
3852         (ValidationException, UnknownMethodException): new exceptions
3853
3854         * python/examples/*: Modified to fit with the new bindings
3855
3856 2005-04-23  Havoc Pennington  <hp@redhat.com>
3857
3858         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3859         reported by Tony Houghton
3860
3861         * test/test-service.c (main): test
3862         dbus_connection_get_object_path_data()
3863
3864         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3865         the exact_match
3866         (_dbus_object_tree_get_user_data_unlocked): new function used by
3867         dbus_connection_get_object_path_data()
3868         (do_register): add assertion test for get_user_data_unlocked
3869         (object_tree_test_iteration): more tests
3870
3871         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3872         new function from Dan Reed to let you get the user data from 
3873         dbus_connection_register_object_path()
3874
3875 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3876
3877         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3878         in numerous places that did not account for the NULL terminator
3879         (signature_from_seed): changed the manual string copy loop to 
3880         just use strcpy instead
3881         make check should now pass
3882
3883 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3884
3885         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3886         so that it allows messages that are not signals to pass in 
3887         NULL as the interface.
3888
3889 2005-04-18  David Zeuthen  <davidz@redhat.com>
3890
3891         * glib/dbus-gmain.c (io_handler_destroy_source): 
3892         (timeout_handler_destroy_source, connection_setup_free): 
3893         Also unref the source to avoid memory leaks.
3894
3895 2005-04-13  David Zeuthen  <davidz@redhat.com>
3896
3897         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3898         more reasonable, yet still totally arbitrary, value :-). 
3899
3900 2005-04-13  David Zeuthen  <davidz@redhat.com>
3901
3902         * doc/TODO: Added an "important for 1.0" item about selinux
3903         allow/deny messages
3904
3905 2005-04-13  David Zeuthen  <davidz@redhat.com>
3906
3907         * bus/selinux.c: Add c-file-style to top of file
3908         (log_audit_callback): Don't free the data here anymore
3909         (bus_selinux_check): Don't take spid and tpid since appending
3910         that to auxdata may OOM.
3911         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3912         to the caller if we are OOM by taking an error object.
3913         (bus_selinux_allows_send): -do-
3914
3915         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3916         and bus_selinux_allows_send
3917
3918         * bus/bus.c (bus_context_check_security_policy): Pass error and
3919         pass on OOM thrown by bus_selinux_allows_send()
3920
3921         * bus/services.c (bus_registry_acquire_service): Pass error and
3922         pass on OOM thrown by bus_selinux_allows_acquire_service()
3923
3924 2005-04-13  Havoc Pennington  <hp@redhat.com>
3925
3926         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3927         message at a time to avoid monopolizing the main loop, bug 
3928         #2953 from Benjamin Otte
3929
3930 2005-04-09  Havoc Pennington  <hp@redhat.com>
3931
3932         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3933         possible overlap, fix from Daniel Reed
3934         (fixup_alignment): fix signedness warnings
3935         (_dbus_string_append_unichar): ditto
3936
3937 2005-04-09  Havoc Pennington  <hp@redhat.com>
3938
3939         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3940
3941         * glib/dbus-glib-tool.c (main): fix warning
3942
3943         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3944
3945         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3946         add a new function that can be used in simple applications that
3947         don't have a main loop and are willing to block
3948
3949 2005-04-05  David Zeuthen  <davidz@redhat.com>
3950
3951         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3952
3953         * glib/dbus-gmain.c:
3954         (io_handler_destroy_source): Remove from list of IO handlers
3955         of the ConnectionSetup object
3956         (timeout_handler_destroy_source): -do- for timeout handlers
3957         (io_handler_source_finalized): Don't remove from list since
3958         we now do that in io_handler_destroy_source(). Renamed from
3959         io_handler_source_destroyed
3960         (timeout_handler_source_destroyed): -do- for timeout handlers
3961         (connection_setup_free): It is now safe to iterate over all
3962         IO and timeout handlers as the _destroy_source removes them
3963         from the list synchronously
3964
3965 2005-03-30  Havoc Pennington  <hp@redhat.com>
3966
3967         * configure.in: change check to gtk 2.4
3968
3969         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3970         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3971         to 2.4
3972
3973 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3974
3975         * News: Update 0.32
3976
3977         * HACKING: Fixed realease instructions.  configure.in should be updated to
3978           the next release by the person who made the last release.
3979
3980 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3981
3982         * python/lvalue_cast_post_process.py - removed.  Patch has been
3983           submitted to Pyrex maintainers that fixes gcc4.0 errors
3984
3985         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3986
3987 2005-03-24  Daniel Reed  <n@ml.org>
3988
3989         * tools/Makefile.am: Make print-introspect and
3990         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3991
3992 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3993
3994         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3995
3996         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3997           had in Red Hat packages for a while but for some reason never 
3998           got merged upstream
3999           (_dbus_is_a_number): New checks if a string
4000           can be converted to a number and does the conversion if it can
4001           (_dbus_user_database_lookup): Add check to see if the given username
4002           is a udi.  This allows udi's to be used instead of usernames in the
4003           config file.
4004           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4005           is a gdi.  This allows gdi's to be used instead of groupnames in the
4006           config file.
4007
4008 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4009
4010         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4011           code so that it compiles with gcc4.0
4012
4013         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4014           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4015           results back to dbus_binding.c
4016
4017 2005-03-20  Colin Walters  <walters@verbum.org>
4018
4019         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4020
4021         * configure.in: Require GTK+ 2.6.
4022         
4023 2005-03-20  Colin Walters  <walters@verbum.org>
4024
4025         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4026
4027 2005-03-17  Tom Parker  <palfrey@tevp.net>
4028
4029         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4030         print DBUS_UID_UNSET; instead print passed username.  Also
4031         be sure to actually use gid looked up in cache.
4032         
4033         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4034         for DBUS_GID_UNSET and groupname.
4035
4036 2005-03-17  Colin Walters  <walters@verbum.org>
4037
4038         * bus/print-introspect.c: Move to tools/.
4039         * bus/run-with-tmp-session-bus.sh: Ditto.
4040         
4041         * glib/Makefile.am (dbus-glib-bindings.h): Move
4042         generation to tools/Makefile.am.
4043
4044         * test/glib/run-test.sh: Update to handle move
4045         of run-with-tmp-session-bus.sh.
4046
4047         * test/glib/test-service-glib.c: Update to handle
4048         move of dbus-glib-bindings.h.
4049
4050         * tools/print-introspect.c: Moved here
4051         from bus/, and ported to GLib bindings.
4052
4053         * tools/run-with-tmp-session-bus.sh: Moved here
4054         from bus/.
4055
4056         * tools/Makefile.am: Generate dbus-glib-bindings.h
4057         and dbus-bus-introspect.xml here.
4058
4059         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4060         Update.
4061
4062 2005-03-17  Colin Walters  <walters@verbum.org>
4063
4064         * bus/driver.c (write_args_for_direction): Use
4065         _dbus_string_get_const_data to retrieve string;
4066         _dbus_string_get_const_data_len doesn't actually return
4067         a NULL-terminated substring.
4068
4069         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4070         (main): Change to use org_freedesktop_DBus_request_name
4071         instead of using g_proxy_begin_call/end_call.
4072
4073 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4074
4075         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4076         generating the finalizer.  Fixes from Ben Maurer.
4077
4078 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4079
4080         * mono/BusDriver.cs: Update method names: ListServices
4081         becomes ListNames; GetOwner becomes GetNameOwner.
4082
4083         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4084         onto the eval stack when removing the delegate.
4085
4086 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4087
4088         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4089         LT_CURRENT.  Set it to the autoconf variable.
4090                                                                                 
4091         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4092         classes that disconnects the signal handler delegate from the
4093         service object.  Fixes a big leak of proxy objects on the
4094         client side of things.  Patch from Ben Maurer
4095         <bmaurer@ximian.com>
4096
4097 2005-03-12  Colin Walters  <walters@verbum.org>
4098
4099         * bus/driver.c (write_args_for_direction): New function,
4100         parses a type signature into arguments and outputs to
4101         XML.
4102         (bus_driver_handle_introspect): Use it instead of
4103         hardcoding XML for certain signatures.
4104         
4105         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4106         dependency on dbus-daemon.
4107
4108         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4109         argument, pass it to dbus_binding_tool_output_glib_client.
4110
4111         * glib/dbus-binding-tool-glib.c
4112         (generate_client_glue): Protect against multiple inclusion.
4113         (dbus_binding_tool_output_glib_client): Add
4114         G_BEGIN_DECLS/G_END_DECLS.
4115
4116         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4117         Change to just take iface prefix directly.
4118         (write_formal_parameters): Clarify error message.
4119         (check_supported_parameters): New function; checks to see type
4120         signatures of method parameters are supported.
4121         (generate_client_glue): Handle ignore_unsupported flag.
4122         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4123         parameter.
4124
4125         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4126         --ignore-unsupported by default until glib bindings
4127         support arrays.
4128
4129 2005-03-11  Colin Walters  <walters@verbum.org>
4130
4131         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4132         install it.
4133
4134         * bus/print-introspect.c: New file; prints introspection
4135         data for a given name and object path.
4136
4137         * bus/run-with-tmp-session-bus.sh: New file, refactored
4138         from test/glib/run-test.sh.  Creates a temporary session
4139         bus and runs another program.
4140
4141         * test/glib/run-test.sh: Refactor to invoke
4142         run-with-tmp-session-bus.sh.
4143
4144         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4145         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4146         macros instead of hardcoding.
4147
4148         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4149
4150 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4151
4152         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4153         this unref; it doesn't match up evenly in some codepaths.
4154         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4155         this evenly matches with the ref near the top of this function.
4156
4157 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4158
4159         * dbus/dbus-object-tree.c
4160         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4161         and we try to unregister a path that's not registered, still go
4162         through the process of unlocking and don't just return.
4163
4164 2005-03-09  Colin Walters  <walters@verbum.org>
4165
4166         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4167         to this are generated for client-side wrappers.  Invokes a
4168         D-BUS method and returns reply values.  
4169
4170         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4171         function; writes signature string for argument direction.
4172         (write_args_for_direction): Change to pass input values directly
4173         instead of via address, and fix indentation.
4174         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4175         make generated wrappers inlineable.
4176
4177         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4178         note about using dbus_type_is_fixed.
4179
4180         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4181         dbus/dbus-signature.c as dbus_type_is_fixed.
4182
4183         All callers updated.
4184
4185         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4186         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4187
4188         * dbus/dbus-signature.h: Prototype.
4189
4190         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4191         error printf code.
4192
4193         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4194         appropriate instead of just freeing it.
4195         (main): Free returned strings using g_free.
4196
4197         * test/glib/Makefile.am (test-service-glib-glue.h)
4198         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4199
4200         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4201         simply maps a simple D-BUS type to GType.
4202         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4203         GType.
4204         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4205         initialize the value with it.
4206         (dbus_gvalue_binding_type_from_type): Unused, delete.
4207         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4208         various types instead of unmarshalling to value data directly.
4209         Remove can_convert boolean.
4210         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4211         returning directly instead of using can_convert boolean.
4212         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4213         Stores a GValue in a pointer to a value of its corresponding C
4214         type.
4215
4216         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4217         add dbus_gvalue_store.
4218
4219 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4220
4221         Fix a bunch of lifecycle and memory management problems
4222         in the mono bindings.
4223
4224         * mono/Arguments.cs (Arguments): Implement IDisposable
4225
4226         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4227         strictly a static class.
4228
4229         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4230         delegates into this file.
4231         (Connection): Implement IDisposable.
4232         (Dispose): Disconnect the connection and set the raw connection
4233         pointer to IntPtr.Zero.
4234         (~Connection): Call Dispose().
4235         (RegisterObjectPath): Added.  Manages the registration of object
4236         paths so we can cleanly disconnect them at dispose/finalize time.
4237         (UnregisterObjectPath): Ditto.
4238         (set_RawConnection): Unregister all of the object paths when
4239         changing the underlying DBusConnection.  Add them back onto the
4240         new connection, if any.
4241
4242         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4243         more unmanaged resources anymore, so it's not necessary.  Move all
4244         the DBusObjectPathVTable stuff out of here.
4245         (Handler): Save references to our delegates so that they don't get
4246         finalized.  Call Connection.RegisterObjectPath() instead of
4247         dbus_connection_register_object_path() directly.
4248         (Message_Called): Dispose the message after we're finished with
4249         it.
4250
4251         * mono/Message.cs (Message): Implement IDisposable.
4252         (Dispose): Dispose the Arguments, and set the RawMessage to
4253         IntPtr.Zero.
4254         (SendWithReplyAndBlock): We own the ref to the reply that comes
4255         back from dbus_connection_send_with_reply_and_block() so add a
4256         comment about that and unref it after we've constructed a managed
4257         MethodReturn class around it.  Fixes a big, big leak.
4258
4259         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4260         method.
4261         (BuildSignalHandler): After we've sent the Signal message, dispose
4262         of it.
4263         (BuildMethod): Dispose of the method call and reply messages after
4264         we've sent the message and extracted the data we want from the
4265         reply.
4266
4267         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4268         anymore.
4269         (Service_FilterCalled): Dispose of the message after we're
4270         finished with it.
4271
4272 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4273
4274         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4275         After we attach our pending call to the connection, unref
4276         it.  Fixes a leak.
4277  
4278         * mono/Connection.cs (set_RawConnection): Disconnect our
4279         filter and match callbacks from the old connection and
4280         reconnect them to the new connection, if any.
4281
4282         * mono/DBusType/Array.cs: "Code" is a static member, so
4283         don't use "this" to refer to it.  Fix for stricter checking
4284         in Mono 1.1.4.
4285  
4286         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4287         object path that we pass into unmanaged code.
4288  
4289         * mono/DBusType/String.cs (Append): Don't leak the string
4290         that we pass into unmanged code.
4291
4292 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4293         * NEWS: Update for 0.31
4294
4295         * configure.in: Release 0.31
4296         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4297
4298         * qt/Makefile.am: fixed build
4299
4300         * dbus/Makefile.am: soname bump for libdbus
4301
4302         * glib/Makefile.am: soname bump for libdbus-glib
4303
4304 2005-03-05  Havoc Pennington  <hp@redhat.com>
4305
4306         * dbus/dbus-sysdeps.c:
4307         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4308         value
4309         (_dbus_generate_random_bytes_buffer): fix return value
4310
4311         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4312         checks actually work, from Tom Parker <fdo@tevp.net>
4313
4314 2005-03-01  Colin Walters  <walters@verbum.org>
4315
4316         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4317         functions copied from dbus-glib-tool.c.
4318         (main): Convert lots of error code to use them.
4319         Also add some testing for introspection bits.
4320
4321 2005-03-01  Colin Walters  <walters@verbum.org>
4322         
4323         * doc/TODO: Remove introspection signature TODO.
4324
4325 2005-02-27  Colin Walters  <walters@verbum.org>
4326
4327         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4328         Change return value to const char * instead of int so we can do
4329         full signatures.
4330         (struct PropertyInfo, struct ArgInfo): Store char *.
4331         (property_info_new, arg_info_new): Update parameters, strdup.
4332         (property_info_unref, arg_info_unref): Free.
4333
4334         * glib/dbus-gidl.h: Update prototypes.
4335
4336         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4337         (validate_signature): New function, just validates signature and
4338         sets GError.
4339         (parse_property, parse_arg): Invoke validate_signature.  Store
4340         signature instead of just type code.
4341
4342         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4343         function to return a primary type for a signature, dropping
4344         information about types in container types.
4345         (dbus_gvalue_genmarshal_name_from_type)
4346         (dbus_gvalue_binding_type_from_type)
4347         (dbus_gvalue_ctype_from_type): Update to take full signature
4348          instead of type code.
4349         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4350
4351         * glib/dbus-gvalue.h: Update prototypes for above.
4352
4353         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4354         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4355         (introspect_properties, introspect_signals, write_interface):
4356         Update to handle signatures, and remove usage of
4357         _dbus_gutils_type_to_string.
4358         (handle_introspect): Print out type codes instead of e.g. "string"
4359         in hardcoded introspection XML; also use x_AS_STRING constants
4360         instead of hardcoding in string.
4361
4362         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4363         to string.  Remove usage of _dbus_gutils_type_to_string.
4364
4365         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4366
4367         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4368         deletion.
4369         
4370         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4371         (compute_marshaller_name, generate_glue): Handle signature change
4372         to string.
4373         (write_formal_parameters, write_args_for_direction): Ditto, and
4374         remove FIXME.
4375
4376         * tools/dbus-tree-view.c (type_to_string): Delete.
4377         (info_set_func_text): Update to print full signatures.
4378
4379         * test/glib/test-service-glib.xml: Change types to new
4380         introspection format.
4381
4382 2005-02-26  Havoc Pennington  <hp@redhat.com>
4383
4384         * doc/TODO: remove the "guid" item
4385
4386         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4387         (with_bus_thread_func): use open_private
4388
4389         * dbus/dbus-connection.c (dbus_connection_open_private): new
4390         function that works like the old dbus_connection_open()
4391         (dbus_connection_open): now returns an existing connection if
4392         possible
4393
4394         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4395         through the GUID to the transport
4396
4397         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4398         GUID in hex-encoded form.
4399
4400         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4401         pass GUID argument in to the transport
4402
4403         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4404         guid argument
4405
4406         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4407
4408         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4409
4410 2005-02-25  Havoc Pennington  <hp@redhat.com>
4411
4412         * doc/dbus-specification.xml: document the GUID thing
4413
4414         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4415         globally unique ID for the server, and put a "guid=hexencoded"
4416         field in the address
4417
4418         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4419
4420         * dbus/dbus-message.c: ditto
4421
4422         * dbus/dbus-dataslot.c: ditto
4423
4424         * dbus/dbus-list.c: ditto
4425
4426         * dbus/dbus-internals.h: wait, just include
4427         dbus-threads-internal.h here
4428         
4429         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4430         use in main library
4431
4432         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4433
4434 2005-02-24  Colin Walters  <walters@verbum.org>
4435
4436         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4437
4438 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4439
4440         * glib/Makefile.am: added dbus-gobject.h to sources list
4441         so distcheck doesn't fail
4442         
4443 2005-02-24  Havoc Pennington  <hp@redhat.com>
4444
4445         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4446         you must disconnect before unref, since locking and other things
4447         are screwed up otherwise. Fix assorted other locking stuff.
4448
4449         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4450         fix compilation
4451
4452         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4453         into a private header and don't export from the library
4454
4455         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4456
4457 2005-02-24  Colin Walters  <walters@verbum.org>
4458         
4459         * dbus/dbus-signature.c: New file; implements various functions
4460         related to type signatures.  Includes an interator for parsing,
4461         validation functions.
4462         (dbus_type_is_basic): Moved here from
4463         dbus-marshal-basic.c:_dbus_type_is_basic.
4464         (dbus_type_is_container): Moved here from
4465         dbus-marshal-basic.c:_dbus_type_is_container.
4466
4467         All callers of _dbus_type_is_container and _dbus_type_is_basic
4468         updated, and include dbus-signature.h.
4469
4470         * dbus/dbus-signature.h: New file; prototypes for the above.
4471
4472         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4473         dbus-signature.h.
4474
4475         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4476         function factored out of _dbus_first_type_in_signature.
4477         (_dbus_first_type_in_signature_c_str): New function; returns first
4478         type code for a type signature character.
4479
4480         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4481         handle function moves.
4482
4483         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4484
4485         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4486         function; skips to next complete type in type signature.
4487         Implemented using previous skip_one_complete_type.  Now
4488         skip_one_complete_type just delegates to
4489         _dbus_type_signature_next.
4490
4491         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4492         to dbus-signature.c
4493         (_dbus_type_is_container): Ditto.
4494
4495         * doc/dbus-specification.xml: Update introspection sample to
4496         use real type signatures.
4497
4498         * dbus/dbus-test.h: Prototype signature test.
4499
4500         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4501         signature tests.
4502
4503         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4504
4505 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4506
4507         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4508         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4509
4510 2005-02-21  Colin Walters  <walters@verbum.org>
4511
4512         * dbus/dbus-test-main.c (main): Take optional specific test
4513         argument.
4514
4515         * dbus/dbus-test.c (run_test): New function, runs a test function
4516         with no data directory.
4517         (run_data_test): Like above, but takes data directory.
4518         (dbus_internal_do_not_use_run_tests): Take
4519         specific test argument.  Replace lots of cut n' paste code
4520         with run_test and run_data_test.
4521
4522         * dbus/dbus-test.h: Update prototype for
4523         dbus_internal_do_not_use_run_tests.
4524
4525 2005-02-20  Havoc Pennington  <hp@redhat.com>
4526
4527         Fix bugs reported by Daniel P. Berrange
4528         
4529         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4530         (protected_change_watch): new function
4531         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4532         (_dbus_server_add_watch): change to work like the
4533         dbus-connection.c equivalents; like those, probably kind of
4534         busted, but should at least mostly work for now
4535         (dbus_server_disconnect): drop the lock if we were already
4536         disconnected, patch from Daniel P. Berrange
4537
4538         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4539         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4540         same stuff
4541
4542         * doc/TODO: todo about unscrewing this mess
4543
4544 2005-02-19  Colin Walters  <walters@verbum.org>
4545
4546         * glib/dbus-binding-tool-glib.c
4547         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4548
4549         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4550         as errno.h and sys/stat.h.
4551         (lose): New function, prints error with
4552         newline and exits.
4553         (lose_gerror): Similar, but takes GError for message.
4554         (main): Add --output argument to specify output file to write to,
4555         instead of always printing to stdout.  In this mode, determine
4556         timestamps on source files to see whether any are newer than the
4557         target file.  If not, exit.  Also convert a number of error
4558         messages to use lose (since it's shorter), and switch to using
4559         g_io_channel_shutdown.
4560
4561 2005-02-19  Havoc Pennington  <hp@redhat.com>
4562
4563         * glib/dbus-gobject.c
4564         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4565
4566         * glib/dbus-glib.c: fix doxygen warnings
4567
4568         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4569         is found on an <arg>
4570
4571 2005-02-17  Colin Walters  <walters@verbum.org>
4572
4573         * glib/dbus-gobject.h: Don't export
4574         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4575         
4576         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4577         (invoke_object_method): Handle it.
4578
4579         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4580         Handle rename.
4581         
4582 2005-02-17  Colin Walters  <walters@verbum.org>
4583
4584         * bus/.cvsignore, doc/.cvsignore
4585         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4586         Update.
4587
4588 2005-02-17  Colin Walters  <walters@verbum.org>
4589         
4590         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4591         Rename to DBUS_SERVICE_DBUS.
4592         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4593         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4594         Change the value from "org.freedesktop.Local"
4595         to "org.freedesktop.DBus.Local".
4596         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4597         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4598         DBUS_INTERFACE_INTROSPECTABLE.
4599         Change the value from "org.freedesktop.Introspectable"
4600         to "org.freedesktop.DBus.Introspectable".
4601         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4602         DBUS_INTERFACE_PROPERTIES.
4603         Change the value from "org.freedesktop.Properties"
4604         to "org.freedesktop.DBus.Properties".
4605         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4606         DBUS_INTERFACE_PEER.
4607         Change the value from "org.freedesktop.Peer"
4608         to "org.freedesktop.DBus.Peer".
4609         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4610         DBUS_INTERFACE_LOCAL.
4611         Change the value from "org.freedesktop.Local"
4612         to "org.freedesktop.DBus.Local".
4613
4614         All other users of those constants have been changed.
4615
4616         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4617
4618         * glib/dbus-gobject.c (handle_introspect): Use constants.
4619
4620         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4621
4622 2005-02-17  Colin Walters  <walters@verbum.org>
4623
4624         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4625         (parse_node, parse_interface, parse_method, parse_signal)
4626         (parse_property, parse_annotation): Lose if we're currently in an
4627         annotation.
4628         (parse_annotation): New function.
4629         (parser_start_element, parser_end_element): Handle annotation.
4630         (parse_method, parse_interface): Remove support for c_name attribute,
4631         switch to annotations.
4632
4633         * glib/dbus-gidl.h (interface_info_get_binding_names)
4634         (method_info_get_binding_names)
4635         (interface_info_get_binding_name, method_info_get_binding_name)
4636         (interface_info_set_binding_name, method_info_set_binding_name):
4637         Remove.
4638         (interface_info_get_annotations, method_info_get_annotations)
4639         (interface_info_get_annotation, method_info_get_annotation)
4640         (interface_info_add_annotation, method_info_add_annotation):
4641         Prototype.
4642
4643         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4644         for "bindings".
4645         (struct MethodInfo): Ditto.
4646         Straightfoward conversion of binding methods into annotation methods
4647         as prototyped.
4648
4649         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4650
4651         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4652
4653         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4654         Use new annotation API.
4655
4656         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4657         annotation element.
4658         
4659         * doc/dbus-specification.xml: Discuss introspection annotations,
4660         include list of well-known annotations.
4661
4662         * test/glib/test-service-glib.xml: Make validate against new DTD.
4663
4664 2005-02-17  Colin Walters  <walters@verbum.org>
4665
4666         This patch is based on initial work from
4667         Paul Kuliniewicz <kuliniew@purdue.edu>.
4668
4669         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4670         initialization of GValue from dbus type to here.
4671         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4672         for the "glib-genmarshal" program from a DBus type.
4673         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4674         into the C name for it we use in the glib bindings.
4675         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4676         glib C type (not GValue).
4677         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4678
4679         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4680         from dbus-gobject.c.
4681
4682         * glib/dbus-gutils.h: Prototype it.
4683
4684         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4685         (marshal_dbus_message_to_g_marshaller): Use new shared function
4686         dbus_glib_marshal_dbus_message_to_gvalue_array.
4687
4688         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4689         Will be changed once we have annotations.
4690
4691         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4692         GStaticRWLock.  Callers updated.
4693         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4694         (string_table_next): New function for iterating over zero-terminated
4695         string value array.
4696         (string_table_lookup): New function; retrieves specific entry in
4697         array.
4698         (get_method_data): New function; look up method data in object data chunk.
4699         (object_error_domain_prefix_from_object_info)
4700         (object_error_code_from_object_info): New functions, but not implemented yet.
4701         (method_interface_from_object_info): New function; retrieve interface name.
4702         (method_name_from_object_info): New function; retrieve method name.
4703         (method_arg_info_from_object_info): New function; retrieve argument data.
4704         (arg_iterate): New function; iterates over serialized argument data.
4705         (method_dir_signature_from_object_info): New function; returns a
4706         GString holding type signature for arguments for just one
4707         direction (input or output).
4708         (method_input_signature_from_object_info)
4709         (method_output_signature_from_object_info): New functions.
4710         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4711         converts dbus message arguments into a GValue array.  Used for both
4712         signal handling and method invocation.
4713         (struct DBusGlibWriteIterfaceData): New utility structure.
4714         (write_interface): New function; generate introspection XML for
4715         an interface.
4716         (introspect_interfaces): New function; gathers all interface->methods,
4717         generates introspection XML for them.
4718         (handle_introspect): Invoke introspect_interfaces.
4719         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4720         (lookup_object_and_method): New function; examines an incoming message
4721         and attempts to match it up (via interface, method name, and argument
4722         signature) with a known object and method.
4723         (gerror_domaincode_to_dbus_error_name): New function; converts a
4724         GError domain and code into a DBus error name.  Needs GError data
4725         added to object introspection to work well.
4726         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4727         GError.
4728         (invoke_object_method): New function to invoke an object method
4729         looked up via lookup_object_and_method.  Parses the incoming
4730         message, turns it into a GValue array, then invokes the marshaller
4731         specified in the DBusGMethodInfo.  Creates a new message with
4732         either return values or error message as appropriate.
4733         (gobject_message_function): Invoke lookup_object_and_method and
4734         invoke_object_method.
4735
4736         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4737         (enum DBusBindingOutputMode): New enum for binding output modes.
4738         (pretty_print): Print binding names.
4739         (dbus_binding_tool_error_quark): GError bits.
4740         (version): Fix typo.
4741         (main): Create GIOChannel for output.  Parse new --mode argument,
4742         possible values are "pretty-print", "glib-server", "glib-client".
4743         Use mode to invoke appropriate function.
4744         
4745         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4746
4747         * glib/dbus-glib-tool.h: New header, just includes GError bits
4748         for now.
4749
4750         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4751         maps binding style to name.
4752         (struct MethodInfo): Ditto.
4753         (get_hash_keys, get_hash_key): Utility function, returns keys for
4754         a GHashTable.
4755         (interface_info_new, method_info_new): Initialize bindings.
4756         (interface_info_unref, method_info_unref): Destroy bindings.
4757         (method_info_get_binding_names, method_info_get_binding_name)
4758         (interface_info_get_binding_names, interface_info_get_binding_name):
4759         Functions for retrieving binding names.
4760         (method_info_set_binding_name, interface_info_set_binding_name):
4761         Functions for setting binding names.
4762
4763         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4764         for glib binding generation.
4765
4766         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4767         and client-side glib glue generation.
4768
4769         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4770         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4771         dbus-glib-tool.h.
4772
4773         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4774         of using GClosureMarshal directly.
4775         (struct DBusGObjectInfo): Add n_infos member.
4776
4777         * test/glib/test-service-glib.xml: New file; contains introspection data
4778         for MyTestObject used in test-service-glib.c.
4779
4780         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4781         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4782         (my_object_uppercase, my_object_many_args): New test methods.
4783         (main): Use dbus_g_object_class_install_info to include generated object
4784         info.
4785
4786         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4787         as well as client-side bindings.
4788
4789         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4790         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4791         using both the dbus_gproxy stuff directly as well as the generated bindings.
4792
4793 2005-02-15  Havoc Pennington  <hp@redhat.com>
4794
4795         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4796         complete a pending call, don't run filters first.
4797
4798         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4799         dbus_pending_call_steal_reply
4800
4801         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4802         _dbus_connection_block_pending_call
4803         (dbus_pending_call_get_reply): change to steal_reply and return a
4804         ref
4805
4806         * dbus/dbus-connection.c
4807         (dbus_connection_send_with_reply_and_block): port to work in terms
4808         of DBusPendingCall
4809         (_dbus_connection_block_pending_call): replace block_for_reply
4810         with this
4811
4812 2005-02-14  Havoc Pennington  <hp@redhat.com>
4813
4814         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4815         properly handle looking up group information by name; fix 
4816         from j@bootlab.org
4817
4818 2005-02-13  Havoc Pennington  <hp@redhat.com>
4819
4820         * dbus/dbus-connection.c (dbus_connection_return_message) 
4821         (dbus_connection_borrow_message): hold dispatch lock while message
4822         is outstanding
4823         (_dbus_connection_block_for_reply): hold dispatch lock while we
4824         block for the reply, so nobody steals our reply
4825         (dbus_connection_pop_message): hold the dispatch lock while we
4826         pluck the message
4827
4828 2005-02-13  Havoc Pennington  <hp@redhat.com>
4829
4830         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4831         (_dbus_connection_release_dispatch)
4832         (_dbus_connection_acquire_io_path)
4833         (_dbus_connection_release_io_path): make the mutex and condvar
4834         control access to the "acquired" flag. Drop the connection lock
4835         while waiting on the condvar. Hopefully these are baby steps in
4836         roughly the right direction.
4837
4838 2005-02-13  Havoc Pennington  <hp@redhat.com>
4839
4840         * dbus/dbus-connection.c: use separate mutexes for the condition
4841         variables; this is some kind of baseline for sanity, but the
4842         condition variables still aren't used correctly afaict
4843
4844 2005-02-13  Havoc Pennington  <hp@redhat.com>
4845
4846         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4847         fix a double-unlock
4848
4849         * dbus/dbus-connection.c
4850         (_dbus_connection_detach_pending_call_unlocked): add this
4851
4852         Initial semi-correct pass through to fix thread locking; there are
4853         still some issues with the condition variable paths I'm pretty
4854         sure
4855         
4856         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4857         lock/unlock calls
4858
4859         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4860         rename to add _unlocked
4861         (struct DBusConnection): move "dispatch_acquired" and
4862         "io_path_acquired" to use only one bit each.
4863         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4864         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4865         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4866         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4867         (_dbus_connection_remove_timeout) 
4868         (_dbus_connection_toggle_timeout): drop lock when calling out to
4869         user functions; done in a hacky/bad way.
4870         (_dbus_connection_send_and_unlock): add a missing unlock
4871         (_dbus_connection_block_for_reply): add a missing unlock
4872
4873         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4874         drop lock in a hacky probably unsafe way to call out to user
4875         function
4876
4877 2005-02-12  Havoc Pennington  <hp@redhat.com>
4878
4879         * tools/dbus-tree-view.c (info_set_func_text): display more
4880         details on args
4881
4882         * bus/driver.c (bus_driver_handle_list_services): list the bus
4883         driver
4884
4885         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4886
4887         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4888         (method_info_get_n_args): new function
4889
4890 2005-02-12  Havoc Pennington  <hp@redhat.com>
4891
4892         * bus/driver.c (bus_driver_handle_introspect): add introspection
4893         for bus driver
4894
4895 2005-02-12  Havoc Pennington  <hp@redhat.com>
4896
4897         * bus/driver.c: put the signature of each bus driver method in the
4898         table of handlers and check it on incoming calls; this isn't
4899         really useful, but going to add introspect support in a minute.
4900
4901 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4902
4903         * mono/Connection.cs: The unpredictability of finalizers in mono
4904         prevents us from deterministically disconnecting the filters from
4905         the Service class's finalizer, so move tracking of filters and
4906         matches here.  Add API for that.
4907
4908         * mono/Service.cs: Remove the code, add code which calls the
4909         methods now on the Connection class.
4910
4911 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4912
4913         * python/dbus.py (class Sender): added to support dbus signals better
4914         (Bus::add_signal_receiver): added expand_args parameter which defaults
4915         to True.  When expand args is True the signal handler will pass the 
4916         message arguments as parameters to the signal handler.  If False
4917         revert to previous behavior where the signal handler must get the
4918         argument list from the message.  This is to help port applications
4919         like HAL that have a tendancy to send variable length argument lists.
4920         self._match_rule_to_receivers is now a dict of dicts.
4921         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4922         removing it from a list
4923         (Bus::_signal_func): change signal handlers so that interface,
4924         signal_name, service, path and message are packed into a Sender
4925         object and that is passed to the handler.  If expand_args is True
4926         extract the args list from the message and append it to the parameter
4927         list
4928         
4929         * python/dbus_bindings.pyx.in (class Signature): added to support 
4930         signiature types
4931         (MessageIter::__init__): changed iteration limit to match D-BUS
4932         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4933         STRUCT and VARIENT type support
4934         (MessageIter::python_value_to_dbus_sig): made recursive to support
4935         recursive types
4936         (MessageIter::append*): added Signature, dict, tuple 
4937         support
4938
4939         * python/examples/example-client.py: added examples of getting tuples
4940         and dicts
4941
4942         * python/examples/example-service.py: added examples of sending tuples
4943         and dicts
4944
4945         * python/examples/example-signal-recipient.py: Fixed to handle new
4946         signal callback format
4947
4948 2005-02-10  Havoc Pennington  <hp@redhat.com>
4949
4950         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4951         (call dbus_g_proxy_add_signal)
4952
4953         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4954         escape the hostname
4955         (_dbus_server_new_for_domain_socket): escape the path
4956
4957         * dbus/dbus-address.c (dbus_address_escape_value): new
4958         (dbus_address_unescape_value): new
4959         (dbus_parse_address): unescape values
4960
4961         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4962
4963         * doc/dbus-specification.xml: explain how to escape values in
4964         addresses
4965
4966 2005-02-10  Havoc Pennington  <hp@redhat.com>
4967
4968         * dbus/dbus-message-factory.c (generate_special): modify test to
4969         avoid using a non-basic dict key
4970
4971         * dbus/dbus-marshal-validate-util.c: add test for the below
4972
4973         * doc/dbus-specification.xml: require that dict keys are a basic
4974         type
4975
4976         * dbus/dbus-marshal-validate.c
4977         (_dbus_validate_signature_with_reason): require that dict key is a
4978         basic type
4979
4980 2005-02-10  Havoc Pennington  <hp@redhat.com>
4981
4982         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4983         change to be _and_unlock instead of _unlocked
4984
4985         * dbus/dbus-connection.c
4986         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4987         have no_update so we can find this bug quickly in future
4988
4989 2005-02-10  Havoc Pennington  <hp@redhat.com>
4990
4991         * dbus/dbus-message-util.c (verify_test_message): tests for string
4992         array
4993
4994         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4995         support for arrays of string/signature/path
4996
4997 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4998
4999         * dbus/dbus-connection.c
5000         (_dbus_connection_queue_received_message_link,
5001         _dbus_connection_message_sent): Add the path to
5002         the verbose output.
5003         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5004         _dbus_connection_send_preallocated_unlocked(), updated the
5005         dispatch status, and unlocks.  Fixes a bug where certain
5006         situations (like a broken pipe) could cause a Disconnect message
5007         to not be sent, tricking the bus into thinking a service was still
5008         there when the process had quit.
5009         (_dbus_connection_send_preallocated): Call
5010         _dbus_connection_send_preallocated_and_unlock().
5011         (_dbus_connection_send_and_unlock): Added.  Calls
5012         _dbus_connection_send_preallocated_and_unlock().
5013         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5014         (dbus_connection_send_with_reply): Update the dispatch status and
5015         unlock.
5016
5017         * mono/Service.cs (~Service): Added.  Removes the filter so that
5018         we don't get unmanaged code calling back into a GCed delegate.
5019         (RemoveFilter); Added.
5020
5021 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5022
5023         * dbus/dbus-message.c (dbus_message_iter_open_container):
5024         - Removed check for iterator type being an array because
5025         get_arg_type does not work with writer iterators
5026         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5027
5028 2005-02-07  Havoc Pennington  <hp@redhat.com>
5029
5030         * doc/dbus-specification.xml: some more language cleanups; add
5031         stuff about how to deal with invalid protocol and extension
5032         points; add _ to allowed chars in auth commands; add EXTENSION_
5033         auth command prefix
5034
5035 2005-02-06  Havoc Pennington  <hp@redhat.com>
5036
5037         * s/expected/required/ in a couple places for clarity
5038
5039 2005-02-07  Colin Walters  <walters@verbum.org>
5040
5041         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5042         sender or proposed_recipient.
5043
5044 2005-02-06  Havoc Pennington  <hp@redhat.com>
5045
5046         * dbus/dbus-message-factory.c (generate_special): more tests
5047
5048         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5049         array length that exceeds the maximum
5050
5051 2005-02-05  Havoc Pennington  <hp@redhat.com>
5052
5053         * dbus/dbus-message-factory.c (generate_special): more test cases,
5054         increasing coverage
5055
5056         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5057         reason why a signature was invalid
5058
5059         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5060         skip the length of the string before we look at it in validation
5061
5062         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5063         equal_substring
5064
5065         * dbus/dbus-message.c (_dbus_message_loader_new): default
5066         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5067
5068 2005-02-05  Havoc Pennington  <hp@redhat.com>
5069
5070         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5071         if the signature of a variant was empty
5072         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5073         struct with no element type)
5074
5075         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5076         mangled messages to break things
5077
5078 2005-02-04  Havoc Pennington  <hp@redhat.com>
5079
5080         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5081         g_quark_try_string() so it actually can return 0
5082         (dbus_g_proxy_connect_signal): ditto
5083
5084 2005-02-04  Havoc Pennington  <hp@redhat.com>
5085
5086         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5087         bogus warning
5088         (tristring_from_message): assert cleanly on null path/interface
5089         (should not be possible though I decided later)
5090         (dbus_g_proxy_dispose): move proxy manager unregistration here
5091         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5092         g_return_if_fail() checks
5093
5094 2005-02-04  Havoc Pennington  <hp@redhat.com>
5095
5096         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5097
5098         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5099         (with some minor changes)
5100
5101         * doc/dbus-specification.xml: add deprecated attribute to
5102         introspection format
5103
5104 2005-01-31  Havoc Pennington  <hp@redhat.com>
5105
5106         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5107         think it's sort of right
5108
5109 2005-01-30  Havoc Pennington  <hp@redhat.com>
5110
5111         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5112
5113 2005-01-30  Havoc Pennington  <hp@redhat.com>
5114
5115         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5116
5117         * autogen.sh: change to autotools 1.9
5118
5119         * glib/dbus-gproxy.c: completely change how signals work
5120         (dbus_g_proxy_add_signal): new function to specify signature of a
5121         signal
5122         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5123         and g_warning if the incoming message has the wrong signature.
5124
5125 2005-01-30  Havoc Pennington  <hp@redhat.com>
5126
5127         * tools/dbus-names-model.c (have_names_notify): fix this
5128
5129         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5130         up the string array handling a bit 
5131
5132 2005-01-30  Havoc Pennington  <hp@redhat.com>
5133
5134         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5135         (dbus_g_pending_call_cancel): new function
5136
5137         * dbus/dbus-glib.h: move GType decls for connection/message here;
5138         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5139         here, just kind of rationalizing how we handle all that
5140
5141         * tools/dbus-names-model.c: new file for a tree model listing the
5142         services on a bus
5143
5144         * tools/dbus-tree-view.c (model_new): use proper typing on the
5145         model rows
5146
5147 2005-01-30  Havoc Pennington  <hp@redhat.com>
5148
5149         * glib/dbus-gmain.c: add a custom GSource back that just checks
5150         whether the message queue has anything in it; otherwise, there are 
5151         cases where we won't see messages in the queue since there was no 
5152         IO visible to the glib main loop
5153
5154         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5155         increase default message timeout to 25 seconds
5156
5157 2005-01-30  Havoc Pennington  <hp@redhat.com>
5158
5159         * test/glib/test-profile.c (no_bus_stop_server): remove the
5160         warning about the g_warning that I just fixed
5161
5162         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5163         custom source, seems to be a lot easier to understand and work
5164         better.
5165
5166 2005-01-30  Havoc Pennington  <hp@redhat.com>
5167
5168         I think this main loop thing is conceptually broken, but here are 
5169         some band aids. I'll maybe rewrite it in a minute.
5170         
5171         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5172         custom GSource, so don't pass it in; confusing
5173         (gsource_server_finalize, gsource_connection_finalize): add
5174         finalize handlers that remove all the watches.  
5175
5176 2005-01-30  Havoc Pennington  <hp@redhat.com>
5177
5178         * glib/dbus-gobject.c (introspect_properties): fix the XML
5179         generated
5180
5181         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5182         which effectively detects the use of freed messages
5183
5184         * glib/dbus-gobject.c (handle_introspect): modify and return the
5185         reply message instead of the incoming message
5186
5187         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5188         gee, maybe it should SEND THE XML instead of just making a string
5189         and freeing it again ;-)
5190
5191         * tools/dbus-print-message.c (print_message): improve printing of
5192         messages
5193
5194         * configure.in: add debug-glib.service to the output
5195
5196 2005-01-30  Havoc Pennington  <hp@redhat.com>
5197
5198         dbus-viewer introspected and displayed the bus driver
5199         
5200         * dbus/dbus-object-tree.c 
5201         (object_tree_test_iteration): add tests for a handler registered on "/"
5202
5203         * dbus/dbus-object-tree.c
5204         (_dbus_decompose_path): fix to handle path "/" properly
5205         (run_decompose_tests): add tests for path decomposition
5206         
5207         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5208         properly
5209
5210         * glib/dbus-gobject.c (handle_introspect): fix quotes
5211
5212         * test/glib/run-test.sh: support launching the bus, then running
5213         dbus-viewer
5214
5215         * test/glib/test-service-glib.c (main): put in a trivial gobject
5216         subclass and register it on the connection
5217
5218         * bus/driver.c (bus_driver_handle_introspect): implement
5219         introspection of the bus driver service
5220
5221         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5222         identifiers, doctype decl
5223
5224         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5225         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5226         returning the service unchanged.
5227         (bus_driver_handle_message): remove old check for reply_serial in
5228         method calls, now the message type deals with that
5229         (bus_driver_handle_message): handle NULL interface
5230
5231         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5232
5233         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5234         -1 for len
5235
5236         * tools/dbus-viewer.c: add support for introspecting a service on
5237         a bus
5238
5239         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5240         (dbus_g_pending_call_unref): add
5241
5242 2005-01-29  Havoc Pennington  <hp@redhat.com>
5243
5244         * tools/dbus-tree-view.c: add support for displaying properties.
5245         (run dbus-viewer with an introspect xml file as arg, then resize
5246         the window so the tree elements show up, not sure what that is)
5247
5248         * glib/dbus-gobject.c (handle_introspect): return
5249         org.freedesktop.Properties and org.freedesktop.Introspectable
5250         interfaces when we are introspected.
5251
5252         * doc/dbus-specification.xml: allow empty interface name when 
5253         Get/Set a property
5254
5255 2005-01-29  Havoc Pennington  <hp@redhat.com>
5256
5257         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5258         though it uses glib, it could be extended for any binding in
5259         principle
5260
5261         * glib/dbus-gobject.c (gobject_message_function): change to the
5262         new way properties work
5263
5264         * dbus/dbus-protocol.h: add the new interfaces
5265
5266         * doc/dbus-specification.xml: document the introspection format,
5267         Introspectable interface, and add an org.freedesktop.Properties
5268         interface.
5269
5270         * glib/dbus-gparser.c: add support for a <property> element
5271
5272         * glib/dbus-gidl.c: add PropertyInfo
5273
5274         * glib/dbus-gobject.c (handle_introspect): put the outermost
5275         <node> outside the signal and property descriptions.
5276         (introspect_properties): export properties as <property> rather
5277         than as method calls
5278
5279 2005-01-28  Havoc Pennington  <hp@redhat.com>
5280
5281         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5282         related to authentication protocol
5283
5284 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5285
5286         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5287                 - BUS_ACTIVATION -> BUS_STARTER
5288                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5289                 - class MessageIter (__init__): Added recursion checking 
5290                 so we throw a nice error instead of just disconnecting from the
5291                 bus.
5292                 (get): Added arg_type parameter for recursion.
5293                 Removed the nil type
5294                 Added signiture type placeholder (not implemented)
5295                 Added struct type placeholder (not implemented)
5296                 Added varient type placeholder (not implemented)
5297                 Commented out dict type for now     
5298                 (get_element_type): renamed from get_array_type
5299                 (get_*): changed to use the dbus_message_iter_get_basic API
5300                 (get_*_array): removed in favor of recursive get_array method
5301                 (get_array): new recursive method which calls get to marshal
5302                 the elements of the array
5303                 (value_to_dbus_sig): New method returns the corrasponding
5304                 dbus signiture to a python value
5305                 (append): Comment out dict handling for now
5306                 Handle lists with the new recursive API
5307                 Comment out None handling for now
5308                 (append_nil): removed
5309                 (append_*): changed to use dbus_message_iter_append_basic API
5310                 (append_*_array): removed in favor of recursive append_array 
5311                 method
5312                 (__str__): Make it easier to print out recursive iterators
5313                 for debugging
5314                 - class Message (__str__): moved type inspection to the
5315                 MessageIter class' __str__ method
5316                 (get_iter): Added an append parameter wich defaults to False
5317                 If True use the new API's to create an append iterator
5318
5319         * python/dbus.py: Update to use new bindings API
5320                 - TYPE_ACTIVATION -> TYPE_STARTER
5321                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5322                 - class ActivationBus -> class StarterBus
5323                 - class RemoteObject (__call__): get an append iterator
5324                 - (_dispatch_dbus_method_call): get an append iterator
5325                 - class Object (emit_signal): get an append iterator
5326
5327         * python/examples/: Fixed up the examples to work with the new API
5328                 
5329 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5330
5331         * configure.in: Bump version up to 0.30.
5332
5333         * HACKING: Add a release item to bump the version number up after 
5334         a release.
5335
5336 2005-01-28  Havoc Pennington  <hp@redhat.com>
5337
5338         * doc/dbus-specification.xml: update to describe 16-bit types and
5339         dict entries
5340
5341         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5342         assertion
5343
5344         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5345         type
5346
5347         * dbus/dbus-marshal-recursive.c: implement
5348
5349 2005-01-27  Havoc Pennington  <hp@redhat.com>
5350
5351         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5352
5353         * configure.in: find the right type for 16 and 32 bit ints as well
5354         as 64
5355
5356         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5357         the 16-bit types so people don't have to stuff them in 32-bit or
5358         byte arrays.
5359
5360 2005-01-27  Havoc Pennington  <hp@redhat.com>
5361
5362         * dbus/dbus-message.c: byteswap the message if you init an
5363         iterator to read/write from it
5364         
5365         * dbus/dbus-marshal-byteswap.c: new file implementing 
5366         _dbus_marshal_byteswap()
5367
5368         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5369
5370 2005-01-26  Havoc Pennington  <hp@redhat.com>
5371         
5372         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5373         build, apparently - nobody noticed?)
5374         
5375 2005-01-26  Havoc Pennington  <hp@redhat.com>
5376
5377         * dbus/dbus-marshal-recursive.h: remove todo comment
5378
5379 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5380
5381         * Land the mono binding changes to conform to the new APIs.
5382
5383         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5384         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5385
5386         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5387         type code as a string.
5388         (InitAppending): Rename dbus_message_append_iter_init() to
5389         dbus_message_iter_init_append().
5390
5391         * mono/BusDriver.cs: Rename ServiceEventHandler to
5392         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5393         Rename ServiceOwnerChanged to NameOwnerChanged.
5394
5395         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5396         underlying C call.
5397
5398         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5399
5400         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5401         dbus_bus_acquire_service() to dbus_bus_request_name().
5402
5403         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5404         of Type.UnderlyingSystemType to get the correct element type for
5405         the array.
5406         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5407         dbus_message_get_{element|arg}_type() instead of
5408         dbus_message_iter_init_array_iterator().
5409         (Append): Replace dbus_message_iter_append_array() with
5410         dbus_message_iter_open_container() and
5411         dbus_message_iter_close_container().
5412
5413         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5414         types have been removed.
5415         
5416         * mono/DBusType/*.cs: Replace calls of
5417         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5418         but specify the type in the DllImport extern declaration.  Ditto
5419         for dbus_message_iter_append_[type]() ->
5420         dbus_message_iter_append_basic().
5421
5422         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5423         NameOwnerChangedHandler.
5424
5425 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5426
5427         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5428                 - get_base_service -> get_unique_name
5429                 - bus_get_base_service -> bus_get_unique_name
5430                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5431                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5432                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5433                 - bus_activate_service -> bus_start_service_by_name
5434                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5435                 - bus_acquire_service -> bus_request_name
5436                 - dbus_bus_acquire_service -> dbus_bus_request_name
5437                 - bus_service_exists -> bus_name_has_owner
5438                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5439
5440         * python/dbus.py: Rename of methods
5441                 - activate_service -> start_service_by_name
5442                 - bus_acquire_service -> bus_request_name
5443                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5444                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5445
5446         
5447 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5448
5449         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5450         signature for the method that can't be found.
5451
5452         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5453         the message has any arguments, we need to call
5454         _dbus_type_reader_get_current_type(), not
5455         _dbus_type_reader_has_next().
5456
5457 2005-01-24  Havoc Pennington  <hp@redhat.com>
5458
5459         * dbus/dbus-message-factory.c: more testing of message validation
5460
5461         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5462         header
5463
5464 2005-01-23  Havoc Pennington  <hp@redhat.com>
5465
5466         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5467         get this all working, not many tests in the framework yet though
5468
5469 2005-01-22  Havoc Pennington  <hp@redhat.com>
5470
5471         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5472         tutorial, based on work from David Wheeler.
5473
5474 2005-01-21  Havoc Pennington  <hp@redhat.com>
5475
5476         * dbus/dbus-bus.c: add more return_if_fail checks
5477
5478         * dbus/dbus-message.c (load_message): have the "no validation"
5479         mode (have to edit the code to toggle the mode for now though)
5480
5481         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5482         skips all validation; I want to use this at least for benchmark
5483         baseline, I'm not sure if it should be a publicly-available switch.
5484
5485 2005-01-21  Havoc Pennington  <hp@redhat.com>
5486
5487         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5488         toplevel doxygen group as the low-level API stuff
5489
5490         * dbus/dbus.h: note that libdbus is the low-level API
5491
5492 2005-01-20  Havoc Pennington  <hp@redhat.com>
5493
5494         * update-dbus-docs.sh: script to update docs on the web site, only
5495         works for me though. neener.
5496
5497 2005-01-20  Havoc Pennington  <hp@redhat.com>
5498
5499         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5500         code can reveal bugs in it
5501
5502 2005-01-20  Havoc Pennington  <hp@redhat.com>
5503
5504         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5505         select() version, patches from Tor Lillqvist
5506
5507 2005-01-20  Havoc Pennington  <hp@redhat.com>
5508
5509         * doc/dbus-tutorial.xml: replace > with &gt;
5510
5511         * bus/services.c (bus_registry_acquire_service): validate the name
5512         and return a better error if it's no good.
5513
5514         * doc/dbus-specification.xml: note NO_AUTO_START change
5515
5516         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5517         from AUTO_START, we're toggling the default
5518
5519         * bus/dispatch.c: adapt the tests to change of auto-start default
5520
5521 2005-01-18  Havoc Pennington  <hp@redhat.com>
5522
5523         * rename dbus-daemon-1 to dbus-daemon throughout
5524
5525 2005-01-18  Havoc Pennington  <hp@redhat.com>
5526
5527         * Throughout, grand renaming to strip out the use of "service",
5528         just say "name" instead (or "bus name" when ambiguous).  Did not
5529         change the internal code of the message bus itself, only the
5530         programmer-facing API and messages.
5531         
5532         * doc/dbus-specification.xml: further update the message bus section
5533         
5534         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5535         in error case
5536
5537 2005-01-17  Havoc Pennington  <hp@redhat.com>
5538
5539         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5540         ever
5541
5542         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5543         "invalid name character" not only non-ASCII
5544
5545         * doc/dbus-specification.xml: further update spec, message bus 
5546         parts are still out-of-date but the marshaling etc. stuff is now
5547         accurate-ish
5548
5549 2005-01-17  Havoc Pennington  <hp@redhat.com>
5550
5551         * doc/dbus-specification.xml: partially update spec
5552
5553 2005-01-17  Havoc Pennington  <hp@redhat.com>
5554
5555         * Throughout, align variant bodies according to the contained
5556         type, rather than always to 8. Should save a fair bit of space in
5557         message headers.
5558         
5559         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5560         fix handling of case where p == end
5561
5562         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5563
5564 2005-01-17  Havoc Pennington  <hp@redhat.com>
5565
5566         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5567
5568         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5569         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5570         are marshaling/unmarshaling a boolean.
5571
5572 2005-01-16  Havoc Pennington  <hp@redhat.com>
5573
5574         This is about it on what can be disabled/deleted from libdbus
5575         easily, back below 150K anyhow. Deeper cuts are more work than 
5576         just turning the code off as I've done here.
5577         
5578         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5579         signed int convenience funcs
5580
5581         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5582         verbose mode
5583
5584         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5585         things out of libdbus
5586
5587         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5588         
5589         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5590         tests-enabled-only, though it should probably be deleted)
5591
5592         * dbus/dbus-message-util.c: same stuff
5593
5594         * dbus/dbus-auth-util.c: same stuff
5595
5596 2005-01-16  Havoc Pennington  <hp@redhat.com>
5597
5598         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5599
5600         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5601         way for stripping down dbus-userdb.c stuff included in libdbus.
5602         Rename _dbus_parse_uid for consistency.
5603
5604 2005-01-16  Havoc Pennington  <hp@redhat.com>
5605
5606         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5607         name the assertion failed in
5608
5609         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5610         (_dbus_return_val_if_fail): assert that the name of the function
5611         containing the check doesn't start with '_', since we only want to 
5612         use checks on public functions
5613         
5614         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5615         checks to assertions
5616
5617         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5618         change checks to asserts for private function
5619
5620         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5621         to asserts for private function
5622
5623         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5624         broken assertion that was breaking make check
5625         (_dbus_type_reader_array_is_empty): remove this rather than fix
5626         it, was only used in assertions
5627
5628 2005-01-16  Havoc Pennington  <hp@redhat.com>
5629
5630         * test/unused-code-gc.py: hacky script to find code that's used
5631         only by the bus (not libdbus) or used only by tests or not used at
5632         all. It has some false alarms, but looks like we can clean up a
5633         lot of size from libdbus.
5634
5635         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5636         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5637         
5638 2005-01-16  Havoc Pennington  <hp@redhat.com>
5639
5640         * Add and fix docs according to Doxygen warnings throughout
5641         source.
5642         
5643         * dbus/dbus-marshal-recursive.c
5644         (_dbus_type_reader_array_is_empty): change this to just call
5645         array_reader_get_array_len() and make it static
5646
5647         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5648         from get_array_type
5649         (dbus_message_iter_init_append): rename from append_iter_init
5650
5651         * dbus/dbus-marshal-recursive.c
5652         (_dbus_type_reader_get_element_type): rename from
5653         _dbus_type_reader_get_array_type
5654
5655 2005-01-15  Havoc Pennington  <hp@redhat.com>
5656
5657         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5658
5659         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5660         when DBUS_DISABLE_ASSERT
5661         (_dbus_marshal_set_basic): be sure we align for the string length
5662
5663         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5664         this look faster
5665
5666         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5667         inline macro version
5668         (_dbus_string_set_byte): provide inline macro version
5669
5670 2005-01-15  Havoc Pennington  <hp@redhat.com>
5671
5672         * Land the new message args API and type system.
5673
5674         This patch is huge, but the public API change is not 
5675         really large. The set of D-BUS types has changed somewhat, 
5676         and the arg "getters" are more geared toward language bindings;
5677         they don't make a copy, etc.
5678
5679         There are also some known issues. See these emails for details
5680         on this huge patch:
5681         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5682         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5683         
5684         * dbus/dbus-marshal-*: all the new stuff
5685
5686         * dbus/dbus-message.c: basically rewritten
5687
5688         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5689         freed blocks to be all non-nul bytes so using freed memory is less
5690         likely to work right
5691
5692         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5693         DBUS_FAIL_MALLOC=N environment variable, so you can do
5694         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5695         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5696         thorough.
5697
5698         * qt/message.cpp: port to the new message args API
5699         (operator<<): use str.utf8() rather than str.unicode()
5700         (pretty sure this is right from the Qt docs?)
5701
5702         * glib/dbus-gvalue.c: port to the new message args API
5703
5704         * bus/dispatch.c, bus/driver.c: port to the new message args API
5705
5706         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5707         "locked" flag to TRUE and align_offset to 0; I guess we never
5708         looked at these anyhow, but seems cleaner.
5709
5710         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5711         move allocation padding macro to this header; use it to implement
5712         (_DBUS_STRING_STATIC): ability to declare a static string.
5713
5714         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5715         change to return TRUE if the interface is not set.
5716
5717         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5718         to dbus-marshal-validate.[hc]
5719
5720         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5721         dbus-internals.c
5722
5723         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5724         to dbus-marshal-*.[hc]
5725
5726         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5727         function here from dbus-marshal.c
5728
5729 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5730
5731         * NEWS: Update for 0.23.
5732
5733         * configure.in: Release 0.23.
5734
5735 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5736
5737         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5738         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5739         behind.
5740
5741         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5742         uninstall"
5743
5744         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5745         is an enum, get the enum's underlying type.  Another mono
5746         1.1.3 fix.
5747
5748 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5749
5750         Patch from Sjoerd Simons <sjoerd@luon.net>
5751
5752         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5753         DESTDIR.  It breaks stuff.
5754
5755 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5756
5757         Patch from Tambet Ingo <tambet@ximian.com>
5758
5759         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5760         calling type.GetElementType().  The code previously depended on
5761         broken Mono behavior, which was fixed in Mono 1.1.3.
5762
5763         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5764         Activator.CreateInstance() so that the class's constructor is
5765         called with the right parameters.
5766
5767 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5768
5769         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5770
5771         * dbus/dbus-connection.c
5772         (_dbus_connection_queue_received_message_link): Call
5773         _dbus_connection_remove_timeout() instead of the _locked()
5774         variant, since it's always called from
5775         _dbus_connection_handle_watch(), which handles the locking.
5776         Removed the _locked() variant since it's no longer used.
5777
5778 2005-01-03  Havoc Pennington  <hp@redhat.com>
5779
5780         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5781         return
5782         
5783 2004-12-26  Havoc Pennington  <hp@redhat.com>
5784
5785         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5786
5787 2005-01-03  Havoc Pennington  <hp@redhat.com>
5788
5789         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5790         floating point
5791
5792         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5793
5794 2005-01-02  Havoc Pennington  <hp@redhat.com>
5795
5796         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5797
5798 2005-01-01  Havoc Pennington  <hp@redhat.com>
5799
5800         * configure.in: add -Wfloat-equal
5801
5802 2005-01-01  Havoc Pennington  <hp@redhat.com>
5803
5804         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5805         for a variety of reasons '==' doesn't do this.
5806
5807 2004-12-31  Havoc Pennington  <hp@redhat.com>
5808
5809         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5810         I keep wishing I had
5811
5812 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5813
5814         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5815
5816 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5817
5818         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5819         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5820         dbus-protocol.h.  Because they are defines and not enums they are not
5821         autogenerated.
5822
5823 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5824
5825         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5826         dbus_bus_activate_service
5827
5828         * python/dbus.py (Bus.activate_service): activate a service on the
5829         bus.
5830
5831 2004-12-24  Havoc Pennington  <hp@redhat.com>
5832
5833         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5834         file format has also changed and I haven't adapted to that yet
5835         
5836         * Makefile.am: load .gcno files from latest gcc
5837
5838 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5839         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5840
5841         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5842         lowlevel binding
5843
5844         * python/dbus.py (get_unix_user): Added binding to 
5845         call dbus_bindings.bus_get_unix_user
5846
5847         * python/extract.py: Modified the proto_pat regex to
5848         handle unsigned long
5849
5850 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5851
5852         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5853         better POSIX compliance.
5854
5855 2004-12-19  Havoc Pennington  <hp@redhat.com>
5856
5857         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5858         (_dbus_string_insert_8_aligned): new functions
5859
5860         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5861
5862 2004-12-18  Havoc Pennington  <hp@redhat.com>
5863
5864         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5865         macro
5866
5867         * dbus/dbus-message.c: fix a comment, and add a still-unused
5868         not-implemented function
5869
5870         * dbus/dbus-marshal.h: fix comment
5871
5872         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5873
5874 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5875
5876         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5877         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5878         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5879         Type.UnderlyingSystemType to get the actual system type
5880         underneath.  This code previously depended on the broken Mono
5881         behavior, which was fixed in 1.1.3.
5882
5883 2004-11-27  Havoc Pennington  <hp@redhat.com>
5884
5885         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5886         are disabled
5887         (_dbus_string_get_const_data): inline when asserts are disabled
5888
5889         * dbus/dbus-message.c: record the _dbus_current_generation of
5890         creation so we can complain if dbus_shutdown() is used improperly.
5891         Do this only if checks are enabled.
5892
5893         * dbus/dbus-connection.c: ditto
5894         
5895 2004-11-26  Havoc Pennington  <hp@redhat.com>
5896
5897         * test/glib/test-profile.c: add with_bus mode to profile echoes
5898         that go through the bus.
5899
5900         * test/glib/run-test.sh: add ability to run test-profile
5901
5902         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5903         config file reload.
5904
5905 2004-11-26  Havoc Pennington  <hp@redhat.com>
5906
5907         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5908         thing was implemented
5909
5910 2004-11-26  Havoc Pennington  <hp@redhat.com>
5911
5912         * test/glib/test-profile.c: tweak a bit, add support for some
5913         made-up minimal malloc overhead with plain sockets, since in 
5914         real life some sort of buffers are unavoidable thus we could 
5915         count them in the theoretical best case
5916
5917 2004-11-26  Havoc Pennington  <hp@redhat.com>
5918
5919         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5920         where I was trying to cache one too many messages
5921
5922 2004-11-26  Havoc Pennington  <hp@redhat.com>
5923
5924         * dbus/dbus-message.c: reimplement message cache as an array which 
5925         makes the cache about twice as fast and saves maybe 1.5% overall
5926
5927 2004-11-26  Havoc Pennington  <hp@redhat.com>
5928
5929         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5930         message cache lock here
5931
5932 2004-11-26  Havoc Pennington  <hp@redhat.com>
5933
5934         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5935         the "char byte_order" next to each other to save 4 bytes
5936         (dbus_message_new_empty_header): reduce preallocation, since the
5937         message cache should achieve a similar effect
5938         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5939         message cache that keeps a few DBusMessage around in a pool,
5940         another 8% speedup or so.
5941
5942         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5943
5944 2004-11-25  Havoc Pennington  <hp@redhat.com>
5945
5946         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5947         to write, without reading or blocking, try it before the poll()
5948         and skip the poll() if nothing remains to write. This is about a
5949         3% speedup in the echo client/server
5950
5951 2004-11-25  Havoc Pennington  <hp@redhat.com>
5952
5953         The primary change here is to always write() once before adding
5954         the write watch, which gives us about a 10% performance increase.
5955         
5956         * dbus/dbus-transport-unix.c: a number of modifications to cope
5957         with removing messages_pending
5958         (check_write_watch): properly handle
5959         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5960         messages_pending stuff
5961         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5962         AUTHENTICATED cases
5963         (unix_handle_watch): after writing, see if the write watch can be
5964         removed
5965         (unix_do_iteration): assert that write_watch/read_watch are
5966         non-NULL rather than testing that they aren't, since they 
5967         aren't allowed to be NULL. check_write_watch() at the end so 
5968         we add the watch if we did not finish writing (e.g. got EAGAIN)
5969
5970         * dbus/dbus-transport-protected.h: remove messages_pending call,
5971         since it resulted in too much inefficient watch adding/removing; 
5972         instead we now require that the transport user does an iteration 
5973         after queueing outgoing messages, and after trying the first
5974         write() we add a write watch if we got EAGAIN or exceeded our 
5975         max bytes to write per iteration setting
5976
5977         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5978         function
5979
5980         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5981         freed and then accessed, valgrind flagged this bug, fix it
5982
5983         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5984         as the last valid field plus 1, where really it is equal to the
5985         last valid field. Corrects some message corruption issues.
5986
5987         * dbus/dbus-mainloop.c: verbosity changes
5988
5989         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5990         instead of aborting in one of the test codepaths
5991
5992         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5993         caused not printing the pid ever again if a verbose was missing
5994         the newline at the end
5995         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5996
5997         * dbus/dbus-connection.c: verbosity changes; 
5998         (dbus_connection_has_messages_to_send): new function
5999         (_dbus_connection_message_sent): no longer call transport->messages_pending
6000         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6001         try to write() immediately, so we can avoid the write watch. This
6002         is the core purpose of this patchset
6003         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6004         dump the outgoing message queue, so nobody will get confused
6005         trying to send them or thinking stuff is pending to be sent
6006
6007         * bus/test.c: verbosity changes
6008
6009         * bus/driver.c: verbosity/assertion changes
6010
6011         * bus/dispatch.c: a bunch of little tweaks to get it working again
6012         because this patchset changes when/where you need to block.
6013
6014 2004-11-23  Havoc Pennington  <hp@redhat.com>
6015
6016         * test/glib/test-profile.c: modify to accept a plain_sockets
6017         argument in which case it will bench plain sockets instead of
6018         libdbus, for comparison purposes.
6019
6020 2004-11-22  Havoc Pennington  <hp@redhat.com>
6021
6022         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6023         threads for more time, so sysprof can get a grip on it.
6024
6025         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6026         pointless variable
6027
6028 2004-11-13  Havoc Pennington  <hp@redhat.com>
6029
6030         * test/glib/test-profile.c: fix this thing up a bit
6031
6032         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6033         preallocation sizes by a fair bit; not sure if this will be an
6034         overall performance win or not, but it does reduce reallocs.
6035
6036         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6037         the test hack that forced constant realloc if asserts are
6038         disabled, so we can profile sanely. Sprinkle in some
6039         _DBUS_UNLIKELY() which are probably pointless, but before I
6040         noticed the real performance problem I put them in.
6041         (_dbus_string_validate_utf8): micro-optimize this thing a little
6042         bit, though callgrind says it didn't help; then special-case
6043         ascii, which did help a lot; then be sure we detect nul bytes as
6044         invalid, which is a bugfix.
6045         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6046         superstition; use memset to nul the padding instead of a manual
6047         loop.
6048         (_dbus_string_get_length): inline this as a
6049         macro; it showed up in the profile because it's used for loop
6050         tests and so forth
6051
6052 2004-11-10  Colin Walters  <walters@verbum.org>
6053
6054         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6055         for extra paranoia.
6056
6057 2004-11-09  Colin Walters  <walters@verbum.org>
6058
6059         * dbus/dbus-string.c (_dbus_string_get_length): New
6060         function, writes DBusString to C buffer.
6061
6062         * dbus/dbus-string.h: Prototype it.
6063
6064         * dbus/dbus-message.c (dbus_message_type_to_string): New
6065         function, converts message type into C string.
6066
6067         * dbus/dbus-message.h: Prototype it.
6068
6069         * bus/selinux.c (bus_selinux_check): Take source pid,
6070         target pid, and audit data.  Pass audit data to
6071         avc_has_perm.
6072         (log_audit_callback): New function, appends extra
6073         audit information.
6074         (bus_selinux_allows_acquire_service): Also take
6075         service name, add it to audit data.
6076         (bus_selinux_allows_send): Also take message
6077         type, interface, method member, error name,
6078         and destination, and add them to audit data.
6079         (log_cb): Initialize func_audit.
6080         
6081         * bus/selinux.h (bus_selinux_allows_acquire_service)
6082         (bus_selinux_allows_send): Update prototypes 
6083
6084         * bus/services.c (bus_registry_acquire_service): Pass
6085         service name to bus_selinux_allows_acquire_service.
6086
6087         * bus/bus.c (bus_context_check_security_policy): Pass
6088         additional audit data.  Move assignment of dest
6089         to its own line.
6090
6091 2004-11-07  Colin Walters  <walters@verbum.org>
6092
6093         * dbus/dbus-transport-unix.c (do_authentication): Always
6094         initialize auth_completed.
6095         
6096 2004-11-07  Colin Walters  <walters@verbum.org>
6097
6098         * bus/bus.c (load_config): Break into three
6099         separate functions: process_config_first_time_only,
6100         process_config_every_time, and process_config_postinit.
6101         (process_config_every_time): Move call of
6102         bus_registry_set_service_context_table into
6103         process_config_postinit.
6104         (process_config_postinit): New function, does
6105         any processing that needs to happen late
6106         in initialization (and also on reload).
6107         (bus_context_new): Instead of calling load_config,
6108         open config parser here and call process_config_first_time_only
6109         and process_config_every_time directly.  Later, after
6110         we have forked but before changing UID,
6111         invoke bus_selinux_full_init, and then call
6112         process_config_postinit.
6113         (bus_context_reload_config): As in bus_context_new,
6114         load parse file inside here, and call process_config_every_time
6115         and process_config_postinit.
6116
6117         * bus/services.h, bus/services.c
6118         (bus_registry_set_service_context_table): Rename
6119         from bus_registry_set_sid_table.  Take string hash from config
6120         parser, and convert them here into SIDs.
6121
6122         * bus/config-parser.c (struct BusConfigParser): Have
6123         config parser only store a mapping of service->context
6124         string.
6125         (merge_service_context_hash): New function.
6126         (merge_included): Merge context string hashes instead
6127         of using bus_selinux_id_table_union.
6128         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6129         simply create a new string hash.
6130         (bus_config_parser_unref): Unref it.
6131         (start_selinux_child): Simply insert strings into hash,
6132         don't call bus_selinux_id_table_copy_over.
6133
6134         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6135         (bus_selinux_id_table_copy_over): Delete.
6136
6137 2004-11-03  Colin Walters  <walters@verbum.org>
6138
6139         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6140         variables.
6141         
6142 2004-11-03  Colin Walters  <walters@verbum.org>
6143
6144         * bus/test-main.c (test_pre_hook): Fix test logic,
6145         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6146
6147 2004-11-02  Colin Walters  <walters@redhat.com>
6148
6149         * bus/selinux.c (bus_selinux_init): Split into two functions,
6150         bus_selinux_pre_init and bus_selinux_post_init.
6151         (bus_selinux_pre_init): Just determine whether SELinux is
6152         enabled.
6153         (bus_selinux_post_init): Do everything else.
6154
6155         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6156         config file, and bus_selinux_post_init after.  This ensures that
6157         we don't lose the policyreload notification thread that
6158         bus_selinux_init created before forking previously.
6159         
6160         * bus/test-main.c (test_pre_hook): Update for split.
6161
6162 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6163
6164         Patch from Johan Fischer <linux@fischaz.com>
6165         
6166         * mono/doc/Makefile.am (install-data-local): Added directory
6167         install for DESTDIR
6168
6169 2004-10-29  Colin Walters  <walters@redhat.com>
6170
6171         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6172         parameter for fd to write pid to.       
6173
6174         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6175         
6176         * bus/bus.c (bus_context_new): Pass print_pid_fd
6177         to _dbus_become_daemon (bug #1720)
6178
6179 2004-10-29  Colin Walters  <walters@redhat.com>
6180
6181         Patch from Ed Catmur <ed@catmur.co.uk>
6182
6183         * mono/doc/Makefile.am (install-data-local): Handle
6184         DESTDIR.
6185
6186 2004-10-29  Colin Walters  <walters@redhat.com>
6187
6188         * bus/.cvsignore, qt/.cvsignore: Update.
6189
6190 2004-10-29  Colin Walters  <walters@redhat.com>
6191
6192         Patch from Kristof Vansant <de_lupus@pandora.be>
6193
6194         * configure.in: Detect Slackware.
6195         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6196         * bus/rc.messagebus.in: New file.
6197
6198 2004-10-29  Colin Walters  <walters@redhat.com>
6199
6200         * tools/dbus-monitor.c (filter_func): Return
6201         DBUS_HANDLER_RESULT_HANDLED in filter function
6202         for now.  See:
6203         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6204
6205 2004-10-29  Colin Walters  <walters@redhat.com>
6206
6207         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6208
6209         * bus/services.c (bus_registry_acquire_service): 
6210         Correctly retrieve service name from DBusString
6211         for printing.
6212
6213 2004-10-29  Colin Walters  <walters@redhat.com>
6214
6215         * dbus/dbus-glib.h: Update documentation to not
6216         refer to internal APIs.
6217
6218 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6219
6220         * mono/Arguments.cs (GetDBusTypeConstructor):
6221         type.UnderlyingSystemType will return "System.Byte" if you do it
6222         on "byte[]", which is not what we want.  So check the type.IsArray
6223         property and use System.Array instead.
6224
6225 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6226
6227         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6228         the DBusUserInfo structure since this is passed into the function.
6229         This would cause a double free when the function that allocated
6230         the structure would try to free it when an error occured.
6231
6232         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6233         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6234         for service activation to avoid 32bit/64bit parallel install issues
6235
6236 2004-10-21  Colin Walters  <walters@verbum.org>
6237
6238         * AUTHORS: Fix my email address, the @gnu.org one
6239         has been bouncing for some time.  Also add J5.
6240         
6241 2004-10-21  Colin Walters  <walters@verbum.org>
6242
6243         * dbus/dbus-transport-unix.c (do_authentication): Return
6244         authentication status to callers.
6245         (unix_handle_watch): If we completed authentication this round,
6246         don't do another read.  Instead wait until the next iteration,
6247         after we've read any pending data in the auth buffer.
6248         (unix_do_iteration): Ditto.
6249         (unix_handle_watch): Updated for new do_authentication prototype.
6250
6251 2004-10-18  Colin Walters  <walters@verbum.org>
6252
6253         * bus/selinux.c (bus_selinux_enabled): Handle
6254         --disable-selinux case.
6255         
6256 2004-10-18  Colin Walters  <walters@verbum.org>
6257
6258         * bus/selinux.h: Add bus_selinux_enabled.
6259         
6260         * bus/selinux.c (bus_selinux_enabled): Implement it.
6261         
6262         * bus/config-parser.c (struct include): Add
6263         if_selinux_enabled member.
6264         (start_busconfig_child): Parse if_selinux_enabled
6265         attribute for include.
6266         (bus_config_parser_content): Handle it.
6267
6268         * bus/session.conf.in, bus/system.conf.in: Add
6269         inclusion of context mapping to default config files;
6270         conditional on SELinux being enabled.
6271         
6272         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6273         
6274         * test/data/invalid-config-files/badselinux-1.conf, 
6275         test/data/invalid-config-files/badselinux-2.conf:
6276         Test files for bad syntax.
6277         
6278 2004-10-17  Colin Walters  <walters@verbum.org>
6279
6280         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6281         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6282         format specifier mismatches.
6283
6284 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6285
6286         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6287         format string.
6288
6289         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6290         pointer (bug #1540, Leonardo Boiko).
6291
6292 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6293
6294         * mono/BusDriver.cs: Changed BusDriver struct to remove
6295         the ServiceCreated and ServiceDeleted events and replace them
6296         with the new ServiceOwnerChanged event.
6297
6298         * mono/example/BusListener.cs: Added a new example program,
6299         which listens for and reports any ServiceOwnerChanged events
6300         on the bus driver.
6301
6302         * mono/example/Makefile.am (DESTDIR): Build changes for the
6303         new BusListener.cs example.
6304
6305 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6306
6307         * bus/signals.c (bus_match_rule_parse): validate the components of
6308         match rules (bug #1439).
6309
6310         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6311
6312 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6313
6314         * doc/dbus-specification.xml: document ServiceOwnerChanged
6315         signal.
6316         
6317         * bus/driver.c, bus/driver.h, bus/services.c: Use
6318         ServiceOwnerChanged signal instead of ServiceCreated and
6319         ServiceDeleted.
6320         
6321         * bus/dispatch.c: update testcase for the new signal.
6322
6323 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6324
6325         Patch from Nat Friedman <nat@novell.com>
6326
6327         * mono/Makefile.am: A number of small build fixes to allow "make
6328         distcheck" to succeed.
6329
6330         * mono/example/Makefile.am: "make distcheck" fixes.
6331
6332         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6333         key in @srcdir@.
6334
6335         * test/Makefile.am: "make distcheck" fixes.
6336
6337 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6338
6339         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6340
6341         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6342
6343         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6344         messages after the first one (bug #1389).
6345         
6346         * bus/dispatch.c (check_double_hello_message): add a test case for
6347         the double hello message bug.
6348         (check_existent_service_activation): fix check of spawning error.
6349         
6350 2004-09-16  David Zeuthen  <david@fubar.dk>
6351
6352         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6353
6354 2004-09-12  David Zeuthen  <david@fubar.dk>
6355
6356         Patch from Kay Sievers <kay.sievers@vrfy.org>
6357
6358         * bus/bus.c (bus_context_new):
6359         * bus/bus.h:
6360         * bus/main.c (usage)
6361         (main):
6362         Add commandline option --nofork to override configuration file
6363         setting.
6364
6365 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6366
6367         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6368         compilers don't like it (bug #974).
6369
6370 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6371
6372         * qt/connection.*: Applied patch by Jérôme Lodewyck
6373         <lodewyck@clipper.ens.fr> to integrate an existing
6374         connection into the Qt eventloop
6375
6376 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6377
6378         * mono/BusDriver.cs: Added.  This is a class for interacting with
6379         the org.freedesktop.DBus service.
6380
6381         * mono/Message.cs: Added a mechanism to expose the message that is
6382         currently being dispatched via the static Message.Current
6383         property.  Added Message.Sender and Message.Destination
6384         properties.
6385
6386         * mono/Handler.cs: Expose the dispatched message via
6387         Message.Current when handling method calls.
6388
6389         * mono/Service.cs: Expose the dispatched message via
6390         Message.Current when handling signal emissions.
6391         
6392         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6393         Connection.BaseService property.
6394
6395 2004-08-28  Havoc Pennington  <hp@redhat.com>
6396
6397         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6398
6399         More fixes from Steve Grubb
6400         
6401         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6402         (_dbus_listen_tcp_socket): fix fd leak
6403
6404         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6405         EINTR to a bit lower in the code
6406
6407 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6408
6409         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6410         TRUE if we are inquiring about the existence of the built-in
6411         org.freedesktop.DBus service.
6412
6413 2004-08-25  John Palmieri  <johnp@redhat.com>
6414         * bus/config-parser.c:
6415         (struct PolicyType): Add POLICY_CONSOLE
6416         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6417         (start_busconfig_child): Sets up console element when
6418         <policy at_console=""> is encountered in a policy file
6419         (append_rule_from_element): Convert console elements to console
6420         rules.
6421
6422         * bus/policy.c: 
6423         (bus_policy_create_client_policy): Add console rules to the client
6424         policy based on if the client is at the console
6425         (bus_policy_append_console_rule): New function for adding a
6426         console rule to a policy
6427         (bus_policy_merge): Handle console rule merging
6428
6429         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6430         where we check for console user files
6431         
6432         * dbus/dbus-sysdeps.c:
6433         (_dbus_file_exists): New function which checks if the given
6434         file exists
6435         (_dbus_user_at_console): New function which does the system
6436         specific process of checking if the user is at the console
6437
6438         * dbus/dbus-userdb.c:
6439         (_dbus_is_console_user): New function converts a UID to user name
6440         and then calls the system specific _dbus_user_at_console to 
6441         see if the user is at the console and therefor a console user
6442
6443 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6444
6445         * bus/config-parser.c (set_limit):
6446         * bus/dbus-daemon-1.1.in:
6447         * test/data/valid-config-files/many-rules.conf: set the
6448         max_match_rules_per_connection limt from the config file. 
6449
6450         * doc/busconfig.dtd: update the DTD.
6451
6452         * bus/driver.c: remove some unused variables.
6453
6454 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6455
6456         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6457         it's been replaced by dbus_g_bus_get
6458
6459 2004-08-23  Colin Walters  <walters@redhat.com>
6460
6461         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6462
6463         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6464
6465         * bus/selinux.c: Create a thread for policy reload notification.
6466         (bus_selinux_get_policy_root): Implement.
6467
6468         * bus/config-parser.c (start_busconfig_child)
6469         (bus_config_parser_content): Support SELinux-root relative
6470         inclusion.
6471
6472         * configure.in <HAVE_SELINUX>: Add -lpthread.
6473         
6474         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6475         (test_post_hook): Move memory checking into here.
6476         (test_pre_hook, test_post_hook): Move SELinux checks in
6477         here, but conditional on a DBUS_TEST_SELINUX environment
6478         variable.  Unfortunately we can't run the SELinux checks
6479         as a normal user, since they won't have any permissions
6480         for /selinux.  So this will have to be tested manually
6481         for now, until we have virtualization for most of
6482         libselinux.
6483         
6484 2004-08-23  Havoc Pennington  <hp@redhat.com>
6485
6486         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6487         drop supplementary groups, suggested by Steve Grubb
6488
6489 2004-08-20  Colin Walters  <walters@redhat.com>
6490
6491         * bus/config-parser.c (start_busconfig_child): Remove some unused
6492         variables.
6493         
6494         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6495         warning.
6496
6497 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6498
6499         * configure.in: If --enable-mono is passed in, if we can't find
6500         mono error out.
6501
6502         * mono/Makefile.am: Use /gacutil to install assemblies into the
6503         GAC and not /root.
6504
6505 2004-08-12  Havoc Pennington  <hp@redhat.com>
6506
6507         * NEWS: update for 0.22
6508
6509         * configure.in: release 0.22
6510
6511 2004-08-11  Colin Walters  <walters@redhat.com>
6512
6513         * tools/dbus-send.c (main, usage): Add --reply-timeout
6514         argument.
6515
6516 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6517
6518         * bus/bus.c (process_config_first_time_only): get rid of an unused
6519         DBusError that was causing a memoy leak (bug #989).
6520
6521         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6522         fix compilation on Solaris/Forte C (bug #974)
6523
6524         * bus/main.c (main): plug two minuscule memleaks.
6525
6526 2004-08-10  Havoc Pennington  <hp@redhat.com>
6527
6528         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6529
6530 2004-08-09  Havoc Pennington  <hp@redhat.com>
6531
6532         * COPYING: switch to Academic Free License version 2.1 instead of
6533         2.0, to resolve complaints about patent termination clause.
6534
6535 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6536
6537         * README: added documentation for the --enable-python 
6538         configure switch.
6539
6540 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6541
6542         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6543         _unref in the SELinux support.
6544
6545         * doc/busconfig.dtd: update DTD for SELinux support.
6546
6547         * bus/config-loader-libxml.c: fix error handler and parser
6548         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6549
6550         * configure.in: remove the warning about libxml2.
6551
6552         * dbus/dbus-bus.c: silence doxygen warning.
6553
6554 2004-07-31  Colin Walters  <walters@redhat.com>
6555
6556         * configure.in: Move #error in SELinux check to its own line.
6557
6558 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6559
6560         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6561         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6562         dbus_error_set.
6563
6564         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6565         broken by the change in the _SET_OOM macros.
6566
6567 2004-07-31  Colin Walters  <walters@redhat.com>
6568
6569         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6570         BUS_SET_OOM.
6571
6572 2004-07-31  Colin Walters  <walters@redhat.com>
6573
6574         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6575         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6576         AC_MSG_CHECKING.
6577
6578 2004-07-24  Havoc Pennington  <hp@redhat.com>
6579
6580         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6581
6582         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6583         functionality
6584
6585         * configure.in: add --enable-selinux
6586         
6587         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6588
6589         * bus/main.c (main): initialize and shut down selinux
6590
6591         * bus/connection.c: store SELinux ID on each connection, to avoid 
6592         repeated getting of the string context and converting it into 
6593         an ID
6594
6595         * bus/bus.c (bus_context_get_policy): new accessor, though it
6596         isn't used
6597         (bus_context_check_security_policy): check whether the security
6598         context of sender connection can send to the security context of
6599         recipient connection
6600
6601         * bus/config-parser.c: add parsing for <selinux> and <associate>
6602         
6603         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6604         implement dbus_connection_get_unix_fd()
6605
6606         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6607         function, used by the selinux stuff
6608         
6609 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6610
6611         * bus/config-loader-libxml.c: complete the implementation of
6612         libxml backend for config file loader. Doesn't work with full OOM
6613         test yet. 
6614         
6615         * configure.in: change error when selecting libxml into a warning.
6616         
6617         * test/data/invalid-config-files: add two non-well-formed XML
6618         files. 
6619         
6620         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6621         
6622         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6623         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6624         be necessary to read all the buffer. (bug #894)
6625
6626         * bus/activation.c (bus_activation_activate_service): fix a
6627         potential assertion failure (bug #896). Small optimization in the
6628         case of auto-activation messages.
6629
6630         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6631         add test case for byte-through-vararg bug (#901). patch by Kimmo
6632         Hämäläinen. 
6633
6634 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6635
6636         * python/dbus.py:
6637         * python/dbus_bindings.pyx.in:
6638         Add dbus.init_gthreads (), allow emit_signal to pass
6639         arguments to the signal.
6640         
6641 2004-07-24  Havoc Pennington  <hp@redhat.com>
6642
6643         * AUTHORS: add some people, not really comprehensively, let me
6644         know if I missed you
6645
6646 2004-07-24  Havoc Pennington  <hp@redhat.com>
6647
6648         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6649         Owen
6650
6651         * test/Makefile.am (DIST_SUBDIRS): here also
6652
6653 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6654
6655         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6656         breaking build on Solaris, reported by Farhad Saberi on the ML.
6657
6658         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6659         va_arg invocation to account for integer promotion in the case of
6660         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6661
6662         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6663         _dbus_list_get_first_link, not _dbus_list_get_first.
6664
6665         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6666
6667         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6668         handler functions so that the asserts in _dbus_object_subtree_unref
6669         do not fail.
6670
6671         * dbus/dbus-transport-unix.c (do_reading):
6672         _dbus_transport_queue_messages return value is of type
6673         dbus_bool_t, not DBusDispatchStatus.
6674         
6675 2004-07-19  David Zeuthen  <david@fubar.dk>
6676
6677         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6678
6679         * bus/dispatch.c:
6680         (check_get_connection_unix_user): Debug says GetProperty; but the
6681         method is called GetConnectionUnixUser
6682         (check_get_connection_unix_process_id): New function
6683         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6684         also call check_get_connection_unix_process_id()
6685         
6686         * bus/driver.c:
6687         (bus_driver_handle_get_connection_unix_process_id): New function,
6688         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6689         interface
6690         
6691         * dbus/dbus-auth.c:
6692         (handle_server_data_external_mech): Set pid from the credentials
6693         obtained from the socket
6694         
6695         * dbus/dbus-connection.c:
6696         (dbus_connection_get_unix_process_id): New function
6697         
6698         * dbus/dbus-connection.h: 
6699         Add prototype for dbus_connection_get_unix_process_id
6700         
6701         * dbus/dbus-transport.c:
6702         (_dbus_transport_get_unix_process_id): New function
6703         
6704         * dbus/dbus-transport.h:
6705         Add prototype for _dbus_transport_get_unix_process_id
6706         
6707 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6708
6709         * dbus/dbus-message.c: Message counter fix, patch by Christian
6710         Hammond <chipx86@gnupdate.org>
6711
6712 2004-07-18  Seth Nickell  <seth@gnome.org>
6713
6714         * python/dbus.py:
6715         * python/dbus_bindings.pyx.in:
6716         * python/tests/test-client.py:
6717
6718         Add dbus.ByteArray and dbus_bindings.ByteArray
6719         types so that byte streams can be passed back.
6720
6721         Give jdahlin the heaps of credit that are so
6722         rightfully his.
6723         
6724 2004-07-12  Seth Nickell  <seth@gnome.org>
6725
6726         * python/dbus.py:
6727
6728         Add message argument to the default object_method_handler
6729         function.
6730         
6731         * python/dbus_bindings.pyx.in:
6732
6733         Automatically return NIL when passed an empty list
6734         (we can't pass back a list since lists are typed
6735         and we don't have any idea what type the the client
6736         intended the list to be... :-( )
6737         
6738 2004-07-10  Seth Nickell  <seth@gnome.org>
6739
6740         * python/examples/Makefile.am:
6741
6742         Fix distcheck breakage caused by new examples.
6743
6744 2004-07-10  Seth Nickell  <seth@gnome.org>
6745
6746         * python/dbus.py:
6747
6748         Add "message" argument to service-side dbus.Object
6749         methods. This will break existing services written
6750         using the python bindings, but will allow extraction
6751         of all the message information (e.g. who its from).
6752
6753         Add improved "object oriented" signal handling/emission.
6754         
6755         * python/examples/example-service.py:
6756
6757         Nix this example.
6758         
6759         * python/examples/example-signal-emitter.py:
6760         * python/examples/example-signal-recipient.py:
6761
6762         Two new examples that show how to emit and receive
6763         signals using the new APIs.
6764         
6765         * python/examples/example-signals.py:
6766         * python/examples/gconf-proxy-service.py:
6767         * python/examples/gconf-proxy-service2.py:
6768
6769         Add "message" argument to service methods.
6770
6771 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6772
6773         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6774         * dbus/bus.c (dbus_bus_get_unix_user)
6775         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6776         method of org.freedesktop.DBus interface.
6777
6778         * bus/dispatch.c: test case
6779
6780 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6781
6782         * python/Makefile.am: switched include directory from glib/ to dbus/
6783         since dbus-glib.h moved
6784  
6785 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6786
6787         * configure.in: prevent building the gcj stuff and libxml loader
6788         since they are broken.
6789
6790 2004-06-20  Havoc Pennington  <hp@redhat.com>
6791
6792         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6793         codes from the dbus error names
6794         
6795         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6796         as dbus/dbus-glib.h and that breakage is now visible due to 
6797         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6798         
6799         * glib/dbus-glib.h: s/gproxy/g_proxy/
6800
6801         * dbus/dbus-shared.h: new header to hold stuff shared with
6802         binding APIs
6803         
6804         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6805         than dbus-errors.h
6806
6807         * glib/dbus-glib.h (dbus_set_g_error): move to
6808         dbus-glib-lowlevel.h
6809
6810         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6811         of stuff to enable this
6812
6813         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6814
6815         * a bunch of other changes with the same basic "separate glib 
6816         bindings from dbus.h" theme
6817         
6818 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6819
6820         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6821
6822         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6823
6824 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6825
6826         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6827         the reply value of the ServiceExists message.
6828
6829 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6830
6831         * python/dbus_bindings.pyx.in: No longer need to parse path
6832         elements and pass them as arrays of strings.  The C API now
6833         accepts plain path strings.
6834         (_build_parsed_path): removed 
6835
6836 2004-06-07  Havoc Pennington  <hp@redhat.com>
6837
6838         * doc/TODO: remove auto-activation item since it's done; sort
6839         items by importance/milestone
6840
6841 2004-06-07  Havoc Pennington  <hp@redhat.com>
6842
6843         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6844         random signature when using REQUIRED_FIELDS (this hack won't work
6845         in the long term)
6846
6847         * dbus/dbus-message.c: change the signature to be a header field,
6848         instead of message->signature special-case string. Incremental
6849         step forward. Then we can fix up code to send the signature in the
6850         message, then fix up code to validate said signature, then fix up
6851         code to not put the typecodes inline, etc.
6852         (load_one_message): don't make up the signature after the fact
6853         (decode_header_data): require signature field for the known
6854         message types
6855
6856         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6857
6858         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6859
6860 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6861
6862         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6863
6864         * mono/Handler.cs: Updated to follow new path argument for
6865         (un-)registering objects.
6866
6867         * mono/example/Makefile.am:
6868         * mono/Makefile.am:
6869         * configure.in: Bumped required version for mono and use new -pkg
6870         syntax for deps
6871
6872 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6873
6874         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6875         registration functions take the path argument as char* instead of
6876         char**.
6877
6878         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6879         split off the path decompostion part of
6880         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6881         warnings. 
6882
6883         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6884         
6885 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6886  
6887         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6888         machine approach.  A state is implemented as a function that
6889         handles incoming events as specified for that state.
6890         
6891         * doc/dbus-specification.xml: Update auth protocol state machine
6892         specification to match implementation.  Remove some leftover
6893         base64 examples.
6894
6895 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6896
6897         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6898         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6899         quiet doxygen.
6900
6901         * Doxyfile.in: remove deprecated options.
6902
6903         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6904         glib/test-thread.h, glib/test-thread-client.c,
6905         glib/test-thread-server.c, glib/test-profile.c,
6906         glib/test-dbus-glib.c: remove these unused files.
6907
6908 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6909
6910         * dbus/dbus-object-tree.c
6911         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6912         non-fallback handlers (bug #684).
6913         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6914         (find_subtree_recurse): report wether the returned subtree is an
6915         exact match or a "fallback" match higher up in the tree.
6916         (object_tree_test_iteration): update test case.
6917
6918 2004-06-01  Seth Nickell  <seth@gnome.org>
6919
6920         * python/dbus_bindings.pyx.in:
6921         * python/tests/test-client.py:
6922
6923         Round off basic type support. Add dicts (yay!), and 
6924         remaining array types.
6925
6926         Make MessageIter more general so it works for dicts too.
6927
6928         Mark all loop variables as C integers.
6929         
6930 2004-05-31  Havoc Pennington  <hp@redhat.com>
6931
6932         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6933         "in" before "out"
6934
6935         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6936
6937         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6938         option that runs the tests, and start filling in some code
6939         including for starters just dumping the interfaces to stdout
6940
6941         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6942
6943         * test/data/valid-introspection-files/lots-of-types.xml: test of
6944         an example introspection file
6945
6946         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6947         "node" (I think...)
6948
6949 2004-05-31  Seth Nickell  <seth@gnome.org>
6950
6951         * python/dbus_bindings.pyx.in:
6952         * python/tests/test-client.py:
6953
6954         Test Suite: 1
6955         Python Bindings: 0
6956
6957         Fix string array memory trashing bug... oops...
6958
6959 2004-05-30  Seth Nickell  <seth@gnome.org>
6960
6961         * python/dbus.py:
6962
6963         Add a nicer-but-less-flexible alternate API for handling 
6964         calls to virtual objects in dbus.ObjectTree.
6965
6966         Screw up the argument order to the dbus.Object constructor
6967         for consistency with dbus.ObjectTree (and to make dbus_methods
6968         optional for future extension)
6969         
6970         * python/examples/Makefile.am:
6971         * python/examples/gconf-proxy-service.py:
6972         * python/examples/gconf-proxy-service2.py:
6973
6974         Alternate implementation of gconf-proxy-service using the
6975         nicer dbus.ObjectTree API.
6976         
6977         * python/examples/example-service.py:
6978         * python/tests/test-server.py
6979
6980         Reverse the argument order to deal with dbus.Object constructor
6981         changes.
6982         
6983 2004-05-30  Seth Nickell  <seth@gnome.org>
6984
6985         * python/examples/example-client.py:
6986         * python/examples/example-service.py:
6987
6988         Take it back. Lists seem to work but they're broken
6989         in the test suite. Make the base examples use
6990         lists (works fine).
6991
6992 2004-05-30  Seth Nickell  <seth@gnome.org>
6993
6994         * python/dbus_bindings.pyx.in:
6995         * python/tests/test-client.py:
6996
6997         Add some more tests and fix errors that crop up.
6998         Unfortunately, currently it seems like marshalling
6999         and unmarshalling of lists is completely broken :-(
7000
7001 2004-05-30  Seth Nickell  <seth@gnome.org>
7002
7003         * python/dbus_bindings.pyx.in:
7004
7005         Add support for ObjectPath type.
7006
7007         * python/dbus.py:
7008
7009         Refactor message handling code to a common function.
7010         
7011         * python/tests/test-client.py:
7012         * python/tests/test-server.py:
7013
7014         Add tests that check to make sure values of all types
7015         can be echoed from a service w/o mangling.
7016         
7017 2004-05-29  Seth Nickell  <seth@gnome.org>
7018
7019         * python/dbus.py:
7020
7021         Add ObjectTree class which allows implementation
7022         of trees of "virtual" objects. Basically the python
7023         wrapper for "register_fallback".
7024         
7025         * python/examples/Makefile.am
7026         * python/examples/gconf-proxy-client.py:
7027         * python/examples/gconf-proxy-service.py:
7028
7029         Implement a simple GConf proxy service that supports
7030         get/set on string and int GConf keys using the ObjectTree.
7031         
7032 2004-05-29  Seth Nickell  <seth@gnome.org>
7033
7034         * python/dbus.py:
7035         * python/examples/example-client.py:
7036         * python/examples/example-service.py:
7037         * python/examples/list-system-services.py:
7038
7039         Add SessionBus, SystemBus and ActivationBus classes
7040         so you don't need to know the special little BUS_TYPE
7041         flag.
7042         
7043 2004-05-29  Havoc Pennington  <hp@redhat.com>
7044
7045         * bus/config-parser.c (process_test_valid_subdir): temporarily
7046         stop testing config parser OOM handling, since expat has issues
7047         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7048
7049         * bus/dbus-daemon-1.1.in: change requested_reply to
7050         send_requested_reply/receive_requested_reply so we can send the
7051         replies, not just receive them.
7052
7053         * bus/config-parser.c: parse the new
7054         send_requested_reply/receive_requested_reply
7055
7056         * bus/policy.c (bus_client_policy_check_can_send): add
7057         requested_reply argument and use it
7058
7059         * bus/bus.c (bus_context_check_security_policy): pass through
7060         requested_reply status to message send check
7061
7062         * bus/system.conf.in: adapt to requested_reply change
7063         
7064 2004-05-28  Havoc Pennington  <hp@redhat.com>
7065
7066         * test/glib/test-service-glib.c (main): remove unused variable
7067
7068         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7069
7070         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7071         from the enum, no longer in use.
7072
7073         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7074         works right.
7075
7076         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7077         whether error_name passed in is a valid error name.
7078
7079 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7080
7081         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7082         OBJECT_PATH and OBJECT_PATH_ARRAY
7083
7084 2004-05-28  Seth Nickell  <seth@gnome.org>
7085
7086         * python/examples/Makefile.am:
7087
7088         Forget to add Makefile.am. Do not pass go.
7089
7090 2004-05-28  Michael Meeks  <michael@ximian.com>
7091
7092         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7093         fix no int64 case.
7094
7095         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7096
7097         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7098         (_dbus_message_iter_get_basic_type_array): impl.
7099         drastically simplify ~all relevant _get methods to use these.
7100         (_dbus_message_iter_append_basic_array),
7101         (dbus_message_iter_append_basic): impl
7102         drastically simplify ~all relevant _append methods to use these.
7103
7104         * dbus/dbus-message-builder.c (parse_basic_type) 
7105         (parse_basic_array, lookup_basic_type): impl.
7106         (_dbus_message_data_load): prune scads of duplicate /
7107         cut & paste coding.
7108
7109         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7110         (_dbus_demarshal_basic_type): implement,
7111         (demarshal_and_validate_len/arg): beef up debug.
7112         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7113
7114 2004-05-27  Seth Nickell  <seth@gnome.org>
7115
7116         * configure.in:
7117         * python/Makefile.am:
7118
7119         Include the example python apps in the tarball.
7120         
7121         * python/examples/list-system-services.py
7122
7123         Add a python new example that fetches the list of services
7124         from the system bus.
7125         
7126 2004-05-27  Seth Nickell  <seth@gnome.org>
7127
7128         * python/dbus.py:
7129         * python/dbus_bindings.pyx.in:
7130
7131         Fix failure to notify that a signal was not handled,
7132         resulted in hung functions.
7133         
7134 2004-05-25  Colin Walters  <walters@redhat.com>
7135
7136         * tools/dbus-monitor.c (main): Monitor all types of messages.
7137
7138 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7139
7140         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7141         which unregisters the object path and disposes the handler.
7142
7143 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7144  
7145         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7146          
7147         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7148         operands to && so we call dbus_message_iter_next () for the last
7149         argument also.
7150
7151 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7152
7153         * dbus/dbus-object-tree.c
7154         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7155         children even if the requested path isn't registered.
7156         (object_tree_test_iteration): test object_tree_list_registered.
7157
7158         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7159         it to 0.
7160         
7161 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7162
7163         * doc/TODO: Remove resolved items.
7164
7165         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7166         field.
7167         
7168         * bus/connection.c (bus_connections_expect_reply): Enforce the
7169         per-connection limit on pending replies.
7170         
7171         Patch from Jon Trowbridge <trow@ximian.com>:
7172  
7173         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7174         up a watch that triggers a config reload when one end of the pipe
7175         becomes readable.
7176         (signal_handler): Instead of doing the config reload in our SIGHUP
7177         handler, just write to the reload pipe and let the associated
7178         watch handle the reload when control returns to the main loop.
7179  
7180         * bus/driver.c (bus_driver_handle_reload_config): Added.
7181         Implements a ReloadConfig method for requesting a configuration
7182         file reload via the bus driver.
7183  
7184 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7185
7186         * HACKING: Updated release instructions concerning the wiki page.
7187
7188 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7189
7190         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7191         filter against auth->allowed_mechs; we only add allowed mechs in
7192         record_mechanisms().
7193  
7194         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7195         ALLOWED_MECHS to auth-script format so we can set the list of
7196         allowed mechanisms.
7197  
7198         * data/auth/client-out-of-mechanisms.auth-script: New test to
7199         check client disconnects when it is out of mechanisms to try.
7200  
7201         * dbus/dbus-auth.c (process_command): Remove check for lines
7202         longer that 1 MB; we only buffer up maximum 16 kB.
7203  
7204         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7205         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7206         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7207         assume there might be unused bytes.
7208  
7209         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7210         client-out-of-mechs, it is handled in process_reject(). Move check
7211         for max failures to send_rejected(), as it's a server-only thing.
7212
7213         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7214         send_auth(), send_data(), send_rejected(), send_error(),
7215         send_ok(), send_begin() and send_cancel().
7216
7217 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7218
7219         Remove base64 encoding, replace with hex encoding. Original patch
7220         from trow@ximian.com, added error handling.
7221
7222         * dbus/dbus-string.c (_dbus_string_base64_encode)
7223         (_dbus_string_base64_decode): Remove.
7224         (_dbus_string_hex_decode): Add end_return argument so we can
7225         distinguish between OOM and invalid hex encoding.
7226         (_dbus_string_test): Remove base64 tests and add test case for
7227         invalid hex.
7228
7229         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7230         Replace base64 with hex.
7231
7232         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7233         for invalid hex encoded data in auth protocol.
7234
7235 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7236
7237         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7238         leak.
7239
7240 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7241
7242         * mono/dbus-sharp.dll.config.in: Added for GAC
7243         * mono/dbus-sharp.snk: Added for GAC
7244         * mono/Assembly.cs.in: Added for GAC
7245         * mono/Makefile.am: Changes for GAC installation        
7246         * configure.in: Added refs for dbus-sharp.dll.config.in and
7247         Assembly.cs.in. More fixes for mono testing
7248         * mono/example/Makefile.am: Changed var to CSC
7249         * Makefile.am: Changed flag name to DBUS_USE_CSC
7250
7251 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7252
7253         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7254         * mono/doc/*: Added documentation framework
7255         * configure.in: Added monodoc check
7256         * README: Added description of mono configure flags
7257
7258 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7259
7260         * doc/dbus-specification.xml: Added a "Required" column to the 
7261         header fields table and changed the "zero or more" verbage in
7262         the above paragraph to read "The header must contain the required 
7263         named header fields and zero or more of the optional named header 
7264         fields".
7265         * test/data/invalid-messages/*.message: Added the required PATH 
7266         named header field to the tests so that they don't fail on 
7267         'Missing path field'
7268
7269 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7270
7271         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7272         the stack by implicitly defining variable and parameter types and
7273         removing the hack of defining C pointers as python objects and later
7274         casting them.
7275
7276 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7277
7278         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7279
7280 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7281
7282         * mono/DBusType/Dict.cs: Handle empty dicts
7283         * mono/DBusType/Array.cs: Handle empty arrays
7284         * mono/Arguments.cs: Handle empty arguments
7285
7286 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7287
7288         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7289         field
7290
7291 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7292
7293         * test/data/valid-messages/standard-*.message: Update message
7294         test scripts to new header field names.
7295
7296 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7297
7298         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7299         overflow to times_we_did_each_thing array which would chop off the
7300         first character of the failure_dir string. Increased the size of
7301         the array to 7 to reflect the number of random mutation functions
7302         we have.
7303
7304 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7305
7306         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7307         unix_server->watch here, it is unreffed in disconnect.
7308         (_dbus_server_new_for_tcp_socket): convert NULL host to
7309         "localhost" here so we don't append NULL to address.
7310         
7311         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7312         various addresses, including tcp with no explicit host.
7313
7314 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7315
7316         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7317         fix incorrect setting of .name_offset in the HeaderField (it was
7318         off by two bytes, positioned right after the name and typecode)
7319
7320         * bus/bus.c (bus_context_new, bus_context_unref): test before
7321         calling dbus_server_free_data_slot and _dbus_user_database_unref
7322         in case of an error.
7323
7324         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7325         by libdbus-gtool.
7326
7327 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7328
7329         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7330         _dbus_poll() instead of select().
7331
7332 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7333
7334         * bus/main.c (signal_handler): Reload the configuration files
7335         on SIGHUP.
7336         (main): Set up our SIGHUP handler.
7337
7338         * bus/bus.c (struct BusContext): Store the config file, user and
7339         fork flag in the BusContext.
7340         (process_config_first_time_only): Added.  Contains the code
7341         (previously in bus_context_new) for setting up the BusContext from
7342         the BusConfigParser that should only be run the first time the
7343         config files are read.
7344         (process_config_every_time): Added.  Contains the code (previously
7345         in bus_context_new) for setting up the BusContext from the
7346         BusConfigParser that should be run every time the config files are
7347         read.
7348         (load_config): Added.  Builds a BusConfigParser from the config
7349         files and passes the resulting structure off to
7350         process_config_first_time_only (assuming this is the first time)
7351         and process_config_every_time.
7352         (bus_context_new): All of the config-related code has been moved
7353         to process_config_first_time_only and process_config_every_time.
7354         Now this function just does the non-config-related initializations
7355         and calls load_config.
7356         (bus_context_reload_config): Added.
7357
7358 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7359
7360         * bus/driver.c (bus_driver_handle_get_service_owner):
7361         implement a GetServiceOwner method.
7362         * doc/dbus-specification.xml: document it.
7363         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7364         
7365         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7366         implement, using the bus GetServiceOwner method.
7367
7368         * test/glib/test-dbus-glib.c:
7369         use dbus_gproxy_new_for_service_owner so that we can receive the
7370         signal. 
7371
7372 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7373
7374         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7375         dbus/dbus-message.c, dbus/dbus-protocol.h
7376         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7377
7378         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7379         dbus/dbus-message.c, dbus/dbus-protocol.h
7380         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7381
7382         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7383         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7384         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7385
7386         * doc/dbus-specification.xml (Header Fields Table):
7387         s/SERVICE/DESTINATION
7388         s/SENDER_SERVICE/SENDER
7389
7390
7391 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7392
7393         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7394         a few seconds.
7395
7396 2004-04-13  Michael Meeks  <michael@ximian.com>
7397
7398         * glib/dbus-gobject.c (handle_introspect): split out
7399         (introspect_properties): this.
7400         (handle_introspect): implement this.
7401
7402         * test/glib/Makefile.am: use the absolute path so the bus
7403         daemon's chdir ("/") doesn't kill us dead.
7404
7405         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7406
7407 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7408
7409         * bus/config-parser.c (struct BusConfigParser): Added
7410         included_files field.
7411         (seen_include): Added.  Checks whether or not a file has already
7412         been included by any parent BusConfigParser.
7413         (bus_config_parser_new): Copy the parent's included_files.
7414         (include_file): Track which files have been included, and fail on
7415         circular inclusions.
7416         (process_test_valid_subdir): Changed printf to report if we are
7417         testing valid or invalid conf files.
7418         (all_are_equiv): Changed printf to be a bit clearer about
7419         what we are actually doing.
7420         (bus_config_parser_test): Test invalid configuration files.
7421
7422 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7423
7424         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7425         argument.  If non-null, the newly-constructed BusConfigParser will
7426         be initialized with the parent's BusLimits instead of the default
7427         values.
7428         (include_file): When including a config file, pass in
7429         the current parser as the parent and then copy the BusLimits
7430         from the included BusConfigParser pack to the current parser.
7431         (process_test_valid_subdir): Renamed from process_test_subdir.
7432         (process_test_equiv_subdir): Added.  Walks through a directory,
7433         descending into each subdirectory and loading the config files
7434         it finds there.  If any subdirectory contains two config files
7435         that don't produce identical BusConfigParser structs, fail.
7436         For now, the BusConfigParser's BusPolicies are not compared.
7437         (bus_config_parser_test): Call both process_test_valid_subdir and
7438         process_test_equiv_subdir.
7439
7440         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7441         argument and pass it along to the call to bus_config_parser_new.
7442         Also made a few small changes to allow this code to compile.
7443
7444         * bus/config-loader-expat.c (bus_config_load): Take a parent
7445         argument and pass it along to the call to bus_config_parser_new.
7446
7447         * bus/bus.c (bus_context_new): Load the config file
7448         with a NULL parent argument.
7449
7450 2004-03-29  Michael Meeks  <michael@ximian.com>
7451
7452         * glib/dbus-gobject.c (introspect_properties): split
7453         out, fix mangled 'while' flow control.
7454         (introspect_signals): implement.
7455         (handle_introspect): update.
7456
7457 2004-03-29  Michael Meeks  <michael@ximian.com>
7458
7459         * glib/dbus-gobject.c (set_object_property): split out / 
7460         re-work, use the property type, and not the message type(!)
7461         (get_object_property): ditto.
7462
7463         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7464         (dbus_gvalue_marshal): make this code re-usable, needed
7465         for signals too, also on both proxy and server side.
7466         Re-write for more efficiency / readability.
7467
7468 2004-03-29  Michael Meeks  <michael@ximian.com>
7469
7470         * dbus/dbus-message.c
7471         (dbus_message_new_error_printf): impl.
7472
7473         * dbus/dbus-connection.c
7474         (dbus_connection_unregister_object_path): fix warning.
7475
7476         * configure.in: fix no-mono-installed situation.
7477
7478 2004-03-27  Havoc Pennington  <hp@redhat.com>
7479
7480         Patch from Timo Teräs:
7481         
7482         * tools/dbus-send.c (main): if --print-reply, assume type is
7483         method call; support boolean type args
7484         
7485         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7486         bunch of memleak and logic bugs
7487         
7488 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7489
7490         * mono/Arguments.cs:
7491         * mono/Introspector.cs:
7492         * mono/Handler.cs:
7493         * mono/InterfaceProxy.cs:
7494         * mono/Message.cs
7495         * mono/ProxyBuilder.cs:
7496         * mono/Service.cs:
7497         Added InterfaceProxy class to avoid building proxies for every
7498         object.
7499
7500         * dbus-message.h:
7501         * dbus-message.c (dbus_message_append_args_valist)
7502         (dbus_message_iter_get_object_path)
7503         (dbus_message_iter_get_object_path_array)
7504         (dbus_message_iter_append_object_path)
7505         (dbus_message_iter_append_object_path_array):
7506         Added object_path iter functions to handle OBJECT_PATH arguments
7507         
7508 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7509
7510         First checkin of mono bindings.
7511         * configure.in:
7512         * Makefile.am:
7513         Build stuff for the bindings
7514         * dbus-sharp.pc.in: Added for pkgconfig
7515         
7516 2004-03-21  Havoc Pennington  <hp@redhat.com>
7517
7518         * test/test-service.c (main): remove debug spew
7519
7520 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7521
7522         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7523         arrays
7524
7525         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7526         (dbus_message_iter_init_array_iterator)
7527         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7528         indicate whether the iterator is empty
7529
7530         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7531         warnings
7532
7533 2004-03-19  Havoc Pennington  <hp@redhat.com>
7534
7535         * NEWS: 0.21 updates
7536
7537         * configure.in: 0.21
7538
7539         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7540         
7541         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7542         you don't need pyrex to make dist
7543
7544         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7545         sources; run moc
7546         
7547 2004-03-18  Richard Hult  <richard@imendio.com>
7548
7549         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7550         (dbus_message_set_auto_activation): Add doxygen docs.
7551
7552 2004-03-16  Richard Hult  <richard@imendio.com>
7553
7554         * bus/activation.c: (bus_activation_service_created),
7555         (bus_activation_send_pending_auto_activation_messages),
7556         (bus_activation_activate_service):
7557         * bus/activation.h:
7558         * bus/dispatch.c: (bus_dispatch),
7559         (check_nonexistent_service_auto_activation),
7560         (check_service_auto_activated),
7561         (check_segfault_service_auto_activation),
7562         (check_existent_service_auto_activation), (bus_dispatch_test):
7563         * bus/driver.c: (bus_driver_handle_activate_service):
7564         * bus/services.c: (bus_registry_acquire_service):
7565         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7566         (dbus_message_get_auto_activation):
7567         * dbus/dbus-message.h:
7568         * dbus/dbus-protocol.h: Implement auto-activation.
7569         
7570         * doc/dbus-specification.xml: Add auto-activation to the spec.
7571
7572 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7573
7574         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7575         fix a bug with CUSTOM types.
7576
7577         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7578         a unit test for this bug (used to fail).
7579
7580 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7581
7582         * bus/activation.c:
7583         (babysitter_watch_callback): notify all pending activations waiting for
7584           the same exec that the activation failed.
7585         (bus_activation_activate_service): shortcut the activation if we 
7586           already waiting for the same executable to start up.
7587
7588 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7589
7590         * bus/activation.c: 
7591         - Added service file reloading. 
7592           Each service files directory is kept in an hash table in 
7593           BusActivation and each BusActivationEntry knows what .service-file it
7594           was read from. So when you try to activate a service the bus will 
7595           check if it's been updated, removed or if new .service-files has 
7596           been installed.
7597         - Test code at the bottom for the service file reloading.
7598         * bus/test-main.c: (main):
7599         * bus/test.h:
7600         - added service reloading test.
7601         * dbus/dbus-sysdeps.c: 
7602         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7603
7604 2004-03-08  Michael Meeks  <michael@ximian.com>
7605
7606         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7607         bail immediately if disconnected, to avoid busy loop.
7608
7609         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7610         cleanup cut/paste/inefficiency.
7611
7612 2004-03-01  David Zeuthen  <david@fubar.dk>
7613
7614         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7615         bug where args were used twice. This bug resulted in a segfault
7616         on a Debian/PPC system when starting the messagebus daemon. Include
7617         dbus-sysdeps.h for DBUS_VA_COPY
7618
7619         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7620
7621         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7622         appropriate va_copy implementation. From GLib
7623         
7624 2004-02-24  Joe Shaw  <joe@ximian.com>
7625
7626         * bus/services.c (bus_registry_acquire_service): We need to pass
7627         in the service name to dbus_set_error() to prevent a crash.
7628
7629 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7630
7631         * AUTHORS: Reveal my True identity.
7632
7633 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7634
7635         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7636         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7637
7638 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7639
7640         * doc/TODO: Added not about better error check of configuration files.
7641
7642 2003-12-02  Richard Hult  <richard@imendio.com>
7643
7644         * Update AFL version to 2.0 throughout the source files to reflect
7645         the update that was done a while ago.
7646
7647 2003-12-02  Richard Hult  <richard@imendio.com>
7648
7649         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7650         wrote_dict_key to FALSE on the iter that the dict is appended to,
7651         just like when appending other types. Fixes a bug where a dict
7652         couldn't be put inside a dict.
7653         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7654         (message_iter_test, _dbus_message_test): Add test case for dict
7655         inside dict.
7656
7657 2003-12-01  David Zeuthen  <david@fubar.dk>
7658
7659         * python/dbus.py: Add the actual message when calling the reciever
7660         of a signal such that parameters can be inspected. Add the method
7661         remove_signal_receiver
7662         
7663 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7664
7665         * bus/*.[ch]:
7666         * dbus/*.[ch]:
7667         * glib/*.[ch]: Made ref functions return the pointer
7668
7669 2003-11-25  Zack Rusin  <zack@kde.org>
7670
7671         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7672
7673         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7674         wrappers,
7675
7676         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7677         the Integrator and to better fit with the server,
7678
7679 2003-11-24  Zack Rusin  <zack@kde.org>
7680
7681         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7682         the integrator handles it now
7683
7684         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7685         since QTimer wasn't really meant to be used the way DBusTimeout is
7686
7687 2003-11-24  Zack Rusin  <zack@kde.org>
7688
7689         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7690         Integrator class which integrates D-BUS with the Qt event loop,
7691
7692         * qt/connection.h, qt/connection.cpp: Move all the code which
7693         was dealing with D-BUS integration to the Integrator class,
7694         and start using Integrator,
7695
7696 2003-11-23  Zack Rusin  <zack@kde.org>
7697
7698         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7699         wrapper
7700
7701         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7702         switching namespaces to DBusQt, reworking the class,
7703
7704         * Makefile.cvs: switching dependencies so that it matches KDE 
7705         schematics,
7706         
7707         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7708         the library
7709
7710 2003-11-19  Havoc Pennington  <hp@redhat.com>
7711
7712         * NEWS: update
7713
7714         * configure.in: bump version to 0.20
7715
7716         * configure.in (have_qt): add yet another place to look for qt
7717         (someone hand trolltech a .pc file...)
7718
7719 2003-11-01  Havoc Pennington  <hp@redhat.com>
7720
7721         * doc/dbus-specification.xml: add state machine docs on the auth
7722         protocol; just a first draft, I'm sure it's wrong.      
7723
7724 2003-10-28  David Zeuthen  <david@fubar.dk>
7725
7726         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7727         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7728         
7729 2003-10-28  Havoc Pennington  <hp@redhat.com>
7730
7731         * dbus/dbus-message.c (get_next_field): delete unused function
7732
7733 2003-10-28  Havoc Pennington  <hp@redhat.com>
7734
7735         * bus/expirelist.c (do_expiration_with_current_time): detect
7736         failure of the expire_func due to OOM
7737
7738         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7739
7740         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7741         NoReply error that's now created by the bus when the service exits
7742
7743 2003-10-28  Havoc Pennington  <hp@redhat.com>
7744
7745         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7746         tests for set_path, set_interface, set_member, etc.
7747
7748         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7749
7750         * dbus/dbus-message.c (set_string_field): always just delete and
7751         re-append the field; accept NULL for deletion
7752         (re_align_fields_recurse): reimplement
7753         
7754 2003-10-26  Havoc Pennington  <hp@redhat.com>
7755
7756         * dbus/dbus-connection.c: fix docs to properly describe the
7757         disconnected message
7758         (_dbus_connection_notify_disconnected): remove this function; 
7759         we can't synchronously add the disconnected message, we have to 
7760         do it after we've queued any remaining real messages
7761         (_dbus_connection_get_dispatch_status_unlocked): queue the
7762         disconnect message only if the transport has finished queueing all
7763         its real messages and is disconnected.
7764         (dbus_connection_disconnect): update the dispatch status here
7765
7766 2003-10-22  Havoc Pennington  <hp@redhat.com>
7767
7768         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7769
7770         * bus/connection.c (bus_transaction_send_from_driver): set the
7771         destination to the connection's base service
7772
7773 2003-10-20  Havoc Pennington  <hp@redhat.com>
7774
7775         hmm, make check is currently not passing.
7776         
7777         * doc/dbus-specification.xml: add requirement that custom type
7778         names follow the same rules as interface names.
7779
7780         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7781         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7782         'map'
7783
7784         * doc/dbus-specification.xml: update type codes to match
7785         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7786         CUSTOM. Add type OBJECT_PATH to the spec.
7787
7788 2003-10-17  Havoc Pennington  <hp@redhat.com>
7789
7790         * bus/driver.c (create_unique_client_name): use "." as separator
7791         in base service names instead of '-'
7792
7793         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7794         byte at the end of the string
7795
7796         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7797         optimization macros since string validation seems to be a slow
7798         point.
7799         
7800         * doc/dbus-specification.xml: restrict valid
7801         service/interface/member/error names. Add test suite code for the
7802         name validation.
7803
7804         * dbus/dbus-string.c: limit service/interface/member/error names 
7805         to [0-9][A-Z][a-z]_
7806
7807         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7808         format arg to verbose spew
7809
7810         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7811         memory, return instead of g_error
7812
7813         * test/test-service.c (path_message_func): support emitting a
7814         signal on request
7815
7816         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7817         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7818         assuming the activation bus was the session bus so that services
7819         started manually will still register.
7820         (init_connections_unlocked): fix so that in OOM situation we get
7821         the same semantics when retrying the function
7822         
7823         * test/test-service.c (main): change to use path registration, to
7824         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7825         than DBUS_BUS_SESSION
7826
7827 2003-10-16  Havoc Pennington  <hp@redhat.com>
7828
7829         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7830
7831         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7832         coverage of the tests
7833         (coverage-report.txt): don't move the .da and .bbg files around
7834
7835 2003-10-16  Havoc Pennington  <hp@redhat.com>
7836
7837         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7838         to put there
7839
7840 2003-10-16  Havoc Pennington  <hp@redhat.com>
7841
7842         * bus/connection.c (bus_pending_reply_expired): either cancel or
7843         execute, not both
7844         (bus_connections_check_reply): use unlink, not remove_link, as we
7845         don't want to free the link; fixes double free mess
7846
7847         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7848         where no reply was received
7849
7850         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7851         fix a refcount leak
7852
7853         * bus/signals.c (match_rule_matches): add special cases for the
7854         bus driver, so you can match on sender/destination for it.
7855
7856         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7857         DBUS_PRINT_BACKTRACE is set
7858
7859         * dbus/dbus-internals.c: add pid to assertion failure messages
7860
7861         * dbus/dbus-connection.c: add message type code to the debug spew
7862
7863         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7864         sender=foo not service=foo
7865
7866         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7867         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7868         DBUS_ACTIVATION_ADDRESS instead
7869
7870         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7871         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7872
7873         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7874         context struct
7875
7876         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7877         (dbus_message_iter_get_object_path_array): new function (half
7878         finished, disabled for the moment)
7879         
7880         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7881         DBUS_MESSAGE_TYPE_ERROR
7882
7883         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7884         avoid redirecting stderr to /dev/null
7885         (babysit): close stdin if not doing the "exit_with_session" thing
7886
7887         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7888         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7889         stdout/stdin, so things don't get confused
7890         
7891         * bus/system.conf.in: fix to allow replies, I modified .conf
7892         instead of .conf.in again.
7893
7894 2003-10-14  David Zeuthen  <david@fubar.dk>
7895
7896         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7897         argtype to arg_type when raising unknown arg type exception.
7898         Changed type list to reflect the changes in dbus-protocol.h so 
7899         the bindings actually work.
7900
7901 2003-10-14  Havoc Pennington  <hp@redhat.com>
7902
7903         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7904         to have a bug keeping it from outputting the .da files sometimes
7905         (string_get_string): don't append garbage nul bytes to the string.
7906
7907 2003-10-15  Seth Nickell  <seth@gnome.org>
7908
7909         * python/Makefile.am:
7910
7911         Include dbus_h_wrapper.h in the dist tarball.
7912
7913 2003-10-14  Havoc Pennington  <hp@redhat.com>
7914
7915         * bus/bus.c (bus_context_check_security_policy): revamp this to
7916         work more sanely with new policy-based requested reply setup
7917
7918         * bus/connection.c (bus_transaction_send_from_driver): set bus
7919         driver messages as no reply
7920
7921         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7922         requested_reply attribute on allow/deny rules
7923
7924         * bus/system.conf: add <allow requested_reply="true"/>
7925
7926         * bus/driver.c (bus_driver_handle_message): fix check for replies
7927         sent to the bus driver, which was backward. How did this ever work
7928         at all though? I think I'm missing something.
7929
7930         * dbus/dbus-message.c (decode_header_data): require error and
7931         method return messages to have a reply serial field to be valid
7932         (_dbus_message_loader_queue_messages): break up this function;
7933         validate that reply serial and plain serial are nonzero; 
7934         clean up the OOM/error handling.
7935         (get_uint_field): don't return -1 from this
7936         (dbus_message_create_header): fix signed/unsigned bug
7937
7938         * bus/connection.c (bus_connections_expect_reply): save serial of
7939         the incoming message, not reply serial
7940
7941 2003-10-14  Havoc Pennington  <hp@redhat.com>
7942
7943         * bus/connection.c: implement pending reply tracking using
7944         BusExpireList
7945
7946         * bus/bus.c (bus_context_check_security_policy): verify that a
7947         reply is pending in order to allow a reply to be sent. Deny 
7948         messages of unknown type.
7949
7950         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7951
7952         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7953         (bus_context_get_reply_timeout): new
7954
7955 2003-10-13  Seth Nickell  <seth@gnome.org>
7956
7957         * python/Makefile.am:
7958
7959         Pass "make distcheck": remove a couple files from DIST_FILES
7960         that weren't included in the final version.
7961
7962 2003-10-12  Havoc Pennington  <hp@pobox.com>
7963
7964         Added test code that 1) starts an actual bus daemon and 2) uses
7965         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7966         more testing possible, but this is the basic framework.
7967         
7968         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7969         empty proxy lists from the proxy list hash
7970
7971         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7972         couple of return_if_fail checks
7973
7974         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7975         to allocate, so everything is cleared to NULL as it should be.
7976
7977         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7978         source as data to dbus_connection_set_timeout_functions() as the 
7979         timeout functions expected
7980
7981         * test/glib/run-test.sh: add a little script to start up a message
7982         bus and run tests using it
7983
7984         * tools/dbus-launch.1: updates
7985
7986         * tools/dbus-launch.c (main): add --config-file option
7987
7988         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7989         that could never be reached.
7990
7991         * dbus/dbus-message.c (dbus_message_new_method_return) 
7992         (dbus_message_new_error, dbus_message_new_signal): set the
7993         no-reply-expected flag on all these. Redundant, but may
7994         as well be consistent.
7995
7996 2003-10-11  Havoc Pennington  <hp@pobox.com>
7997
7998         * test/decode-gcov.c (function_solve_graph): make broken block
7999         graph a nonfatal error since it seems to be broken. Need to debug
8000         this.
8001
8002         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8003         can't just check type > INVALID < LAST anymore
8004
8005         * dbus/dbus-message.c (dbus_message_get_signature): new function
8006         (dbus_message_has_signature): new function
8007         (struct DBusMessage): add signature field (right now it isn't sent
8008         over the wire, just generated on the fly)
8009         (dbus_message_copy): copy the signature, and init strings to
8010         proper length to avoid some reallocs
8011         (dbus_message_iter_init_array_iterator): return void, since it
8012         can't fail
8013         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8014         (_dbus_message_loader_queue_messages): add silly temporary hack to
8015         fill in message->signature on load
8016
8017         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8018         characters, so they are relatively human-readable.
8019
8020 2003-10-11  Havoc Pennington  <hp@pobox.com>
8021
8022         * dbus/dbus-message.c (_dbus_message_test): add more test
8023         coverage, but #if 0 for now since they uncover a bug 
8024         not fixed yet; I think in re_align_field_recurse()
8025         (re_align_field_recurse): add FIXME about broken assertion
8026
8027         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8028
8029         * bus/connection.c: share a couple code bits with expirelist.c
8030
8031         * bus/expirelist.h, bus/expirelist.c: implement a generic
8032         expire-items-after-N-seconds facility, was going to share between
8033         expiring connections and replies, decided not to use for expiring
8034         connections for now.
8035
8036         * COPYING: include AFL 2.0 (still need to change all the file headers)
8037
8038 2003-10-09  Havoc Pennington  <hp@redhat.com>
8039
8040         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8041         gcc 3.3. Not that we do anything about it yet.
8042
8043         * bus/signals.c (bus_match_rule_parse): impose max length on the
8044         match rule text
8045
8046         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8047
8048 2003-10-09  Havoc Pennington  <hp@redhat.com>
8049
8050         Make matching rules theoretically work (add parser).
8051         
8052         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8053         the case where destination is explicitly specified as bus driver
8054         and someone else is eavesdropping.
8055         
8056         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8057         definition of eavesdropping and assertion
8058
8059         * tools/dbus-send.c (main): use dbus_message_type_from_string
8060
8061         * bus/signals.c (bus_match_rule_parse): implement
8062
8063         * dbus/dbus-message.c (dbus_message_type_from_string): new
8064
8065         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8066
8067 2003-10-02  Havoc Pennington  <hp@pobox.com>
8068
8069         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8070         dbus_gproxy_oneway_call
8071
8072         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8073         (dbus_server_setup_with_g_main): fix to allow calling them more
8074         than once on the same args
8075         (dbus_bus_get_with_g_main): new function
8076
8077 2003-10-02  Havoc Pennington  <hp@redhat.com>
8078
8079         * doc/dbus-tutorial.xml: write some stuff
8080
8081 2003-09-29  Havoc Pennington  <hp@pobox.com>
8082
8083         * configure.in: split checks for Doxygen from XML docs, check for
8084         xmlto
8085
8086         * doc/Makefile.am: XML-ify all the docs, and add a blank
8087         dbus-tutorial.xml
8088
8089 2003-09-29  Havoc Pennington  <hp@pobox.com>
8090
8091         * Merge dbus-object-names branch. To see the entire patch 
8092         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8093         it's huuuuge though.
8094         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8095         
8096 2003-09-28  Havoc Pennington  <hp@pobox.com>
8097
8098         * HACKING: update to reflect new server
8099
8100 2003-09-26  Seth Nickell  <seth@gnome.org>
8101
8102         * python/dbus.py:
8103         * python/examples/example-signals.py:
8104
8105         Start implementing some notions of signals. The API
8106         is really terrible, but they sort of work (with the
8107         exception of being able to filter by service, and to
8108         transmit signals *as* a particular service). Need to
8109         figure out how to make messages come from the service
8110         we registered :-(
8111         
8112         * python/dbus_bindings.pyx.in:
8113
8114         Removed duplicate message_handler callbacks.
8115         
8116 2003-09-25  Havoc Pennington  <hp@redhat.com>
8117
8118         * bus/session.conf.in: fix my mess
8119
8120 2003-09-25  Havoc Pennington  <hp@pobox.com>
8121
8122         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8123
8124 2003-09-25  Seth Nickell  <seth@gnome.org>
8125
8126         * python/examples/example-service.py:
8127
8128         Johan notices complete wrong code in example-service, but
8129         completely wrong in a way that works exactly the same (!).
8130         Johan is confused, how could this possibly work? Example
8131         code fails to serve purpose of making things clear.
8132         Seth fixes.
8133
8134 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8135
8136         * doc/dbus-specification.sgml: don't require header fields
8137         to be 4-byte aligned and specify that fields should be
8138         distinguished from padding by the fact that zero is not
8139         a valid field name.
8140         
8141         * doc/TODO: remove re-alignment item and add item to doc
8142         the OBJECT_PATH type.
8143         
8144         * dbus/dbus-message.c:
8145         (HeaderField): rename the original member to value_offset
8146         and introduce a name_offset member to keep track of where
8147         the field actually begins.
8148         (adjust_field_offsets): remove.
8149         (append_int_field), (append_uint_field),
8150         (append_string_field): don't align the start of the header
8151         field to a 4-byte boundary.
8152         (get_next_field): impl finding the next marhsalled field
8153         after a given field.
8154         (re_align_field_recurse): impl re-aligning a number of
8155         already marshalled fields.
8156         (delete_field): impl deleting a field of any type and
8157         re-aligning any following fields.
8158         (delete_int_or_uint_field), (delete_string_field): remove.
8159         (set_int_field), (set_uint_field): no need to re-check
8160         that we have the correct type for the field.
8161         (set_string_field): ditto and impl re-aligning any
8162         following fields.
8163         (decode_header_data): update to take into account that
8164         the fields aren't 4-byte aligned any more and the new
8165         way to distinguish padding from header fields. Also,
8166         don't exit when there is too much header padding.
8167         (process_test_subdir): print the directory.
8168         (_dbus_message_test): add test to make sure a following
8169         field is re-aligned correctly after field deletion.
8170         
8171         * dbus/dbus-string.[ch]:
8172         (_dbus_string_insert_bytes): rename from insert_byte and
8173         allow the insert of multiple bytes.
8174         (_dbus_string_test): test inserting multiple bytes.
8175
8176         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8177         warning note to docs about having to re-align any
8178         marshalled values following the string.
8179         
8180         * dbus/dbus-message-builder.c:
8181         (append_string_field), (_dbus_message_data_load):
8182         don't align the header field.
8183         
8184         * dbus/dbus-auth.c: (process_test_subdir): print the
8185         directory.
8186         
8187         * test/break-loader.c: (randomly_add_one_byte): upd. for
8188         insert_byte change.
8189         
8190         * test/data/invalid-messages/bad-header-field-alignment.message:
8191         new test case.
8192         
8193         * test/data/valid-messages/unknown-header-field.message: shove
8194         a dict in the unknown field.
8195
8196 2003-09-25  Seth Nickell  <seth@gnome.org>
8197
8198         * python/dbus.py:
8199         * python/dbus_bindings.pyx.in:
8200
8201         Handle return values.
8202         
8203         * python/examples/example-client.py:
8204         * python/examples/example-service.py:
8205
8206         Pass back return values from the service to the client.
8207         
8208 2003-09-24  Seth Nickell  <seth@gnome.org>
8209
8210         * python/dbus.py:
8211
8212         Connect Object methods (when you are sharing an object) up... pass
8213         in a list of methods to be shared. Sharing all the methods just
8214         worked out too weird. You can now create nice Services over the
8215         DBus in Python. :-)
8216         
8217         * python/dbus_bindings.pyx.in:
8218
8219         Keep references to user_data tuples passed into C functions so 
8220         Python doesn't garbage collect on us.
8221
8222         Implement MethodReturn and Error subclasses of Message for creating
8223         DBusMessage's of those types.
8224         
8225         * python/examples/example-client.py:
8226         * python/examples/example-service.py:
8227
8228         Simple example code showing both how create DBus services and objects,
8229         and how to use them.
8230
8231 2003-09-23  Havoc Pennington  <hp@pobox.com>
8232
8233         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8234
8235 2003-09-23  Havoc Pennington  <hp@redhat.com>
8236
8237         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8238         (dbus_gproxy_disconnect_signal): implement
8239         (dbus_gproxy_manager_remove_signal_match): implement
8240         (dbus_gproxy_manager_add_signal_match): implement
8241         (dbus_gproxy_oneway_call): implement
8242
8243 2003-09-23  Havoc Pennington  <hp@pobox.com>
8244
8245         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8246         subclass. This means dropping the transparent thread safety of the
8247         proxy; you now need a separate proxy per-thread, or your own
8248         locking on the proxy. Probably right anyway.
8249         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8250
8251 2003-09-22  Havoc Pennington  <hp@redhat.com>
8252
8253         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8254
8255 2003-09-21  Seth Nickell  <seth@gnome.org>
8256
8257         First checkin of the Python bindings.
8258         
8259         * python/.cvsignore:
8260         * python/Makefile.am:
8261         * python/dbus_bindings.pyx.in:
8262         * python/dbus_h_wrapper.h:
8263
8264         Pieces for Pyrex to operate on, building a dbus_bindings.so
8265         python module for low-level access to the DBus APIs.
8266         
8267         * python/dbus.py:
8268
8269         High-level Python module for accessing DBus objects.
8270
8271         * configure.in:
8272         * Makefile.am:
8273
8274         Build stuff for the python bindings.
8275
8276         * acinclude.m4:
8277
8278         Extra macro needed for finding the Python C header files.
8279
8280 2003-09-21  Havoc Pennington  <hp@pobox.com>
8281
8282         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8283         implementing the proxy manager, didn't get very far.
8284
8285         * dbus/dbus-bus.c (dbus_bus_add_match): new
8286         (dbus_bus_remove_match): new
8287
8288         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8289         path_name argument; adjust the other not-yet-implemented 
8290         gproxy constructors to be what I think they should be.
8291
8292 2003-09-21  Havoc Pennington  <hp@pobox.com>
8293
8294         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8295         by default for message bus connections.
8296
8297         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8298         exit_on_disconnect flag is set and we process the disconnected
8299         signal.
8300         (dbus_connection_set_exit_on_disconnect): new function
8301
8302 2003-09-21  Havoc Pennington  <hp@pobox.com>
8303
8304         Get matching rules mostly working in the bus; only actually
8305         parsing the rule text remains. However, the client side of
8306         "signal connections" hasn't been started, this patch is only the
8307         bus side.
8308         
8309         * dbus/dispatch.c: fix for the matching rules changes
8310         
8311         * bus/driver.c (bus_driver_handle_remove_match)
8312         (bus_driver_handle_add_match): send an ack reply from these
8313         method calls
8314
8315         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8316         arguments, reported by Seth Nickell
8317
8318         * bus/config-parser.c (append_rule_from_element): support
8319         eavesdrop=true|false attribute on policies so match rules 
8320         can be prevented from snooping on the system bus.
8321
8322         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8323         and "destination" in attribute names; fix some docs bugs; 
8324         add eavesdrop=true|false attribute
8325
8326         * bus/driver.c (bus_driver_handle_add_match)
8327         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8328         messages
8329
8330         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8331         rid of broadcast service concept, signals are just always broadcast
8332
8333         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8334         mostly implement matching rules stuff (currently only exposed as signal
8335         connections)
8336
8337 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8338
8339         * doc/dbus-specification.sgml: Change the header field name
8340         to be an enum and update the rest of the spec to reference
8341         the fields using the conventinal name.
8342
8343         * dbus/dbus-protocol.h: update to reflect the spec.
8344
8345         * doc/TODO: add item to remove the 4 byte alignment requirement.
8346         
8347         * dbus/dbus-message.c: Remove the code to generalise the
8348         header/body length and serial number header fields as named
8349         header fields so we can reference field names using the 
8350         protocol values.
8351         (append_int_field), (append_uint_field), (append_string_field):
8352         Append the field name as a byte rather than four chars.
8353         (delete_int_or_uint_field), (delete_string_field): reflect the
8354         fact that the field name and typecode now occupy 4 bytes instead
8355         of 8.
8356         (decode_string_field), (decode_header_data): update to reflect
8357         protocol changes and move the field specific encoding from
8358         decode_string_field() back into decode_header_data().
8359         
8360         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8361         Add utility to aid debugging.
8362         
8363         * dbus/dbus-message-builder.c:
8364         (append_string_field), (_dbus_message_data_load): Update to
8365         reflect protocol changes; Change the FIELD_NAME directive
8366         to HEADER_FIELD and allow it to take the field's conventional
8367         name rather than the actual value.
8368         
8369         * test/data/*/*.message: Update to use HEADER_FIELD instead
8370         of FIELD_NAME; Always align the header on an 8 byte boundary
8371         *before* updating the header length.
8372
8373 2003-09-15  Havoc Pennington  <hp@pobox.com>
8374
8375         * dbus/dbus-pending-call.c: add the get/set object data
8376         boilerplate as for DBusConnection, etc. Use generic object data
8377         for the notify callback.
8378
8379         * glib/dbus-gparser.c (parse_node): parse child nodes
8380
8381         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8382         
8383         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8384         contain functions shared between the convenience lib and the
8385         installed lib
8386
8387         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8388         -export-symbols-regex to the GLib library
8389
8390         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8391         fix the locking in here, and add a default handler for
8392         Introspect() that just returns sub-nodes.
8393
8394 2003-09-14  Havoc Pennington  <hp@pobox.com>
8395
8396         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8397         rather than gfoo consistent
8398
8399         * glib/dbus-gproxy.h: delete for now, move contents to
8400         dbus-glib.h, because the include files don't work right since we
8401         aren't in the dbus/ subdir.
8402         
8403         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8404         (dbus_gproxy_end_call): finish
8405         (dbus_gproxy_begin_call): finish
8406
8407         * glib/dbus-gmain.c (dbus_set_g_error): new
8408
8409         * glib/dbus-gobject.c (handle_introspect): include information
8410         about child nodes in the introspection
8411
8412         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8413         function to help in implementation of introspection
8414
8415         * dbus/dbus-object-tree.c
8416         (_dbus_object_tree_list_registered_and_unlock): new function
8417
8418 2003-09-12  Havoc Pennington  <hp@pobox.com>
8419
8420         * glib/dbus-gidl.h: add common base class for all the foo_info
8421         types
8422
8423         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8424         similar to kdcop
8425
8426         * test/Makefile.am: try test srcdir -ef . in addition to test
8427         srcdir = ., one of them should work (yeah lame)
8428         
8429         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8430         library
8431         
8432         * glib/dbus-gparser.h: make description_load routines return
8433         NodeInfo* not Parser*
8434
8435         * Makefile.am (SUBDIRS): build test dir after all library dirs
8436
8437         * configure.in: add GTK+ detection
8438
8439 2003-09-07  Havoc Pennington  <hp@pobox.com>
8440
8441         * Make Doxygen contented.
8442
8443 2003-09-07  Havoc Pennington  <hp@pobox.com>
8444
8445         * doc/dbus-specification.sgml: more updates
8446
8447 2003-09-06  Havoc Pennington  <hp@pobox.com>
8448
8449         * doc/dbus-specification.sgml: partial updates
8450
8451         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8452         zillionth time; hopefully I edited the right file this time.
8453
8454         * bus/config-parser.c (append_rule_from_element): support
8455         send_type, send_path, receive_type, receive_path
8456
8457         * bus/policy.c: add message type and path to the list of things
8458         that can be "firewalled"
8459
8460 2003-09-06  Havoc Pennington  <hp@pobox.com>
8461
8462         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8463         (dbus_connection_register_object_path): make this not handle
8464         messages to paths below the given path
8465
8466 2003-09-03  Havoc Pennington  <hp@pobox.com>
8467
8468         * test/glib/Makefile.am: add this with random glib-linked test
8469         programs
8470
8471         * glib/Makefile.am: remove the random test programs from here,
8472         leave only the unit tests
8473
8474         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8475         uscore/javacaps conversion, and fix     
8476         (get_object_property, set_object_property): change to .NET
8477         convention for mapping props to methods, set_FooBar/get_FooBar, 
8478         since one language has such a convention we may as well copy it. 
8479         Plus real methods in either getFooBar or get_foo_bar style won't 
8480         collide with this convention.
8481
8482 2003-09-01  Havoc Pennington  <hp@pobox.com>
8483
8484         * glib/dbus-gparser.c: implement
8485
8486         * glib/dbus-gobject.c: start implementing skeletons support
8487
8488         * configure.in: when disabling checks/assert, also define
8489         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8490
8491 2003-09-01  Havoc Pennington  <hp@pobox.com>
8492
8493         * glib/Makefile.am: rearrange a bunch of files and get "make
8494         check" framework set up
8495
8496 2003-08-31  Havoc Pennington  <hp@pobox.com>
8497
8498         * fix build with --disable-tests
8499
8500 2003-08-30  Havoc Pennington  <hp@pobox.com>
8501
8502         * dbus/dbus-connection.c: purge DBusMessageHandler
8503
8504         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8505         use callbacks everywhere
8506
8507 2003-08-30  Havoc Pennington  <hp@pobox.com>
8508
8509         * test/data/valid-config-files/system.d/test.conf: change to 
8510         root for the user so warnings don't get printed
8511
8512         * dbus/dbus-message.c: add dbus_message_get_path,
8513         dbus_message_set_path
8514         
8515         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8516         dispatching to a path
8517
8518         * dbus/dbus-string.c (_dbus_string_validate_path): add
8519
8520         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8521         (_dbus_marshal_object_path): implement
8522
8523         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8524         to contain the path to the target object
8525         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8526         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8527
8528 2003-08-30  Havoc Pennington  <hp@pobox.com>
8529
8530         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8531
8532 2003-08-29  Havoc Pennington  <hp@pobox.com>
8533
8534         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8535         registered
8536         (struct DBusObjectSubtree): shrink this
8537         a lot, since we may have a lot of them
8538         (_dbus_object_tree_free_all_unlocked): implement
8539         (_dbus_object_tree_dispatch_and_unlock): implement
8540
8541 2003-08-29  Havoc Pennington  <hp@pobox.com>
8542
8543         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8544
8545 2003-08-28  Havoc Pennington  <hp@pobox.com>
8546
8547         purge DBusObjectID
8548         
8549         * dbus/dbus-connection.c: port to no ObjectID, create a
8550         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8551
8552         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8553         everything except UnregisterFunction and MessageFunction
8554         
8555         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8556         add DBUS_TYPE_OBJECT_PATH
8557         
8558         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8559         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8560         path-based object IDs
8561
8562 2003-08-25  Havoc Pennington  <hp@pobox.com>
8563
8564         Just noticed that dbus_message_test is hosed, I wonder when I
8565         broke that. I thought make check was passing earlier...
8566         
8567         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8568         container tree, will replace most of dbus-object-registry
8569
8570         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8571         screwup
8572
8573 2003-08-19  Havoc Pennington  <hp@pobox.com>
8574
8575         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8576         (dbus_message_is_error): fix this function
8577
8578         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8579         match
8580
8581         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8582         reflect clarified man page
8583         (bus_client_policy_check_can_send): ditto
8584         
8585         * bus/session.conf.in: fixup
8586
8587         * bus/system.conf.in: fixup
8588
8589 2003-08-18  Havoc Pennington  <hp@redhat.com>
8590
8591         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8592
8593         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8594         dumb bug created earlier (wrong order of args to
8595         decode_header_data())
8596         
8597         * tools/dbus-send.c: port
8598
8599         * tools/dbus-print-message.c (print_message): port
8600
8601         * test/data/*messages: port all messages over
8602         
8603         * dbus/dbus-message-builder.c: support including 
8604         message type
8605         
8606         * bus/driver.c: port over
8607         
8608         * bus/dispatch.c: port over to new stuff
8609
8610         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8611         rename disconnect signal to "Disconnected"
8612
8613 2003-08-17  Havoc Pennington  <hp@pobox.com>
8614
8615         This doesn't compile yet, but syncing up so I can hack on it from
8616         work. What are branches for if not broken code? ;-)
8617         
8618         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8619         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8620         DBUS_HEADER_FIELD_ERROR_NAME
8621         
8622         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8623         for the interface+member pairs
8624         (string_hash): change to use g_str_hash algorithm
8625         (find_direct_function, find_string_function): refactor these to
8626         share most code.
8627         
8628         * dbus/dbus-message.c: port all of this over to support 
8629         interface/member fields instead of name field
8630
8631         * dbus/dbus-object-registry.c: port over
8632         
8633         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8634         from _dbus_string_validate_name
8635
8636         * bus/dbus-daemon-1.1: change file format for the 
8637         <deny>/<allow> stuff to match new message naming scheme
8638
8639         * bus/policy.c: port over
8640
8641         * bus/config-parser.c: parse new format
8642         
8643 2003-08-16  Havoc Pennington  <hp@pobox.com>
8644
8645         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8646         broken assertion
8647
8648         * glib/dbus-gproxy.c: some hacking
8649
8650 2003-08-15  Havoc Pennington  <hp@redhat.com>
8651
8652         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8653
8654         * dbus/dbus-connection.c
8655         (dbus_connection_send_with_reply_and_block): factor out internals;
8656         change to convert any error replies to DBusError instead of 
8657         returning them as a message
8658
8659 2003-08-15  Havoc Pennington  <hp@pobox.com>
8660
8661         * dbus/dbus-connection.c, 
8662         dbus/dbus-pending-call.c: Finish the pending call stuff
8663
8664 2003-08-14  Havoc Pennington  <hp@redhat.com>
8665
8666         * dbus/dbus-pending-call.c: start on new object that will replace
8667         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8668         replies
8669
8670         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8671         with remote interfaces
8672
8673         * dbus/dbus-gidl.c: do the boring boilerplate in here
8674         
8675 2003-08-12  Havoc Pennington  <hp@pobox.com>
8676
8677         * bus/dispatch.c (bus_dispatch): make this return proper 
8678         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8679
8680         * dbus/dbus-errors.c (dbus_set_error): use
8681         _dbus_string_append_printf_valist
8682
8683         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8684         (_dbus_string_append_printf): new
8685
8686         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8687         UNKNOWN_METHOD
8688
8689         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8690         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8691         message is unhandled.
8692
8693 2003-08-11  Havoc Pennington  <hp@pobox.com>
8694
8695         * bus/test.c (client_disconnect_handler): change to return
8696         HANDLED (would have been REMOVE_MESSAGE)
8697
8698         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8699         HANDLED/NOT_YET_HANDLED instead of
8700         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8701         should be used.
8702
8703 2003-08-10  Havoc Pennington  <hp@pobox.com>
8704
8705         * tools/dbus-send.c (main): add --type argument, for now
8706         supporting only method_call and signal types.
8707
8708         * tools/dbus-print-message.c: print message type
8709
8710         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8711         init connection->objects
8712
8713         * doc/dbus-specification.sgml: fix sgml
8714
8715         * bus/*.c: port over to object-instance API changes
8716
8717         * test/test-service.c: ditto
8718         
8719         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8720         name, we will have to fix up the rest of the code to also handle
8721         this
8722         (dbus_message_new): generic message-creation call
8723         (set_string_field): allow appending name field
8724
8725 2003-08-06  Havoc Pennington  <hp@pobox.com>
8726
8727         * dbus/dbus-object-registry.c: implement signal connection 
8728         and dispatch
8729
8730         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8731
8732         * dbus/dbus-internals.c (_dbus_memdup): new function
8733
8734 2003-08-02  Havoc Pennington  <hp@pobox.com>
8735
8736         * dbus/dbus-message.c (dbus_message_get_no_reply)
8737         (dbus_message_set_no_reply): add these and remove
8738         set_is_error/get_is_error
8739
8740         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8741         remove the ERROR flag, since there's now an ERROR type
8742
8743 2003-08-01  Havoc Pennington  <hp@pobox.com>
8744
8745         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8746         implement
8747
8748         * dbus/dbus-message.c (dbus_message_get_type): new function
8749
8750         * doc/dbus-specification.sgml: add "type" byte to messages
8751
8752 2003-08-01  Havoc Pennington  <hp@pobox.com>
8753
8754         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8755         a message type enum to distinguish kinds of message
8756         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8757         that need not be replied to
8758
8759 2003-08-01  Havoc Pennington  <hp@pobox.com>
8760
8761         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8762         (unpack_8_octets): fix no-64-bit-int bug
8763
8764         * dbus/dbus-object-registry.c (validate_id): validate the 
8765         connection ID bits, not just the instance ID.
8766
8767         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8768         the connection-global 33 bits of the object ID
8769
8770         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8771         object ID in the new way
8772
8773         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8774         define server/client/instance bits.
8775
8776 2003-07-30  Havoc Pennington  <hp@pobox.com>
8777
8778         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8779         build
8780
8781 2003-07-13  Havoc Pennington  <hp@pobox.com>
8782
8783         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8784         fields to DBusObjectVTable and DBusObjectInfo
8785
8786 2003-07-12  Havoc Pennington  <hp@pobox.com>
8787
8788         * dbus/dbus-object-registry.c: implement unit test,
8789         fix bugs discovered in process
8790
8791         * dbus/dbus-connection.c: remove handler_table and
8792         register_handler(), add DBusObjectRegistry usage
8793
8794         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8795         (dbus_object_id_set_null): new functions
8796
8797 2003-07-08  Havoc Pennington  <hp@pobox.com>
8798
8799         * dbus/dbus-object.c: implement some of this
8800
8801         * dbus/dbus-object-registry.c
8802         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8803         param
8804         (_dbus_object_registry_new): handle OOM
8805
8806 2003-07-08  Havoc Pennington  <hp@pobox.com>
8807
8808         * dbus/dbus-object.h: sketch out an API for registering objects
8809         with a connection, that allows us to use as little as 24 bytes
8810         per object and lets application code represent an object in 
8811         any conceivable way.
8812
8813         * dbus/dbus-object-registry.c: implement the hard bits of the
8814         DBusConnection aspect of object API. Not yet wired up.
8815         
8816 2003-07-06  Havoc Pennington  <hp@pobox.com>
8817
8818         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8819         (_dbus_marshal_object_id): new
8820         (_dbus_demarshal_object_id): new
8821         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8822         consolidate identical switch cases. Don't conditionalize handling
8823         of DBUS_TYPE_UINT64, need to handle the type always.
8824         (_dbus_marshal_validate_arg): consolidate identical cases, and
8825         handle DBUS_TYPE_OBJECT_ID
8826
8827         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8828
8829         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8830
8831 2003-09-28  Havoc Pennington  <hp@pobox.com>
8832
8833         * real 0.13 release
8834
8835 2003-09-28  Havoc Pennington  <hp@pobox.com>
8836
8837         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8838         to work with Debian db2html
8839
8840 2003-09-28  Havoc Pennington  <hp@pobox.com>
8841
8842         * configure.in: 0.13
8843
8844         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8845         stylesheet-images for benefit of Debian
8846         
8847         Change back to using filesystem-linked sockets for the system
8848         bus, so only root can create the default system bus address.
8849         
8850         * bus/system.conf.in: change to use
8851         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8852
8853         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8854         from here.
8855
8856         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8857         here, and AC_DEFINE DBUS_SYSTEM_PATH
8858
8859 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8860
8861         * doc/TODO:
8862         * doc/busconfig.dtd:
8863         Add busconfig DTD.
8864         
8865 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8866
8867         * doc/dbus-specification.sgml:
8868         Add activation reply values.
8869         
8870 2003-08-05  Havoc Pennington  <hp@redhat.com>
8871
8872         * configure.in: 0.12
8873
8874 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8875
8876         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8877         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8878         (add_watch), (remove_watch), (create_source):
8879         Refcount fds, fixes some reentrancy issues.
8880         
8881 2003-07-30  Havoc Pennington  <hp@redhat.com>
8882
8883         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8884         bus address to be abstract if we have abstract sockets
8885
8886         * NEWS: update
8887
8888 2003-07-28  Havoc Pennington  <hp@redhat.com>
8889
8890         * bus/messagebus.in: fix to avoid processname/servicename 
8891         confusion, from Michael Kearey
8892         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8893         
8894 2003-07-23  Havoc Pennington  <hp@pobox.com>
8895
8896         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8897         fix from Andy Hanton to remove broken "+1"
8898
8899 2003-07-16  Havoc Pennington  <hp@pobox.com>
8900
8901         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8902         babysitter process, as suggested by Thomas Leonard, so 
8903         an "eval `dbus-launch --exit-with-session`" will actually 
8904         return
8905
8906 2003-07-16  Havoc Pennington  <hp@pobox.com>
8907
8908         * configure.in: print out EXPANDED_* variables in the summary at
8909         the end; clean up the code that computes EXPANDED_ variables and
8910         get the ones using exec_prefix right. Should make things work
8911         when you build without --prefix
8912
8913 2003-06-29  Havoc Pennington  <hp@pobox.com>
8914
8915         * mono/Test.cs (class Test): fire up a main loop and run it
8916
8917         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8918         done once, the app has to do it
8919
8920 2003-06-26  Havoc Pennington  <hp@pobox.com>
8921
8922         * mono/Connection.cs: set up connection with the glib main loop
8923
8924 2003-07-01  Havoc Pennington  <hp@redhat.com>
8925
8926         * doc/dbus-specification.sgml: clarify the format of a type code,
8927         change suggested by Jim Blandy
8928
8929 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8930
8931         * doc/Makefile.am:
8932         * tools/Makefile.am: Don't assume srcdir == builddir.
8933
8934         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8935         the allocated block.
8936         (_dbus_memory_test): New function.
8937         * dbus/dbus-test.h: Add _dbus_memory_test ().
8938         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8939
8940         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8941         of %c%c%c%c.
8942         (dbus_message_new): Remove obsolete @todo.
8943
8944         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8945         (_dbus_marshal_set_uint64): Fix comment.
8946
8947         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8948         hardcode FIELD_REPLY_SERIAL.
8949
8950         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8951         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8952
8953         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8954         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8955
8956 2003-06-24  Havoc Pennington  <hp@pobox.com>
8957
8958         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8959
8960 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8961
8962         * configure.in:
8963         * gcj/.cvsignore:
8964         * gcj/Hello.java:
8965         * gcj/Makefile.am:
8966         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8967         * gcj/org/.cvsignore:
8968         * gcj/org/Makefile.am:
8969         * gcj/org/freedesktop/.cvsignore:
8970         * gcj/org/freedesktop/Makefile.am:
8971         * gcj/org/freedesktop/dbus/.cvsignore:
8972         * gcj/org/freedesktop/dbus/Makefile.am:
8973         * gcj/org/freedesktop/dbus/Message.java: (Message),
8974         (Message.Message):
8975         * gcj/org/freedesktop/dbus/natMessage.cc:
8976         Fix the build system.
8977
8978 2003-06-22  Havoc Pennington  <hp@pobox.com>
8979
8980         * mono/Connection.cs: add more bindings
8981
8982         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8983         more than once.
8984
8985 2003-06-22  Havoc Pennington  <hp@pobox.com>
8986
8987         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8988         Start wrapping more stuff.
8989
8990 2003-06-22  Havoc Pennington  <hp@pobox.com>
8991
8992         * mono/Message.cs: implement Message.Wrap() that ensures we only
8993         have a single C# wrapper per DBusMessage, assuming it works which
8994         it probably doesn't.
8995
8996         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8997         (dbus_message_free_data_slot): new
8998         (dbus_message_set_data): new
8999         (dbus_message_get_data): new
9000
9001 2003-06-22  Havoc Pennington  <hp@pobox.com>
9002
9003         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9004         (_dbus_data_slot_allocator_alloc): rework these to keep a
9005         reference count on each slot and automatically manage a global
9006         slot ID variable passed in by address
9007
9008         * bus/bus.c: convert to new dataslot API
9009
9010         * dbus/dbus-bus.c: convert to new dataslot API
9011
9012         * dbus/dbus-connection.c: convert to new dataslot API
9013
9014         * dbus/dbus-server.c: convert to new dataslot API
9015
9016         * glib/dbus-gmain.c: ditto
9017
9018         * bus/test.c: ditto
9019
9020         * bus/connection.c: ditto
9021
9022 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9023
9024         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9025         after the gcj checks so that the correct configuration tags
9026         will be added to libtool.
9027
9028         * dbus-glib-1.pc.in: No need to specify any includes since
9029         dbus-1.pc.in has those.
9030
9031 2003-06-22  Havoc Pennington  <hp@pobox.com>
9032
9033         * mono/*, gcj/*, configure.in, Makefile.am:
9034         Check in makefiles and subdirs for mono and gcj bindings.
9035         Neither binding actually exists, just trying to get through
9036         all the build and other boring bits.
9037
9038 2003-06-21  Philip Blundell  <philb@gnu.org>
9039
9040         * tools/dbus-monitor.1: Updated.
9041
9042         * tools/dbus-send.1: Likewise.
9043
9044 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9045
9046         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9047         for hangup and error after checking read so we won't discard
9048         pending data if both hangup and read are set.
9049
9050 2003-06-19  Philip Blundell  <philb@gnu.org>
9051
9052         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9053
9054         * tools/dbus-send.c: Accept both --system and --session.
9055
9056         * tools/dbus-monitor.c: Same here.
9057
9058 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9059
9060         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9061         from C++ (Patch by Miloslav Trmac).
9062
9063 2003-06-15  Joe Shaw  <joe@assbarn.com>
9064
9065         * configure.in: Check for socklen_t.
9066
9067         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9068
9069         * test/test-segfault.c: Add #include <sys/time.h>
9070
9071         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9072         dbus-launch needs it.
9073
9074 2003-06-09  Havoc Pennington  <hp@redhat.com>
9075
9076         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9077         SUN_LEN, it breaks abstract socket usage
9078
9079         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9080         starts of lines.
9081
9082 2003-06-04  Havoc Pennington  <hp@pobox.com>
9083
9084         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9085         using unix:abstract=/foo, and when listening in a tmpdir
9086         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9087
9088         * dbus/dbus-transport.c (_dbus_transport_open): support
9089         unix:abstract=/foo
9090
9091         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9092         support abstract sockets
9093
9094         * dbus/dbus-transport-unix.c
9095         (_dbus_transport_new_for_domain_socket): support abstract sockets
9096
9097         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9098         toggle as an argument, implement abstract namespace support
9099         (_dbus_listen_unix_socket): ditto
9100
9101         * configure.in: add --enable-abstract-sockets and implement
9102         a configure check for autodetection of the right value.
9103
9104 2003-06-01  Havoc Pennington  <hp@pobox.com>
9105
9106         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9107         in /tmp (though on Linux this will end up being useless,
9108         when we add abstract namespace support)
9109
9110         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9111         subst'ing it
9112
9113 2003-05-28  Colin Walters  <walters@verbum.org>
9114
9115         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9116
9117 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9118
9119         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9120
9121 2003-05-17  Colin Walters  <walters@gnu.org>
9122
9123         * tools/dbus-send.c: Don't exit with an error code if --help was
9124         passed.  Default to using the session bus instead of the system
9125         one.
9126
9127         * tools/dbus-launch.c: Ditto.
9128
9129         * tools/dbus-monitor.c: Ditto.
9130
9131         * tools/dbus-send.1: Update with new arguments.
9132
9133         * tools/dbus-launch.c: Emit code to export variables.  New
9134         arguments -s and -c to specify shell syntax, and a bit of code to
9135         autodetect syntax.  Also, allow specifying a program to run.
9136
9137         * tools/dbus-launch.1: Update with new arguments.
9138
9139         * tools/dbus-send.1: Ditto.
9140
9141         * tools/dbus-monitor.1: Ditto.
9142
9143 2003-05-17  Havoc Pennington  <hp@pobox.com>
9144
9145         * bus/config-parser.c (merge_included): merge in policies from
9146         child configuration file.
9147
9148         * bus/policy.c (bus_policy_merge): function to merge two policies
9149         together
9150
9151 2003-05-16  Havoc Pennington  <hp@redhat.com>
9152
9153         * dbus/dbus-connection.c: disable verbose lock spew
9154
9155         * tools/dbus-send.c: add --print-reply command line option
9156
9157         * tools/dbus-print-message.h (print_message): new util function
9158         shared by dbus-send and dbus-monitor
9159
9160         * tools/dbus-monitor.c (handler_func): exit on disconnect
9161
9162         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9163         disconnected, don't try to use the read_watch
9164
9165         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9166         so we can find this bug more easily
9167
9168 2003-05-16  Havoc Pennington  <hp@redhat.com>
9169
9170         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9171         NULL as DBusHashTable is annoyingly likely to do.
9172
9173 2003-05-16  Colin Walters  <walters@verbum.org>
9174
9175         * tools/dbus-monitor.c: Add --session argument and usage()
9176         function.
9177
9178         * tools/dbus-monitor.1: Update with new --session arg.
9179
9180         * bus/Makefile.am (install-data-hook): Create
9181         $(libdir)/dbus-1.0/services so that the session bus is happy.
9182
9183 2003-05-15  Havoc Pennington  <hp@redhat.com>
9184
9185         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9186         on non-x86. ifdef's are evil.
9187
9188 2003-05-15  Havoc Pennington  <hp@redhat.com>
9189
9190         * configure.in: 0.11
9191
9192         * NEWS: update
9193
9194         * bus/Makefile.am (initddir): apparently we are supposed to put
9195         init scripts in /etc/rc.d/init.d not /etc/init.d
9196
9197         * bus/Makefile.am: remove the "you must --enable-tests to make
9198         check" as it broke distcheck
9199
9200         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9201
9202 2003-05-13  James Willcox  <jwillcox@gnome.org>
9203
9204         * configure.in:
9205         * bus/activation.c: (bus_activation_service_created),
9206         (bus_activation_activate_service):
9207         * bus/driver.c: (bus_driver_send_service_deleted),
9208         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9209         (bus_driver_send_service_acquired),
9210         (bus_driver_send_welcome_message),
9211         (bus_driver_handle_list_services):
9212         * bus/session.conf.in:
9213         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9214         (dbus_bus_service_exists), (dbus_bus_activate_service):
9215         * dbus/dbus-bus.h:
9216
9217         Add some convenience API which lets you activate a service, and did a
9218         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9219         and dbus_message_get_args()
9220
9221 2003-05-11  Havoc Pennington  <hp@pobox.com>
9222
9223         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9224         calling _dbus_marshal_validate_arg() for every byte in a byte
9225         array, etc.
9226
9227         * dbus/dbus-message-handler.c: use atomic reference counting to
9228         reduce number of locks slightly; the global lock in here sucks
9229
9230         * dbus/dbus-connection.c
9231         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9232         update_dispatch_status that can be called with lock held; then use
9233         in a couple places to reduce locking/unlocking
9234         (dbus_connection_send): hold the lock over the whole function
9235         instead of acquiring it twice.
9236
9237         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9238
9239         * bus/connection.c (bus_connections_setup_connection): fix access
9240         to already-freed memory.
9241
9242         * dbus/dbus-connection.c: keep a little cache of linked list
9243         nodes, to avoid using the global linked list alloc lock in the
9244         normal send-message case. Instead we just use the connection lock
9245         that we already have to take.
9246
9247         * dbus/dbus-list.c (_dbus_list_find_last): new function
9248
9249         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9250         change to use a struct for the atomic type; fix docs,
9251         they return value before increment, not after increment.
9252
9253         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9254         (_dbus_string_append_8_aligned): new functions to try to
9255         microoptimize this operation.
9256         (reallocate_for_length): break this out of set_length(), to
9257         improve profile info, and also so we can consider inlining the
9258         set_length() part.
9259
9260         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9261         strings with some preallocation, cuts down on our calls to realloc
9262         a fair bit. Though if we can get the "move entire string to empty
9263         string" optimization below to kick in here, it would be better.
9264
9265         * dbus/dbus-string.c (_dbus_string_move): just call
9266         _dbus_string_move_len
9267         (_dbus_string_move_len): add a special case for moving
9268         an entire string into an empty string; we can just
9269         swap the string data instead of doing any reallocs.
9270         (_dbus_string_init_preallocated): new function
9271
9272 2003-05-11  Havoc Pennington  <hp@pobox.com>
9273
9274         Write a "test-profile" that does echo client-server with threads;
9275         profile reveals lock contention, memcpy/realloc of buffers, and
9276         UTF-8 validation as hot spots. 20% of lock contention eliminated
9277         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9278         contention is global mempool locks for GList and DBusList.
9279
9280         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9281         x86 implementation
9282
9283         * dbus/dbus-connection.c (struct DBusConnection): use
9284         dbus_atomic_t for the reference count
9285
9286         * dbus/dbus-message.c (struct DBusMessage): declare
9287         dbus_atomic_t values as volatile
9288
9289         * configure.in: code to detect ability to use atomic integer
9290         operations in assembly, from GLib patch
9291
9292         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9293         time, tired of it being wrong in threads and forked processes
9294
9295         * glib/test-profile.c: a little program to bounce messages back
9296         and forth between threads and eat CPU
9297
9298         * dbus/dbus-connection.c: add debug spew macros for debugging
9299         thread locks; include config.h at top; fix deadlock in
9300         dbus_connection_flush()
9301
9302 2003-05-08  Havoc Pennington  <hp@pobox.com>
9303
9304         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9305         data from getting written, and there wasn't a good reason to
9306         use _exit really.
9307
9308         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9309         dbus_verbose lines in test coverage
9310         (main): add list of functions sorted by # of untested blocks
9311         to the coverage report
9312
9313         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9314
9315         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9316
9317         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9318         extend test coverage
9319
9320         * test/data/auth/cancel.auth-script: test canceling an
9321         authentication
9322
9323         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9324         aren't used. in CVS history if we end up needing them.
9325
9326 2003-05-04  Havoc Pennington  <hp@pobox.com>
9327
9328         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9329         unit test
9330
9331         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9332         function, which assumed length was in # of strings, not bytes
9333
9334         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9335         missing coverage
9336
9337         * dbus/dbus-connection.c
9338         (_dbus_connection_queue_received_message): disable function for
9339         now, we are only using it in test mode
9340
9341         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9342         remove a mistaken FIXME
9343
9344 2003-05-04  Havoc Pennington  <hp@pobox.com>
9345
9346         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9347         unlock mutex on successful return, patch from Anders Gustafsson
9348
9349 2003-05-04  Havoc Pennington  <hp@pobox.com>
9350
9351         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9352         Anders Gustafsson
9353
9354 2003-05-04  Havoc Pennington  <hp@pobox.com>
9355
9356         * tools/dbus-launch.c: implement
9357
9358         * bus/main.c (main), bus/bus.c (bus_context_new):
9359         implement --print-pid and --fork
9360
9361 2003-05-03  Havoc Pennington  <hp@redhat.com>
9362
9363         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9364         the address had no value, and add to test suite. Fix and
9365         regression test from Miloslav Trmac
9366
9367 2003-05-03  Havoc Pennington  <hp@pobox.com>
9368
9369         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9370         watch is invalid when handled
9371
9372         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9373         dbus-launch utility to launch the bus from a shell script.  Didn't
9374         actually implement dbus-launch yet, it's just a placeholder still.
9375
9376 2003-05-03  Havoc Pennington  <hp@pobox.com>
9377
9378         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9379         daemon; also documents daemon config file, so replaces
9380         doc/config-file.txt. Corrected some stuff from config-file.txt in
9381         the process of moving it.
9382
9383 2003-05-03  Havoc Pennington  <hp@pobox.com>
9384
9385         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9386         add some man pages
9387
9388 2003-05-03  Colin Walters  <walters@verbum.org>
9389
9390         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9391         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9392
9393         * Makefile.am: Update to use new .pc versioning scheme.
9394
9395 2003-05-02  Havoc Pennington  <hp@redhat.com>
9396
9397         * bus/system.conf.in: allow send/receive to/from message bus
9398         service
9399
9400 2003-04-30  Havoc Pennington  <hp@redhat.com>
9401
9402         * configure.in: print a note when building with unit tests and
9403         without assertions
9404
9405 2003-04-30  Havoc Pennington  <hp@redhat.com>
9406
9407         * Makefile.am: add a check-local that complains if you didn't
9408         configure with --enable-tests
9409
9410 2003-04-29  Havoc Pennington  <hp@redhat.com>
9411
9412         * glib/dbus-gmain.c: docs cleanups
9413
9414         * dbus/dbus-types.h: add docs on int64 types
9415
9416         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9417         public API docs section
9418
9419 2003-04-29  Havoc Pennington  <hp@redhat.com>
9420
9421         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9422         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9423         parallel install API version, not with the D-BUS package version.
9424
9425         * HACKING: move some of README over here
9426
9427         * README: updates, and document API/ABI policy
9428
9429         * configure.in: reindentation
9430
9431 2003-04-29  Havoc Pennington  <hp@redhat.com>
9432
9433         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9434         to use this library" to be sure people have the right
9435         expectations.
9436
9437 2003-04-28  Havoc Pennington  <hp@redhat.com>
9438
9439         * configure.in: add --enable-docs which by default is auto yes if
9440         doxygen and db2html found, no otherwise; but can be forced on/off
9441
9442         * doc/Makefile.am: conditionalize whether to build docs on
9443         --enable-docs
9444
9445 2003-04-28  Havoc Pennington  <hp@redhat.com>
9446
9447         * configure.in: 0.10
9448
9449         * NEWS: update
9450
9451         * bus/system.conf.in: add <includedir>system.d</includedir>
9452
9453         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9454         username was provided but not uid
9455
9456         * bus/config-parser.c (struct BusConfigParser): keep track of
9457         whether the parser is toplevel or was included; change some
9458         of the error handling if it's included.
9459
9460 2003-04-27  Havoc Pennington  <hp@pobox.com>
9461
9462         Unbreak my code...
9463
9464         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9465         report correct status if we finish processing authentication
9466         inside this function.
9467
9468         * bus/activation.c (try_send_activation_failure): use
9469         bus_transaction_send_error_reply
9470
9471         * bus/connection.c (bus_connection_get_groups): return an error
9472         explaining the problem
9473
9474         * bus/bus.c (bus_context_check_security_policy): implement
9475         restriction here that inactive connections can only send the
9476         hello message. Also, allow bus driver to send anything to
9477         any recipient.
9478
9479         * bus/connection.c (bus_connection_complete): create the
9480         BusClientPolicy here instead of on-demand.
9481         (bus_connection_get_policy): don't return an error
9482
9483         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9484         sender field in message being replied to
9485
9486         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9487         causing it to return FALSE always
9488
9489         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9490         we checked sender rather than destination
9491
9492 2003-04-25  Havoc Pennington  <hp@redhat.com>
9493
9494         test suite is slightly hosed at the moment, will fix soon
9495
9496         * bus/connection.c (bus_connections_expire_incomplete): fix to
9497         properly disable the timeout when required
9498         (bus_connection_set_name): check whether we can remove incomplete
9499         connections timeout after we complete each connection.
9500
9501         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9502         probably still broken.
9503
9504         * bus/services.c (bus_registry_acquire_service): implement max
9505         number of services owned, and honor allow/deny rules on which
9506         services a connection can own.
9507
9508         * bus/connection.c (bus_connection_get_policy): report errors here
9509
9510         * bus/activation.c: implement limit on number of pending
9511         activations
9512
9513 2003-04-25  Havoc Pennington  <hp@redhat.com>
9514
9515         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9516         where we used >= 0 instead of != DBUS_UID_UNSET.
9517
9518 2003-04-25  Havoc Pennington  <hp@redhat.com>
9519
9520         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9521         were toggled without add/remove, fix from Anders Gustafsson
9522
9523 2003-04-24  Havoc Pennington  <hp@redhat.com>
9524
9525         * test/data/valid-config-files/basic.conf: add <limit> tags to
9526         this test
9527
9528         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9529         <limit> tag in configuration file.
9530
9531 2003-04-24  Havoc Pennington  <hp@redhat.com>
9532
9533         * bus/dispatch.c: somehow missed some name_is
9534
9535         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9536         (_dbus_timeout_set_interval): new
9537
9538         * bus/connection.c (bus_connections_setup_connection): record time
9539         when each connection is first set up, and expire them after the
9540         auth timeout passes.
9541
9542 2003-04-24  Havoc Pennington  <hp@redhat.com>
9543
9544         * dbus/dbus-message.c (dbus_message_name_is): rename
9545         (dbus_message_service_is): rename
9546         (dbus_message_sender_is): rename
9547         (dbus_message_get_service): rename
9548
9549 2003-04-24  Havoc Pennington  <hp@redhat.com>
9550
9551         * configure.in: add --enable-checks
9552
9553         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9554
9555         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9556         to use thread locks.
9557         (_dbus_connection_handler_destroyed_locked): move some private
9558         functions into proper docs group
9559
9560         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9561         _dbus_return_val_if_fail
9562
9563         Throughout: use dbus_return_if_fail
9564
9565 2003-04-23  James Willcox  <jwillcox@gnome.org>
9566
9567         * glib/dbus-glib.h:
9568         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9569         (dbus_connection_setup_with_g_main),
9570         (dbus_server_setup_with_g_main):
9571         * glib/test-dbus-glib.c: (main):
9572         * glib/test-thread-client.c: (main):
9573         * glib/test-thread-server.c: (new_connection_callback), (main):
9574         * tools/dbus-monitor.c: (main):
9575
9576         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9577         and dbus_server_setup_with_g_main().
9578
9579 2003-04-20  Havoc Pennington  <hp@pobox.com>
9580
9581         * doc/dbus-specification.sgml: document the restrictions on
9582         message and service names
9583
9584 2003-04-22  Havoc Pennington  <hp@redhat.com>
9585
9586         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9587         support, and do some code cleanups to share more code and
9588         speed up array marshal/demarshal.
9589
9590         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9591
9592         * configure.in: generate dbus-arch-deps.h
9593
9594         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9595         64-bit typecodes
9596
9597 2003-04-22  Havoc Pennington  <hp@redhat.com>
9598
9599         * test/data/valid-messages/opposite-endian.message: fix test
9600         to use proper type for rply field
9601
9602         * test/data/invalid-messages: add tests for below validation
9603
9604         * dbus/dbus-message.c (decode_header_data): validate field types,
9605         and validate that named fields are valid names
9606         (decode_name_field): consider messages in the
9607         org.freedesktop.Local. namespace to be invalid.
9608
9609         * dbus/dbus-string.c (_dbus_string_validate_name): new
9610
9611 2003-04-19  Havoc Pennington  <hp@pobox.com>
9612
9613         * bus/driver.c (bus_driver_handle_hello): check limits and
9614         return an error if they are exceeded.
9615
9616         * bus/connection.c: maintain separate lists of active and inactive
9617         connections, and a count of each. Maintain count of completed
9618         connections per user. Implement code to check connection limits.
9619
9620         * dbus/dbus-list.c (_dbus_list_unlink): export
9621
9622         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9623         number of bytes in the message queue for a connection
9624
9625 2003-04-18  Havoc Pennington  <hp@pobox.com>
9626
9627         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9628
9629         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9630         memleaks
9631
9632         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9633         on realloc be sure to update the pointer in the keyring
9634
9635         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9636         offset to avoid writing to unallocated memory
9637
9638         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9639         try the next mechanism, so we properly handle OOM
9640
9641         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9642         on OOM.
9643         (_dbus_keyring_new): fix OOM bug
9644         (_dbus_keyring_new_homedir): always set error; impose a maximum
9645         number of keys we'll load from the file, mostly to speed up the
9646         test suite and make its OOM checks more useful, but also for
9647         general sanity.
9648
9649         * dbus/dbus-auth.c (process_error_server): reject authentication
9650         if we get an error from the client
9651         (process_cancel): on cancel, send REJECTED, per the spec
9652         (process_error_client): send CANCEL if we get an error from the
9653         server.
9654
9655 2003-04-18  Havoc Pennington  <hp@pobox.com>
9656
9657         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9658         debug spew
9659
9660         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9661         handling problem
9662
9663         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9664         about DBUS_TEST_HOMEDIR once
9665
9666         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9667         the environment
9668
9669         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9670         config file so we test the right thing
9671
9672         Throughout: assorted docs improvements
9673
9674 2003-04-18  Havoc Pennington  <hp@pobox.com>
9675
9676         * glib/dbus-gmain.c: adapt to watch changes
9677
9678         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9679
9680         * dbus/dbus-server.h: remove dbus_server_handle_watch
9681
9682         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9683
9684         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9685         like DBusTimeout, so we don't need dbus_connection_handle_watch
9686         etc.
9687
9688 2003-04-17  Havoc Pennington  <hp@redhat.com>
9689
9690         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9691         database usage so it all goes via the DBusUserDatabase cache.
9692
9693 2003-04-17  Havoc Pennington  <hp@redhat.com>
9694
9695         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9696         there was an OOM watch we skipped, we always return TRUE so we
9697         iterate again to have a look at it again. Fixes test suite hang.
9698         Code rearrangement also lets us lose some memset and only iterate
9699         over callbacks once.
9700
9701         * bus/driver.c (bus_driver_handle_message): sense of test for
9702         reply was backward
9703
9704 2003-04-16  Havoc Pennington  <hp@pobox.com>
9705
9706         * doc/dbus-specification.sgml: make spec say serials are unsigned
9707
9708         * dbus/dbus-message.h: change message serials to unsigned
9709
9710         * dbus/dbus-connection.c: adapt to message serials being unsigned
9711
9712 2003-04-15  Havoc Pennington  <hp@pobox.com>
9713
9714         * bus/bus.c: create and keep around a shared DBusUserDatabase
9715         object.
9716
9717         * bus/connection.c (bus_connection_get_groups): don't cache
9718         groups for user in the connection object, since user database
9719         object now does that.
9720
9721 2003-04-16  Havoc Pennington  <hp@redhat.com>
9722
9723         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9724         list of size counters
9725         (_dbus_message_loader_putback_message_link): put back a popped link
9726
9727         * dbus/dbus-connection.c
9728         (dbus_connection_set_max_live_messages_size): rename
9729         max_received_size
9730         (dbus_connection_get_outgoing_size): get size of outgoing
9731         queue
9732         (_dbus_connection_set_connection_counter): remove this cruft
9733
9734 2003-04-14  Havoc Pennington  <hp@redhat.com>
9735
9736         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9737         caching, but at some point we might want to be able to use a
9738         different database.
9739
9740         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9741         SHA1 conf file to test the sha1 auth mechanism, since the regular
9742         test always uses EXTERNAL when available.
9743
9744         * configure.in,
9745         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9746         add conf file that requires use of sha1 auth
9747
9748 2003-04-13  Havoc Pennington  <hp@pobox.com>
9749
9750         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9751         from Philip Blundell to send messages and monitor them.
9752
9753 2003-04-13  Havoc Pennington  <hp@pobox.com>
9754
9755         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9756         callbacks
9757
9758         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9759         users
9760
9761         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9762         fix to only recover unused bytes if we're already authenticated
9763         (_dbus_transport_get_is_authenticated): fix to still mark us
9764         authenticated if there are unused bytes.
9765
9766         * bus/dispatch.c: implement security policy checking
9767
9768         * bus/connection.c (bus_transaction_send_from_driver): new
9769
9770         * bus/bus.c (bus_context_check_security_policy): new
9771
9772         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9773         now we just set the DBusError and it gets converted to an error
9774         reply.
9775
9776         * bus/connection.c (allow_user_function): enable code using actual
9777         data from the config file
9778
9779         * bus/policy.c (list_allows_user): handle wildcard rules for
9780         user/group connection perms
9781
9782 2003-04-13  Havoc Pennington  <hp@pobox.com>
9783
9784         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9785
9786         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9787
9788         * bus/policy.c (bus_policy_append_mandatory_rule)
9789         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9790         (bus_policy_append_group_rule): new functions
9791
9792 2003-04-12  Havoc Pennington  <hp@pobox.com>
9793
9794         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9795
9796         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9797         the pid/gid/uid, just for paranoia.
9798
9799         * test/break-loader.c (randomly_do_n_things): find a byte
9800         containing a type code, and randomly change it to a different
9801         type code.
9802
9803 2003-04-12  Havoc Pennington  <hp@pobox.com>
9804
9805         * bus/policy.h: change BusPolicy to be the thing from the config
9806         file, and rename old BusPolicy to BusClientPolicy
9807
9808         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9809         match change in how policy works
9810
9811         * dbus/dbus-internals.h: mark assert_not_reached as
9812         __attribute((noreturn))__
9813
9814 2003-04-11  Havoc Pennington  <hp@redhat.com>
9815
9816         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9817         the broadcast service. Use boolean return for ServiceExists.
9818
9819 2003-04-11  Havoc Pennington  <hp@redhat.com>
9820
9821         * configure.in: add another directory to look for qt in.
9822
9823 2003-04-11  Havoc Pennington  <hp@redhat.com>
9824
9825         * AUTHORS: add Colin Walters
9826
9827 2003-04-11  Havoc Pennington  <hp@redhat.com>
9828
9829         * NEWS: update
9830
9831         * configure.in: 0.9
9832
9833 2003-04-11  Havoc Pennington  <hp@redhat.com>
9834
9835         * bus/messagebus.in: remove pid file when stopping the
9836         message bus, since the bus won't have privileges to remove it
9837         itself.
9838
9839 2003-04-11  Havoc Pennington  <hp@redhat.com>
9840
9841         * bus/bus.c (bus_context_new): move credentials change after
9842         creating pidfile
9843
9844 2003-04-11  Havoc Pennington  <hp@pobox.com>
9845
9846         * test/decode-gcov.c: add "below average functions" to the
9847         coverage report, and change how some of the code works.
9848
9849         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9850         not in the coverage stats.
9851
9852         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9853         couple places so running the test suite doesn't result in megaspam.
9854
9855 2003-04-11  Havoc Pennington  <hp@pobox.com>
9856
9857         * bus/dispatch.c (check_existent_service_activation): accept a no
9858         memory error in a place we didn't before
9859
9860         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9861         in case the first one failed," since the test suite is less
9862         broken now.
9863
9864 2003-04-10  Havoc Pennington  <hp@pobox.com>
9865
9866         * bus/dispatch.c (check_segfault_service_activation): add test
9867         for launching an executable that just crashes.
9868
9869         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9870         don't leave a million cores. We'll see how portable this is.
9871
9872 2003-04-10  Havoc Pennington  <hp@pobox.com>
9873
9874         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9875         the possible parent failures before we fork, so that we don't
9876         fail to create a babysitter after creating the child.
9877
9878         * bus/activation.c (bus_activation_activate_service): kill child
9879         if we don't successfully complete the activation.
9880
9881 2003-04-10  Havoc Pennington  <hp@redhat.com>
9882
9883         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9884         the connection if it's disconnected
9885
9886         * bus/activation.c (bus_activation_service_created): use new
9887         transaction features to roll back removal of pending activation if
9888         we don't successfully create the service after all. Don't remove
9889         pending activation if the function fails.
9890
9891         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9892         (_dbus_list_insert_after_link): new code to facilitate
9893         services.c fixes
9894
9895         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9896         new functionality, so we can preallocate the ability to insert
9897         into a hash table.
9898
9899         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9900         allowing us to put custom hooks in a transaction to be used for
9901         cancelling said transaction
9902
9903         * doc/dbus-specification.sgml: add some discussion of secondary
9904         service owners, and disallow zero-length service names
9905
9906         * bus/services.c (bus_registry_acquire_service): new function,
9907         splits out part of bus_driver_handle_acquire_service() and fixes
9908         a bug where we didn't remove the service doing the acquiring
9909         from the secondary queue if we failed to remove the current owner
9910         from the front of the queue.
9911
9912 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9913
9914         * doc/dbus-specification.sgml:
9915         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9916
9917 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9918
9919         * bus/.cvsignore:
9920         * glib/.cvsignore:
9921         * test/.cvsignore:
9922         Added files to cvsignore
9923
9924         * dbus/dbus-message.h:
9925         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9926         Make get_named() take two out argument and return a boolean.
9927         (dbus_message_iter_get_args_valist):
9928         Update usage of get_named().
9929         (dbus_message_iter_append_byte):
9930         Fix typo
9931         (dbus_message_iter_append_named)
9932         Fix typo
9933         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9934         More tests.
9935
9936 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9937
9938         * dbus/dbus-marshal.[ch]:
9939         Add array_type_pos argument to _dbus_marshal_validate_arg.
9940         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9941
9942         * dbus/dbus-message.[ch]:
9943         Multi-dimensional arrays have full type specification in the
9944         outermost array. Iter code re-arranged to handle this.
9945         Added some more iter tests.
9946
9947         * doc/dbus-specification.sgml:
9948         Add me to authors.
9949         Remove old FIXME.
9950         Update new array encoding description.
9951         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9952
9953         * test/data/invalid-messages/array-with-mixed-types.message:
9954         * test/data/valid-messages/array-of-array-of-uint32.message:
9955         Change to the new array format.
9956
9957         * test/data/invalid-messages/too-short-dict.message:
9958         Fix bug in test.
9959
9960         * test/data/valid-messages/recursive-types.message:
9961         Fix up and extend test.
9962
9963 2003-04-10  Havoc Pennington  <hp@pobox.com>
9964
9965         * bus/dispatch.c: lots of fixes
9966
9967         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9968         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9969         that was crack, broke the test service.
9970
9971         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9972         handling to avoid piling up errors if we get a failure on the
9973         first address.
9974
9975         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9976         pid in assertion failures.
9977
9978         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9979         to some fixed size of file descriptor array. Don't return TRUE
9980         anytime a timeout exists, that led to lots of busy loop silliness
9981         in the tests.
9982
9983 2003-04-09  Havoc Pennington  <hp@redhat.com>
9984
9985         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9986         I'd checked this in earlier but hadn't.
9987
9988 2003-04-09  Havoc Pennington  <hp@redhat.com>
9989
9990         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9991         the activation test (man this is getting old!)
9992
9993 2003-04-09  Havoc Pennington  <hp@redhat.com>
9994
9995         * test/test-utils.c: use dispatch status function to fix this up
9996
9997         * bus/connection.c (connection_watch_callback): don't dispatch
9998         from here
9999         (connection_timeout_callback): don't dispatch from here
10000         (bus_connections_setup_connection): set the dispatch status function
10001         (bus_connection_disconnected): unset it
10002
10003         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10004         used to add a connection to be dispatched
10005         (_dbus_loop_iterate): do the dispatching at the end of each
10006         iteration
10007
10008         * dbus/dbus-connection.c
10009         (dbus_connection_set_dispatch_status_function): new function
10010         allowing us to fix up main loop usage
10011         (_dbus_connection_last_unref): free all the various function
10012         user data
10013         (dbus_connection_dispatch): call the DispatchStatusFunction
10014         whenever this function returns
10015         (dbus_connection_handle_watch): call DispatchStatusFunction
10016         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10017         (reply_handler_timeout): call DispatchStatusFunction
10018         (dbus_connection_flush): call DispatchStatusFunction
10019
10020 2003-04-09  Havoc Pennington  <hp@redhat.com>
10021
10022         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10023         a memory leak
10024
10025         * bus/dispatch.c (check_service_activated): fix bug in test
10026
10027         * dbus/dbus-mainloop.c (check_timeout): fix this up
10028
10029         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10030         verbose output so we can sort out output from different processes,
10031         e.g. in the activation case.
10032
10033 2003-04-08  Colin Walters  <walters@gnu.org>
10034
10035         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10036         the pid file.
10037         (bus_context_new): Set it.
10038         (bus_context_unref): Use it to delete the pid file.
10039
10040 2003-04-08  Havoc Pennington  <hp@redhat.com>
10041
10042         * test/data/invalid-messages/array-with-mixed-types.message:
10043         regression test that fails for the moment
10044
10045         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10046         tests for convenience
10047
10048         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10049         array of nil, it broke things.
10050
10051         * test/data/invalid-messages/array-of-nil.message: regression test
10052
10053         * test/data/valid-messages/array-of-array-of-uint32.message:
10054         happened to write this so added it to suite
10055
10056 2003-04-08  Havoc Pennington  <hp@redhat.com>
10057
10058         * bus/driver.c (bus_driver_handle_acquire_service): init
10059         retval/reply before checking name
10060
10061         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10062         recursion depth argument
10063
10064         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10065         in the public struct for future extension
10066
10067         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10068         typo
10069
10070         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10071         message
10072
10073         * doc/dbus-specification.sgml: fix typo
10074
10075 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10076
10077         Implemented recursive types, named types and new-style iters
10078
10079         * bus/driver.c:
10080         * glib/test-thread-client.c: (thread_func):
10081         * glib/test-thread-server.c: (handle_test_message):
10082         * test/test-service.c: (handle_echo):
10083         Update to new api
10084
10085         * dbus/Makefile.am:
10086         * dbus/dbus-dict.c:
10087         * dbus/dbus-dict.h:
10088         * dbus/dbus.h
10089         Remove DBusDict
10090
10091         * dbus/dbus-internals.c: (_dbus_type_to_string):
10092         Update for new types.
10093
10094         * dbus/dbus-marshal.[ch]:
10095         Implement recursive types and the new marshalling format.
10096         Remove hardcoded dict marshalling.
10097         Marshal named types.
10098
10099         * dbus/dbus-message-builder.c:
10100         Add BYTE_ARRAY.
10101         Remove references to old types
10102
10103         * dbus/dbus-message.[ch]:
10104         New non-refcounted iter API that supports recursive iters.
10105         Use iters for appending, including support for recursive
10106         iters.
10107         Add byte and named type support.
10108         Update everything to new marshalling formats.
10109         Add tests for new API.
10110
10111         * dbus/dbus-protocol.h:
10112         Remove old array types.
10113         Add types: BYTE, ARRAY, DICT, NAMED
10114
10115         * dbus/dbus-string.c:
10116         * dbus/dbus-sysdeps.c:
10117         Make parse_double locale safe.
10118
10119         * dbus/dbus-test-main.c:
10120         Call setlocale.
10121
10122         * dbus/dbus-test.c:
10123         Kill dict test
10124
10125         * doc/dbus-specification.sgml:
10126         Update spec
10127
10128         * test/data/incomplete-messages/missing-body.message:
10129         * test/data/invalid-messages/bad-boolean.message:
10130         * test/data/invalid-messages/bad-boolean-array.message:
10131         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10132         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10133         * test/data/invalid-messages/too-short-dict.message:
10134         * test/data/valid-messages/dict-simple.message:
10135         * test/data/valid-messages/dict.message:
10136         * test/data/valid-messages/emptiness.message:
10137         * test/data/valid-messages/lots-of-arguments.message:
10138         * test/data/valid-messages/no-padding.message:
10139         * test/data/valid-messages/recursive-types.message:
10140         Add missing NAME fields
10141         Fix up dicts & arrays
10142
10143         * test/data/invalid-messages/dict-with-nil-value.message:
10144         Removed, this is not invalid anymore.
10145
10146         * test/data/valid-messages/recursive-types.message:
10147         Add new test for deeply recursive types.
10148
10149 2003-04-07  Havoc Pennington  <hp@pobox.com>
10150
10151         * bus/driver.c (bus_driver_handle_acquire_service): return an
10152         error if you try to acquire a service that starts with ':'
10153
10154 2003-04-07  Havoc Pennington  <hp@redhat.com>
10155
10156         * doc/dbus-specification.sgml: require that base service names
10157         start with ':' and that the base service is created/deleted
10158         as first and last things a connection does on the bus
10159
10160         * bus/dispatch.c (check_existent_service_activation): lots more
10161         work on the activation test; it doesn't fully pass yet...
10162
10163         * test/test-service.c (main): fix so we don't memleak the
10164         connection to the message bus
10165         (filter_func): accept a message asking us to exit
10166
10167 2003-04-06  Havoc Pennington  <hp@pobox.com>
10168
10169         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10170         from Colin Walters
10171
10172         * configure.in: fixes to Qt detection from Colin Walters
10173
10174         * doc/Makefile.am: Only remove generated docbook dirs if they
10175         exist, from Colin Walters
10176
10177         * dbus/dbus-bus.c: change how we set well-known connections to
10178         NULL, so that it works if a single connection is stored in
10179         two well-known array slots.
10180
10181         * test/Makefile.am: remove a lot of stuff that isn't immediately
10182         useful, it's in CVS history if we want it.
10183
10184         * test/test-service.c: use dbus-mainloop instead of that
10185         watch.[hc] crack
10186
10187 2003-04-06  Havoc Pennington  <hp@pobox.com>
10188
10189         * dbus/Makefile.am: split lists of sources into stuff that goes in
10190         the library, util functions that go in the lib and are also used
10191         elsewhere, and util functions that are used in tests/daemon but
10192         don't go in the lib.
10193
10194         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10195         here so it can be used in test binaries also
10196
10197 2003-04-06  Havoc Pennington  <hp@pobox.com>
10198
10199         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10200         here in the parent process, so we can return an error if it
10201         fails. Also, move some of the code into the child so the parent
10202         is less hosed if we fail midway through.
10203
10204         * bus/bus.c (bus_context_new): move pidfile detection further up
10205         in the function, before we start overwriting sockets and such.
10206
10207         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10208
10209         * configure.in: add --with-system-pid-file and --with-system-socket
10210
10211 2003-04-06  Colin Walters  <walters@verbum.org>
10212
10213         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10214
10215         * bus/system.conf.in: Declare a pidfile.
10216
10217         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10218         create one (if appropriate).
10219
10220         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10221         (struct BusConfigParser) [pidfile]: New.
10222         (element_type_to_name, merge_included, start_busconfig_child)
10223         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10224         (bus_config_parser_unref): Free it.
10225         (bus_config_parser_get_pidfile): New function.
10226
10227         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10228
10229         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10230
10231         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10232
10233         * dbus/dbus-sysdeps.h: Prototype it.
10234
10235 2003-04-06  Havoc Pennington  <hp@pobox.com>
10236
10237         * bus/bus.c (bus_context_new): print the address in here, rather
10238         than in main(), because we need to do it before forking the daemon
10239
10240         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10241         on the service nonexistent error
10242
10243         * bus/driver.c (bus_driver_handle_acquire_service): set the
10244         sender on the AcquireService reply
10245
10246         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10247         server also listen on a UNIX socket so services can connect to it.
10248
10249 2003-04-06  Havoc Pennington  <hp@pobox.com>
10250
10251         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10252         so it detects deadlocks and also we actually init threads when
10253         debugging.
10254
10255 2003-04-06  Havoc Pennington  <hp@pobox.com>
10256
10257         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10258         save the domain socket name, and unlink it when we disconnect the
10259         server. Means that at least when we exit normally, we won't leave
10260         a bunch of junk in /tmp
10261
10262         * dbus/dbus-transport-unix.c
10263         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10264         memory management). (I was making a real change here but then
10265         didn't)
10266
10267 2003-04-06  Havoc Pennington  <hp@pobox.com>
10268
10269         * bus/bus.c (bus_context_new): fix wrong handling of
10270         server_data_slot_unref() in the error case.
10271
10272         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10273         "(condition) != 0" to _dbus_real_assert so that
10274         "_dbus_assert (pointer)" doesn't cause a warning
10275
10276         * bus/main.c (main): accept --print-address option to print out
10277         the message bus address
10278
10279         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10280
10281         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10282         "tmpdir" option to unix: address on client side
10283
10284         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10285         to unix: address
10286
10287         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10288         we can use to create sockets in the test suite.
10289
10290         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10291         cleanly. To be used for testing.
10292
10293         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10294
10295         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10296
10297         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10298         handle trying to call this when there's no servers active
10299
10300 2003-04-05  Havoc Pennington  <hp@pobox.com>
10301
10302         * NEWS: update
10303
10304         * configure.in: 0.8
10305
10306 2003-04-05  Havoc Pennington  <hp@pobox.com>
10307
10308         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10309         crash on startup. Need to get "try starting the daemon"
10310         in the test suite I guess. ;-)
10311
10312         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10313         tracked the number of open connections; it's better done in
10314         application-specific code as you want it to span all servers etc.
10315
10316 2003-04-05  Havoc Pennington  <hp@pobox.com>
10317
10318         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10319         patch from Colin Walters
10320
10321 2003-04-05  Havoc Pennington  <hp@pobox.com>
10322
10323         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10324         reality; in fact multiple mechanisms are allowed.
10325
10326         * dbus/dbus-internals.c (_dbus_real_assert)
10327         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10328         _dbus_assert_not_reached() into functions, so that they don't show
10329         up in basic block counts for test coverage, and don't use up as
10330         much disk space. Does mean slower execution speed though, so
10331         assumes --disable-asserts is the normal production case.
10332
10333 2003-04-05  Havoc Pennington  <hp@pobox.com>
10334
10335         * test/Makefile.am (dist-hook): also dist *.in files
10336
10337         * NEWS: update
10338
10339         * configure.in: 0.7
10340
10341 2003-04-05  Havoc Pennington  <hp@pobox.com>
10342
10343         * dbus/dbus-string.c: docs warning
10344
10345         * dbus/dbus-spawn.c: missing docs
10346
10347         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10348
10349 2003-04-05  Havoc Pennington  <hp@pobox.com>
10350
10351         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10352         magic from GLib
10353
10354         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10355         to -1 once we've reaped the babysitter
10356         (_dbus_babysitter_handle_watch): do as much work as we can, not
10357         just one go of it
10358
10359         * bus/activation.c: add code using DBusBabysitter so that we
10360         handle it when a service fails to start up properly.
10361         (bus_activation_service_created): don't remove the activation
10362         entries as we go, just let them get removed when we free the pending
10363         activation. Unref reply messages after sending them.
10364
10365 2003-04-05  Havoc Pennington  <hp@pobox.com>
10366
10367         * test/decode-gcov.c (main): print per-directory stats in the report
10368
10369         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10370
10371 2003-04-05  Havoc Pennington  <hp@pobox.com>
10372
10373         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10374
10375         * test/decode-gcov.c: hack up a little program to suck data
10376         out of gcov files. Yes this is sort of silly.
10377
10378         * configure.in: define something in config.h and do an
10379         AM_CONDITIONAL when gcov is enabled
10380
10381 2003-04-04  Havoc Pennington  <hp@redhat.com>
10382
10383         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10384         return a "babysitter" object that is used to monitor the status of
10385         the spawned process and reap it when required.
10386
10387         * test/test-segfault.c, test/test-exit.c,
10388         test/test-sleep-forever.c: binaries that do various lame things,
10389         used in the test suite.
10390
10391         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10392
10393 2003-04-03  Havoc Pennington  <hp@pobox.com>
10394
10395         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10396         in preparation for modifying it, dbus-sysdeps is getting
10397         a bit unmanageable.
10398
10399 2003-04-03  Havoc Pennington  <hp@redhat.com>
10400
10401         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10402         have multiple ones
10403
10404         * bus/*.[hc]: adapt to mainloop change
10405
10406 2003-04-03  Havoc Pennington  <hp@redhat.com>
10407
10408         * bus/activation.c (load_directory): fix up memleaks
10409         (bus_activation_entry_free): free the entry
10410
10411         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10412         we get one from the message bus; fix memleaks.
10413
10414         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10415
10416 2003-04-03  Havoc Pennington  <hp@pobox.com>
10417
10418         * bus/config-parser.c (bus_config_parser_unref): free
10419         list of mechanisms, bug discovered by test suite enhancements
10420         (putting system.conf and session.conf into suite)
10421
10422         * test/Makefile.am, test/test-service.c: add placeholder for a
10423         test service that we'll activate as part of test suite. Doesn't
10424         do anything yet.
10425
10426         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10427         setting NULL value, and use system malloc not dbus_malloc()
10428         when we have unavoidable memleakage.
10429
10430         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10431         didn't work, and support DBUS_BUS_ACTIVATION.
10432
10433         * bus/activation.c (child_setup): pass our well-known bus type to
10434         the child
10435
10436         * bus/config-parser.c: support <type> to specify well-known type
10437
10438         * doc/dbus-specification.sgml: document the env variables to
10439         locate well-known buses and find service activator
10440
10441 2003-04-02  Havoc Pennington  <hp@redhat.com>
10442
10443         * test/Makefile.am (all-local): add a rule to copy tests to
10444         builddir, so we can have generated tests. Use this to remove the
10445         silly hack for testing system.conf and session.conf. Will use this
10446         shortly to generate .service files pointing to test binaries.
10447
10448 2003-04-02  Havoc Pennington  <hp@redhat.com>
10449
10450         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10451         current alloc and needed new length, not max of the doubled
10452         allocation and needed new length. Also, when building tests,
10453         don't do the double-allocation stuff, just realloc every time.
10454
10455 2003-04-02  Havoc Pennington  <hp@redhat.com>
10456
10457         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10458         in error messages
10459         (_dbus_string_get_dirname): new
10460         (_dbus_sysdeps_test): new
10461         (_dbus_directory_open): include dirnames in error messages
10462
10463         * bus/config-parser.c: interpret <include> and <includedir> and
10464         <servicedir> relative to config file location if the given
10465         filename is not absolute.
10466
10467         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10468
10469 2003-04-02  Havoc Pennington  <hp@redhat.com>
10470
10471         * bus/connection.c (bus_transaction_send_error_reply): set sender
10472         service for the error, and unref the reply on success
10473
10474         * bus/activation.c: convert to use BusTransaction so OOM can be
10475         handled correctly
10476         (bus_activation_service_created): set sender of the message
10477
10478 2003-04-01  Havoc Pennington  <hp@redhat.com>
10479
10480         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10481         <includedir> (at least mostly)
10482
10483         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10484         first, then the user ID
10485
10486 2003-04-01  Havoc Pennington  <hp@pobox.com>
10487
10488         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10489         function
10490
10491         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10492
10493         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10494
10495         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10496         socket 0777, and unlink any existing socket.
10497
10498         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10499         the configuration file so specifies; set up auth mechanism
10500         restrictions
10501
10502         * bus/config-parser.c (bus_config_parser_content): add support
10503         for <fork> option and fill in code for <auth>
10504
10505         * bus/system.conf.in: add <fork/> to default configuration,
10506         and limit auth mechanisms to EXTERNAL
10507
10508         * doc/config-file.txt (Elements): add <fork>
10509
10510         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10511         (_dbus_change_identity): new function
10512
10513 2003-03-31  Havoc Pennington  <hp@redhat.com>
10514
10515         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10516         (_dbus_listen_unix_socket): fix off-by-one error in null
10517         termination spotted by Nalin
10518
10519 2003-03-31  Havoc Pennington  <hp@redhat.com>
10520
10521         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10522         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10523         having a real home directory available.
10524
10525 2003-03-31  Havoc Pennington  <hp@redhat.com>
10526
10527         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10528
10529         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10530
10531         * configure.in: add support for specifying a style of init script
10532         to install
10533
10534 2003-03-31  Havoc Pennington  <hp@redhat.com>
10535
10536         Fix some annoying DBusString API and fix all affected code.
10537
10538         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10539         max_length argument
10540         (_dbus_string_get_data): change to return string instead of using
10541         an out param
10542         (_dbus_string_get_const_data): ditto
10543         (_dbus_string_get_data_len): ditto
10544         (_dbus_string_get_const_data_len): ditto
10545
10546 2003-03-31  Havoc Pennington  <hp@redhat.com>
10547
10548         * bus/main.c (main): fix up the command line arguments to be nicer
10549
10550 2003-03-31  Havoc Pennington  <hp@redhat.com>
10551
10552         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10553         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10554         final location that lands in the config file
10555
10556         * bus/config-loader-expat.c (bus_config_load): fix type of
10557         XML_Parser variable
10558
10559         * doc/TODO: remove TODO item for dbus_bus_get()
10560
10561         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10562
10563 2003-03-31  Havoc Pennington  <hp@pobox.com>
10564
10565         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10566         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10567         argument since they are always client side
10568
10569         * dbus/dbus-server.c (dbus_server_get_address): new function
10570
10571         * bus/main.c (main): take the configuration file as an argument.
10572
10573         * test/data/valid-config-files/debug-allow-all.conf: new file to
10574         use with dispatch.c tests for example
10575
10576         * bus/test-main.c (main): require test data dir
10577
10578         * bus/bus.c (bus_context_new): change this to take a
10579         configuration file name as argument
10580
10581         * doc/config-file.txt (Elements): add <servicedir>
10582
10583         * bus/system.conf, bus/session.conf: new files
10584
10585         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10586         well-known socket if none set
10587
10588         * configure.in: create system.conf and session.conf
10589
10590 2003-03-30  Havoc Pennington  <hp@pobox.com>
10591
10592         * bus/config-parser.c: hacking
10593
10594         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10595         to shut down, since it could cause weirdness with the DBusList
10596         lock
10597
10598         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10599         link-oriented stack routines
10600         (alloc_link): free the mempool if the first alloc from it fails
10601
10602         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10603
10604         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10605         from GLib
10606         (_dbus_string_skip_white): new
10607
10608         * doc/config-file.txt (Elements): add <includedir>
10609
10610 2003-03-28  Havoc Pennington  <hp@pobox.com>
10611
10612         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10613         (_dbus_string_copy_data): new functions
10614
10615 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10616
10617         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10618         * dbus/dbus-bus.h:
10619         Add dbus_bus_get.
10620
10621         * dbus/dbus-memory.c:
10622         Fix a doc comment.
10623
10624 2003-03-28  Havoc Pennington  <hp@pobox.com>
10625
10626         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10627         I think it may have just been superstition. Not sure.
10628
10629         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10630         failures that were not being handled.
10631
10632         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10633
10634         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10635         row that will fail on out-of-memory.
10636
10637         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10638         function for testing out-of-memory handling.
10639
10640         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10641         allocation functions, they do map exactly to the expat ones.
10642
10643 2003-03-27  Havoc Pennington  <hp@redhat.com>
10644
10645         * bus/config-loader-libxml.c (bus_config_load): add another error
10646         check
10647
10648 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10649
10650         * doc/TODO:
10651         Add note about automatic service activation.
10652
10653         * doc/dbus-specification.sgml:
10654         Rename the specification and clarify a few things.
10655
10656 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10657
10658         * Doxyfile.in:
10659         * dbus/dbus-address.c:
10660         * dbus/dbus-dict.c:
10661         * dbus/dbus-marshal.c:
10662         * dbus/dbus-server-debug-pipe.c:
10663         * dbus/dbus-transport-unix.c:
10664         Fix documentation warnings.
10665
10666 2003-03-26  Havoc Pennington  <hp@pobox.com>
10667
10668         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10669         after every test so it's quick and easy to see which leaked, and
10670         so we test multiple dbus_shutdown() calls
10671
10672         * configure.in: change configure.in XML stuff to also support
10673         expat
10674
10675         * config-loader-libxml.c: some hacking
10676
10677         * config-loader-expat.c: some hacking
10678
10679         * config-parser.c: some hacking, plus tests
10680
10681 2003-03-25  Havoc Pennington  <hp@redhat.com>
10682
10683         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10684
10685         * configure.in: add --with-xml option to specify XML library,
10686         right now only libxml is supported.
10687
10688         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10689         nonworking code between home and work, still just stubs
10690
10691 2003-03-24  Havoc Pennington  <hp@redhat.com>
10692
10693         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10694         file
10695
10696         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10697         NULL argument for "message" if the error is a well-known one,
10698         fill in a generic message in this case.
10699
10700         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10701         favor of DBusError
10702
10703         * bus/test.c (bus_test_flush_bus): add
10704
10705         * bus/policy.c (bus_policy_test): test code stub
10706
10707 2003-03-24  Havoc Pennington  <hp@pobox.com>
10708
10709         * bus/connection.c (bus_connections_setup_connection): set up
10710         the "can this user connect" function, but it always returns
10711         TRUE until we have a config file parser so we can have a config
10712         file that allows connections.
10713
10714 2003-03-23  Havoc Pennington  <hp@pobox.com>
10715
10716         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10717         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10718         the mutex, so we can check for proper memory management
10719         and OOM handling.
10720
10721         * dbus/dbus-dataslot.c: remove the mutex from
10722         DBusDataSlotAllocator and lock it manually when using it,
10723         to simplify fitting it into the global slots framework.
10724
10725         * dbus/dbus-threads.c (init_static_locks): rework how we're
10726         handling global locks so they are easily shut down.
10727
10728         * bus/policy.c (bus_policy_append_rule): fix
10729
10730         * bus/test-main.c (main): check for memleaks
10731
10732         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10733         test suite check for memleaks
10734
10735         * dbus/dbus-memory.c: add support in test mode for tracking
10736         number of outstanding blocks
10737
10738 2003-03-23  Havoc Pennington  <hp@pobox.com>
10739
10740         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10741         policies code
10742
10743         * dbus/dbus-hash.h: add ULONG hash keys
10744
10745         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10746         (_dbus_get_group_id): new function
10747
10748 2003-03-20  Havoc Pennington  <hp@redhat.com>
10749
10750         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10751         new function
10752         (dbus_connection_get_unix_user): new function
10753
10754 2003-03-20  Havoc Pennington  <hp@pobox.com>
10755
10756         * bus/connection.c (bus_connection_send_oom_error): assert that
10757         message has a sender
10758         (connection_execute_transaction): ditto
10759         (bus_connection_preallocate_oom_error): fix to set the sender, and
10760         set recipient to the destination service, not the bus driver
10761
10762         * bus/policy.c: hacking
10763
10764         * dbus/dbus-message.c (dbus_message_service_is): new function
10765         (dbus_message_sender_is): new
10766
10767 2003-03-19  Havoc Pennington  <hp@redhat.com>
10768
10769         * bus/policy.c: start sketching code for policy restrictions on
10770         what connections can do.
10771
10772 2003-03-18  Havoc Pennington  <hp@redhat.com>
10773
10774         * doc/TODO: some notes on high-level todo items. Little nitpick
10775         stuff is all in @todo, so no need to add it here.
10776
10777         * doc/config-file.txt: some notes on how config file might look
10778
10779 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10780
10781         * configure.in: 0.6
10782
10783         * NEWS: Update.
10784
10785 2003-03-17  Havoc Pennington  <hp@redhat.com>
10786
10787         * dbus/dbus-internals.h: add gcc attributes so that
10788         our printf-style functions warn on bad arguments to
10789         format
10790
10791         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10792         format bug
10793
10794         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10795         printf format bug
10796
10797 2003-03-17  Havoc Pennington  <hp@redhat.com>
10798
10799         * bus/test-main.c (main): make it print something as it runs
10800         so make check doesn't look stuck
10801
10802         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10803         from CVS, now obsolete
10804
10805 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10806
10807         * bus/dispatch.c: (bus_dispatch):
10808         Refetch the service name since it may have been reallocated
10809         when dbus_message_set_sender was called.
10810
10811         * dbus/dbus-sysdeps.c: (_dbus_accept):
10812         Add address and address length variables and use them to stop
10813         valgrind from complaining.
10814
10815 2003-03-17  Havoc Pennington  <hp@pobox.com>
10816
10817         All tests pass, no memleaks, no valgrind complaints.
10818
10819         * bus/test.c: refcount handler_slot
10820
10821         * bus/connection.c (bus_connections_new): refcount
10822         connection_data_slot
10823
10824         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10825         bytes so that auth scripts pass.
10826
10827         * bus/dispatch.c: init message_handler_slot so it gets allocated
10828         properly
10829
10830         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10831
10832         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10833         dealloc server_pipe_hash when no longer used for benefit of
10834         leak checking
10835
10836         * dbus/dbus-auth.c (process_command): memleak fix
10837
10838         * bus/dispatch.c (check_hello_message): memleak fix
10839
10840 2003-03-16  Havoc Pennington  <hp@pobox.com>
10841
10842         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10843
10844 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10845
10846         * bus/activation.c (bus_activation_activate_service): Append
10847         the pending activation entry to the list of pending activations.
10848
10849 2003-03-16  Havoc Pennington  <hp@pobox.com>
10850
10851         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10852         connections
10853
10854         * dbus/dbus-address.c (create_entry): fix OOM handling when
10855         failing to alloc entry->method
10856
10857 2003-03-16  Havoc Pennington  <hp@pobox.com>
10858
10859         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10860         the watch
10861
10862         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10863         add some missing dbus_set_result
10864
10865         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10866         alloc the DBusMessageHandler
10867
10868         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10869         the transport here, since we call this from the finalizer; it
10870         resulted in a double-finalize.
10871
10872         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10873         where we tried to use transport->connection that was NULL,
10874         happened when transport was disconnected early on due to OOM
10875
10876         * bus/*.c: adapt to handle OOM for watches/timeouts
10877
10878         * dbus/dbus-transport-unix.c: port to handle OOM during
10879         watch handling
10880
10881         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10882         reference to unused bytes instead of a copy
10883
10884         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10885         out of memory
10886
10887         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10888         FALSE on OOM
10889
10890         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10891         of memory
10892
10893 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10894
10895         * doc/dbus-specification.sgml:
10896         Document reply message for ActivateService.
10897
10898 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10899
10900         * bus/activation.c: (bus_pending_activation_entry_free),
10901         (bus_pending_activation_free), (bus_activation_new),
10902         (bus_activation_unref), (bus_activation_service_created),
10903         (bus_activation_activate_service):
10904         * bus/activation.h:
10905         * bus/bus.c: (bus_context_new):
10906         * bus/desktop-file.c: (new_section):
10907         * bus/driver.c: (bus_driver_send_service_deleted),
10908         (bus_driver_handle_activate_service):
10909         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10910         * bus/services.h:
10911         * dbus/dbus-connection.c:
10912         (dbus_connection_send_with_reply_and_block):
10913         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10914         * dbus/dbus-protocol.h:
10915         Make activation work better. Now pending activations will be queued
10916         and the daemon won't try to activate services that are already registered.
10917
10918 2003-03-16  Havoc Pennington  <hp@pobox.com>
10919
10920         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10921         connection data
10922
10923         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10924         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10925
10926 2003-03-16  Havoc Pennington  <hp@pobox.com>
10927
10928         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10929         this. always run the test suite before commit...
10930
10931         * bus/*: adapt to DBusConnection API changes
10932
10933         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10934         requires renaming stuff to avoid dbus_connection_dispatch name
10935         conflict.
10936
10937         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10938         function
10939
10940         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10941         separate from _dbus_message_loader_return_buffer()
10942
10943         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10944         this, because it's now always broken to use; the number of
10945         messages in queue vs. the number still buffered by the message
10946         loader is undefined/meaningless. Should use
10947         dbus_connection_get_dispatch_state().
10948         (dbus_connection_dispatch): rename from
10949         dbus_connection_dispatch_message
10950
10951 2003-03-16  Havoc Pennington  <hp@pobox.com>
10952
10953         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10954         implementation
10955
10956 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10957
10958         * dbus/dbus-connection.c:
10959         (dbus_connection_send_with_reply_and_block):
10960         Decrease connection->n_incoming when removing an entry
10961         from the list.
10962         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10963         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10964         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10965         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10966         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10967         (dbus_dict_get_byte_array):
10968         Handle NULL arrays and strings. Also add support for byte arrays.
10969
10970         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10971         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10972         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10973         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10974         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10975         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10976         * dbus/dbus-marshal.h:
10977         Add support for marshalling and demarshalling empty arrays and strings.
10978
10979         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10980         (dbus_message_append_string_array),
10981         (dbus_message_iter_get_boolean),
10982         (dbus_message_iter_get_boolean_array),
10983         (dbus_message_iter_get_int32_array),
10984         (dbus_message_iter_get_uint32_array),
10985         (dbus_message_iter_get_double_array),
10986         (dbus_message_iter_get_byte_array),
10987         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10988         (check_message_handling):
10989         Add support for getting empty arrays and dicts.
10990
10991         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10992         Don't do any validation at all for now, that's better than just checking
10993         for ASCII.
10994
10995         * test/data/valid-messages/emptiness.message:
10996         New test message with lots of empty arrays.
10997
10998 2003-03-16  Havoc Pennington  <hp@pobox.com>
10999
11000         * dbus/dbus-connection.c
11001         (_dbus_connection_queue_received_message_link): new function that
11002         can't fail due to OOM
11003
11004         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11005         new function pops a message together with a list link
11006         containing it.
11007
11008         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11009         message queuing functions to avoid needing to alloc memory
11010
11011 2003-03-16  Havoc Pennington  <hp@pobox.com>
11012
11013         Oops - test code was only testing failure of around 30 of the
11014         mallocs in the test path, but it turns out there are 500+
11015         mallocs. I believe this was due to misguided linking setup such
11016         that there was one copy of dbus_malloc etc. in the daemon and one
11017         in the shared lib, and only daemon mallocs were tested. In any
11018         case, the test case now tests all 500+ mallocs, and doesn't pass
11019         yet, though there are lots of fixes in this patch.
11020
11021         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11022         this so that it doesn't need to allocate memory, since it
11023         has no way of indicating failure due to OOM (and would be
11024         annoying if it did).
11025
11026         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11027
11028         * bus/Makefile.am: rearrange to create two self-contained
11029         libraries, to avoid having libraries with overlapping symbols.
11030         that was resulting in weirdness, e.g. I'm pretty sure there
11031         were two copies of global static variables.
11032
11033         * dbus/dbus-internals.c: move the malloc debug stuff to
11034         dbus-memory.c
11035
11036         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11037         empty.
11038
11039         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11040
11041         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11042         on failure.
11043
11044         * bus/dispatch.c (bus_dispatch_add_connection): free
11045         message_handler_slot when no longer using it, so
11046         memory leak checkers are happy for the test suite.
11047
11048         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11049
11050         * bus/bus.c (new_connection_callback): disconnect in here if
11051         bus_connections_setup_connection fails.
11052
11053         * bus/connection.c (bus_connections_unref): fix to free the
11054         connections
11055         (bus_connections_setup_connection): if this fails, don't
11056         disconnect the connection, just be sure there are no side
11057         effects.
11058
11059         * dbus/dbus-string.c (undo_alignment): unbreak this
11060
11061         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11062         leaking
11063         (_dbus_auth_new): fix the order in which we free strings
11064         on OOM failure
11065
11066         * bus/connection.c (bus_connection_disconnected): fix to
11067         not send ServiceDeleted multiple times in case of memory
11068         allocation failure
11069
11070         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11071         get the base service name
11072         (dbus_bus_register_client): don't return base service name,
11073         instead store it on the DBusConnection and have an accessor
11074         function for it.
11075         (dbus_bus_register_client): rename dbus_bus_register()
11076
11077         * bus/dispatch.c (check_hello_message): verify that other
11078         connections on the bus also got the correct results, not
11079         just the one sending hello
11080
11081 2003-03-15  Havoc Pennington  <hp@pobox.com>
11082
11083         Make it pass the Hello handling test including all OOM codepaths.
11084         Now to do other messages...
11085
11086         * bus/services.c (bus_service_remove_owner): fix crash when
11087         removing owner from an empty list of owners
11088         (bus_registry_ensure): don't leave service in the list of
11089         a connection's owned services if we fail to put the service
11090         in the hash table.
11091
11092         * bus/connection.c (bus_connection_preallocate_oom_error): set
11093         error flag on the OOM error.
11094
11095         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11096         handle _dbus_transport_set_connection failure
11097
11098         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11099         to create watches up front and simply enable/disable them as
11100         needed.
11101         (unix_connection_set): this can now fail on OOM
11102
11103         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11104         of enabling/disabling a watch or timeout.
11105
11106         * bus/loop.c (bus_loop_iterate): don't touch disabled
11107         watches/timeouts
11108
11109         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11110
11111 2003-03-15  Havoc Pennington  <hp@pobox.com>
11112
11113         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11114         write useful test code, after all that futzing around ;-)
11115
11116         Test does not yet pass because we can't handle OOM in
11117         _dbus_transport_messages_pending (basically,
11118         dbus_connection_preallocate_send() does not prealloc the write
11119         watch). To fix this, I think we need to add new stuff to
11120         set_watch_functions, namely a SetEnabled function so we can alloc
11121         the watch earlier, then enable it later.
11122
11123         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11124         dbus-memory.c to the convenience lib
11125
11126         * bus/test.c: rename some static functions to keep them clearly
11127         distinct from stuff in connection.c. Handle client disconnection.
11128
11129 2003-03-14  Havoc Pennington  <hp@pobox.com>
11130
11131         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11132         transport, tests more of the real codepath. Set up clients
11133         with bus_setup_debug_client.
11134
11135         * bus/test.c (bus_setup_debug_client): function to set up debug
11136         "clients" on the main loop
11137
11138         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11139         support
11140
11141         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11142         server type
11143
11144         * dbus/dbus-server-debug.c: support a debug server based on pipes
11145
11146         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11147         (_dbus_close): new function
11148
11149         * configure.in: check for socketpair
11150
11151 2003-03-14  Havoc Pennington  <hp@redhat.com>
11152
11153         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11154         cheesy hack
11155
11156         * dbus/dbus-transport-debug.c: rework this a good bit to be
11157         less complicated. hopefully still works.
11158
11159         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11160         manually
11161
11162         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11163         after running it
11164
11165         * dbus/dbus-message.c (dbus_message_copy): rename from
11166         dbus_message_new_from_message, fix it up to copy
11167         all the message fields, add test case
11168
11169         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11170         not quite passing yet
11171
11172 2003-03-14  Havoc Pennington  <hp@pobox.com>
11173
11174         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11175         until no work remains" in test code. (the large diff here
11176         is just code movement, no actual changes)
11177
11178         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11179         1, no point waiting around for test code.
11180         (_dbus_server_debug_accept_transport): unref the timeout
11181         after adding it (right?)
11182
11183         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11184
11185 2003-03-13  Havoc Pennington  <hp@redhat.com>
11186
11187         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11188         out of memory
11189
11190         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11191         of memory
11192
11193         * dbus/dbus-connection.h: Make AddWatchFunction and
11194         AddTimeoutFunction return a bool so they can fail on out-of-memory
11195
11196         * bus/bus.c (bus_context_new): set up timeout handlers
11197
11198         * bus/connection.c (bus_connections_setup_connection): set up
11199         timeout handlers
11200
11201         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11202         can fail
11203
11204         * bus/bus.c (bus_context_new): adapt to changes
11205
11206         * bus/connection.c: adapt to changes
11207
11208         * test/watch.c: adapt to DBusWatch changes
11209
11210         * bus/dispatch.c (bus_dispatch_test): started adding this but
11211         didn't finish
11212
11213 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11214
11215         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11216
11217 2003-03-13  Havoc Pennington  <hp@pobox.com>
11218
11219         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11220         set up a test framework as for the library
11221
11222 2003-03-12  Havoc Pennington  <hp@pobox.com>
11223
11224         Throughout: purge global variables, introduce BusActivation,
11225         BusConnections, BusRegistry, etc. objects instead.
11226
11227         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11228         message bus object
11229
11230         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11231         going to redo this a bit differently I think
11232
11233 2003-03-12  Havoc Pennington  <hp@redhat.com>
11234
11235         Mega-patch that gets the message bus daemon initially handling
11236         out-of-memory. Work still needed. Also lots of random
11237         moving stuff to DBusError instead of ResultCode.
11238
11239         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11240
11241         * dbus/dbus-connection.c
11242         (dbus_connection_send_with_reply_and_block): use DBusError
11243
11244         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11245         DBusResultCode
11246
11247         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11248         code here, as the only failure possible is OOM.
11249
11250         * bus/connection.c (bus_connection_disconnect):
11251         rename bus_connection_disconnected as it's a notification only
11252
11253         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11254         "name" on get_args failure, should be done by get_args;
11255         don't disconnect client for bad args, just return an error.
11256         (bus_driver_handle_service_exists): ditto
11257
11258         * bus/services.c (bus_services_list): NULL-terminate returned array
11259
11260         * bus/driver.c (bus_driver_send_service_lost)
11261         (bus_driver_send_service_acquired): send messages from driver to a
11262         specific client to the client's unique name, not to the broadcast
11263         service.
11264
11265         * dbus/dbus-message.c (decode_header_data): reject messages that
11266         contain no name field
11267         (_dbus_message_get_client_serial): rename to
11268         dbus_message_get_serial and make public
11269         (_dbus_message_set_serial): rename from set_client_serial
11270         (_dbus_message_set_reply_serial): make public
11271         (_dbus_message_get_reply_serial): make public
11272
11273         * bus/connection.c (bus_connection_foreach): allow stopping
11274         iteration by returning FALSE from foreach function.
11275
11276         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11277         (dbus_connection_free_preallocated_send)
11278         (dbus_connection_preallocate_send): new API for sending a message
11279         without possibility of malloc failure.
11280         (dbus_connection_send_message): rename to just
11281         dbus_connection_send (and same for whole function family)
11282
11283         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11284
11285         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11286
11287         * bus/activation.c: handle/return errors
11288
11289         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11290
11291         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11292         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11293         (_dbus_result_from_errno): move to this file
11294
11295 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11296
11297         * dbus/dbus-marshal.c:
11298         (_dbus_marshal_set_string):
11299         Take a length argument so we can marshal the correct string
11300         length.
11301
11302         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11303         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11304         (_dbus_marshal_test):
11305         * dbus/dbus-marshal.h:
11306         Add support for marshalling and demarshalling dicts.
11307
11308         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11309         Add support for TYPE DICT.
11310
11311         * dbus/dbus-message.c: (set_string_field):
11312         Adjust header padding.
11313
11314         (dbus_message_append_args_valist), (dbus_message_append_dict),
11315         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11316         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11317         (check_message_handling), (check_have_valid_message):
11318         * dbus/dbus-message.h:
11319         Add functions for setting and getting dicts.
11320
11321         * dbus/dbus-protocol.h:
11322         Add DBUS_TYPE_DICT.
11323
11324         * dbus/dbus.h:
11325         Add dbus-dict.h
11326
11327         * doc/dbus-specification.sgml:
11328         Add information about how dicts are marshalled.
11329
11330         * test/data/invalid-messages/dict-with-nil-value.message:
11331         * test/data/invalid-messages/too-short-dict.message:
11332         * test/data/valid-messages/dict-simple.message:
11333         * test/data/valid-messages/dict.message:
11334         Add sample messages containing dicts.
11335
11336 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11337
11338         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11339
11340 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11341
11342         * dbus/Makefile.am:
11343         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11344         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11345         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11346         (dbus_dict_set_double), (dbus_dict_set_string),
11347         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11348         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11349         (dbus_dict_set_string_array), (_dbus_dict_test):
11350         * dbus/dbus-dict.h:
11351         Fix according to comments from Havoc.
11352
11353 2003-03-06  Michael Meeks  <michael@server.home>
11354
11355         * configure.in: if we don't have kde-config, disable have_qt.
11356
11357 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11358
11359         * dbus/Makefile.am:
11360         Add dbus-dict.[ch]
11361
11362         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11363         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11364         (dbus_dict_remove), (dbus_dict_get_value_type),
11365         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11366         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11367         (dbus_dict_put_double), (dbus_dict_put_string),
11368         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11369         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11370         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11371         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11372         (dbus_dict_get_double), (dbus_dict_get_string),
11373         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11374         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11375         (dbus_dict_get_string_array), (_dbus_dict_test):
11376         * dbus/dbus-dict.h:
11377         Add DBusDict implementation
11378
11379         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11380         * dbus/dbus-test.h:
11381         Add _dbus_dict_test
11382
11383 2003-03-04  Havoc Pennington  <hp@pobox.com>
11384
11385         * test/data/auth/*: adapt to changes
11386
11387         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11388         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11389         userid
11390
11391         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11392         more stuff from being in a context name, to make the protocol
11393         simpler to deal with
11394
11395         * dbus/dbus-errors.c (dbus_error_has_name): new function
11396         (dbus_error_is_set): new function
11397
11398         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11399         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11400
11401         * dbus/dbus-connection.c (dbus_connection_flush): also read
11402         messages during a flush operation
11403
11404         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11405
11406 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11407
11408         * configure.in: Check for gethostbyname on Solaris.
11409
11410         * dbus/dbus-transport.c: (_dbus_transport_open):
11411         Remove duplicate "tcp" entry.
11412
11413         * doc/dbus-specification.sgml:
11414         Clarify some things.
11415
11416 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11417
11418         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11419         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11420         (_dbus_keyring_test):
11421         * dbus/dbus-md5.c: (_dbus_md5_compute):
11422         * dbus/dbus-sha.c: (_dbus_sha_compute):
11423         Plug memory leaks.
11424
11425 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11426
11427         * README: Add some things.
11428
11429 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11430
11431         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11432         after case DBUS_TYPE_BOOELAN.
11433
11434 2003-03-02  Havoc Pennington  <hp@pobox.com>
11435
11436         * test/break-loader.c (randomly_set_extreme_ints): add test that
11437         sets really huge and small integers
11438
11439         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11440         that length of boolean array fits in the string, and that
11441         string has room for boolean value in single-bool case.
11442
11443         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11444         optional value to "ALIGN" command which is what to fill the
11445         alignment with.
11446
11447         * test/data/valid-messages/no-padding.message: add regression
11448         test for the message padding problem
11449
11450 2003-03-02  Havoc Pennington  <hp@pobox.com>
11451
11452         * dbus/dbus-message.c (decode_header_data): fix to always init
11453         message_padding, from Benjamin Dauvergne
11454
11455 2003-03-02  Havoc Pennington  <hp@pobox.com>
11456
11457         * configure.in: 0.5
11458
11459         * NEWS: Update.
11460
11461 2003-03-01  Joe Shaw  <joe@assbarn.com>
11462
11463         * configure.in: Check for "struct cmsgcred" and try to access its
11464         members for BSD-like unices.
11465
11466         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11467         _dbus_read_credentials_unix_socket().
11468         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11469         read() for reading the credential byte off the unix socket.  Use
11470         struct cmsgcred on systems that support it.
11471
11472 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11473
11474         * glib/Makefile.am:
11475         * configure.in:
11476         Make gthreads-2.0 dependency optional. Don't build thread test if
11477         its not found.
11478
11479 2003-02-27  Havoc Pennington  <hp@pobox.com>
11480
11481         * dbus/dbus-connection.c
11482         (dbus_connection_send_message_with_reply_and_block): fix doh!
11483         doh! doh! bug that resulted in never removing a reply from the
11484         queue, no wonder we called get_reply_serial so much ;-)
11485
11486         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11487         and client serial instead of demarshaling them every time
11488
11489 2003-02-27  Havoc Pennington  <hp@pobox.com>
11490
11491         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11492         more inlined, using dbus-string-private.h, speeds things up
11493         substantially
11494
11495         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11496         when freeing the string
11497         (_dbus_string_steal_data): fix for align offset
11498         (undo_alignment): new function
11499
11500 2003-02-26  Havoc Pennington  <hp@redhat.com>
11501
11502         All kinds of audit fixes from Owen, plus initial attempt to
11503         handle unaligned memory returned from malloc.
11504
11505         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11506         leave room for align_offset and nul byte
11507         (fixup_alignment): function to track an align_offset and
11508         ensure real->str is aligned
11509         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11510         to allow a nul byte plus align offset
11511         (_dbus_string_lock): fix overflow issue
11512         (_dbus_string_init_const_len): add assertions on sanity of len,
11513         assign allocated to be ALLOCATION_PADDING larger than len
11514         (set_length): fixup the overflow handling
11515         (_dbus_string_get_data_len): fix overflow in assertion
11516         (open_gap): detect overflow in size of gap to be opened
11517         (_dbus_string_lengthen): add overflow check
11518         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11519         (_dbus_string_append): add overflow check
11520         (_dbus_string_append_unichar): overflow
11521         (_dbus_string_delete): fix overflow in assertion
11522         (_dbus_string_copy_len): overflow in assertion
11523         (_dbus_string_replace_len): overflows in assertions
11524         (_dbus_string_find): change to implement in terms of
11525         _dbus_string_find_to
11526         (_dbus_string_find_to): assorted fixage
11527         (_dbus_string_equal_c_str): assert c_str != NULL,
11528         fix logic so the function works
11529         (_dbus_string_ends_with_c_str): fix overflow thingy
11530         (_dbus_string_base64_encode): overflow fix
11531         (_dbus_string_validate_ascii): overflow
11532         (_dbus_string_validate_nul): overflow
11533
11534 2003-02-26  Havoc Pennington  <hp@redhat.com>
11535
11536         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11537
11538 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11539
11540         * configure.in:
11541         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11542
11543         * dbus/dbus-connection.c:
11544         * dbus/dbus-connection.h:
11545         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11546         Add dbus_connection_set_wakeup_main_function and use it when queueing
11547         incoming and outgoing messages.
11548
11549
11550         * dbus/dbus-dataslot.c:
11551         Threadsafe usage of DBusDataSlotAllocator
11552
11553         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11554         dbus_new can fail.
11555
11556         * dbus/dbus-server-unix.c:
11557         Add todo comment
11558
11559         * glib/dbus-gmain.c:
11560         Implement the new wakeup functions for glib.
11561
11562         * glib/Makefile.am:
11563         * glib/test-thread-client.c:
11564         * glib/test-thread-server.c:
11565         * glib/test-thread.h:
11566         Initial cut at some thread test code. Not really done yet.
11567
11568 2003-02-26  Havoc Pennington  <hp@pobox.com>
11569
11570         * dbus/dbus-connection.c
11571         (dbus_connection_send_message_with_reply_and_block): fix crash
11572         where we ref'd the outgoing message instead of the returned reply
11573
11574         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11575         at the end of this function, so if we didn't need to read for
11576         authentication, we reinstall it for receiving messages
11577
11578         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11579         a NULL sender for peer-to-peer case
11580
11581         * dbus/dbus-transport-unix.c (check_read_watch): handle
11582         !authenticated case correctly
11583
11584         * glib/dbus-gmain.c: add support for DBusServer
11585
11586         * dbus/dbus-server.c: add data slot support
11587
11588         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11589         return values and handle errors
11590
11591         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11592         DBusConnection
11593
11594         * Doxyfile.in (INPUT): add glib subdir
11595
11596         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11597         setup_with_g_main instead of hookup_with_g_main; write docs
11598
11599 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11600
11601         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11602         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11603         * dbus/dbus-message.c: (dbus_message_append_boolean),
11604         (dbus_message_append_boolean_array),
11605         (dbus_message_get_args_valist), (_dbus_message_test):
11606         * dbus/dbus-message.h:
11607         * doc/dbus-specification.sgml:
11608         Various fixes as pointed out by Havoc.
11609
11610         * test/data/invalid-messages/bad-boolean-array.message:
11611         * test/data/invalid-messages/bad-boolean.message:
11612         Add invalid boolean value test cases.
11613
11614 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11615
11616         * dbus/dbus-internals.c: (_dbus_type_to_string):
11617         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11618         (_dbus_marshal_validate_arg):
11619         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11620         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11621         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11622         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11623         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11624         (dbus_message_iter_get_double),
11625         (dbus_message_iter_get_boolean_array), (message_iter_test):
11626         * dbus/dbus-message.h:
11627         * dbus/dbus-protocol.h:
11628         * doc/dbus-specification.sgml:
11629         * test/data/valid-messages/lots-of-arguments.message:
11630         Add support for boolean and boolean array types.
11631
11632 2003-02-23  Havoc Pennington  <hp@pobox.com>
11633
11634         * dbus/dbus-keyring.c: finish most of this implementation and
11635         simple unit test
11636
11637         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11638         these barf if the error isn't cleared to NULL
11639
11640         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11641         (_dbus_create_directory): new function
11642
11643         * dbus/dbus-errors.c (dbus_set_error): fix warning
11644
11645         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11646         (_dbus_string_hex_decode): new function
11647         (test_hex_roundtrip): test code
11648
11649         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11650
11651         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11652
11653         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11654         the save-to-temp/rename trick to atomically write the new file
11655         (_dbus_string_parse_uint): new function
11656
11657 2003-02-22  Havoc Pennington  <hp@pobox.com>
11658
11659         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11660
11661 2003-02-22  Havoc Pennington  <hp@pobox.com>
11662
11663         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11664         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11665
11666         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11667
11668         * dbus/test/data/sha-1: add US government test suite for SHA-1
11669
11670 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11671
11672         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11673         Make string arrays NULL-terminated.
11674
11675         * dbus/dbus-memory.c: (dbus_free_string_array):
11676         * dbus/dbus-memory.h:
11677         New function for freeing NULL-terminated string arrays.
11678
11679         * dbus/dbus-message-builder.c: (append_quoted_string),
11680         (_dbus_message_data_load):
11681         Add support for array types.
11682
11683         * dbus/dbus-message.c: (check_message_handling):
11684         Add more types as test cases.
11685
11686         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11687         (_dbus_string_parse_double):
11688         Add the start offset to the end offset.
11689
11690         * test/data/valid-messages/lots-of-arguments.message:
11691         New test message with lots of arguments.
11692
11693 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11694
11695         * dbus/dbus-message.c: (dbus_message_append_nil),
11696         (dbus_message_append_int32), (dbus_message_append_uint32),
11697         (dbus_message_append_double), (dbus_message_append_string),
11698         (dbus_message_append_int32_array),
11699         (dbus_message_append_uint32_array),
11700         (dbus_message_append_double_array),
11701         (dbus_message_append_byte_array),
11702         (dbus_message_append_string_array):
11703         Fix all out-of-memory handling in these functions.
11704
11705 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11706
11707         * dbus/dbus-message.c: (dbus_message_append_nil):
11708         Fix a silly.
11709
11710 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11711
11712         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11713         (dbus_message_append_nil), (dbus_message_append_int32_array),
11714         (dbus_message_append_uint32_array),
11715         (dbus_message_append_double_array),
11716         (dbus_message_append_byte_array),
11717         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11718         (dbus_message_iter_get_int32_array),
11719         (dbus_message_iter_get_uint32_array),
11720         (dbus_message_iter_get_double_array),
11721         (dbus_message_iter_get_byte_array),
11722         (dbus_message_iter_get_string_array):
11723
11724         * dbus/dbus-message.h:
11725         Add functions for appending and getting arrays.
11726
11727 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11728
11729         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11730         element size at least 8 bytes, fixes mempool tests on
11731         64-bit machines.
11732
11733 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11734
11735         * dbus/dbus-transport-unix.c (unix_do_iteration):
11736         Unlock the connection mutex during a blocking select call.
11737         Add todo about how we need a way to wake up the select.
11738
11739         * dbus/dbus-connection-internal.h:
11740         * dbus/dbus-connection.c:
11741         Add _dbus_connection_lock and _dbus_connection_unlock.
11742
11743 2003-02-19  Havoc Pennington  <hp@pobox.com>
11744
11745         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11746         Doxyfile.in, not Doxyfile
11747
11748         * dbus/dbus-keyring.c: do some hacking on this
11749
11750         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11751
11752         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11753         dbus_error_init
11754         (dbus_set_error): remove dbus_error_init, check for message ==
11755         NULL *before* we sprintf into it, and add @todo about including
11756         system headers in this file
11757
11758         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11759
11760         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11761
11762         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11763         get various bits of user information based on either username
11764         or user ID
11765         (_dbus_homedir_from_username): new function
11766
11767 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11768
11769         * configure.in:
11770         Add check for nonposix getpwnam_r
11771
11772         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11773         Align the pool element size to a sizeof (void *) boundary.
11774
11775         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11776         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11777         General Solaris fixes.
11778
11779         * test/data/valid-messages/simplest-manual.message:
11780         Explicitly state that we want little-endian packing.
11781
11782 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11783
11784         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11785
11786         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11787         Added to create a transport connecting using a tcp/ip socket.
11788
11789         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11790         to a tcp socket at given host and port.
11791         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11792         hostname and port.
11793
11794         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11795
11796         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11797         Added to create a server listening on a TCP/IP socket.
11798
11799 2003-02-19  Havoc Pennington  <hp@pobox.com>
11800
11801         Throughout: mop up all the Doxygen warnings and undocumented
11802         stuff.
11803
11804         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11805         to search any paths.
11806
11807         * dbus/dbus-threads.c: move global mutex initializers to
11808         dbus-internals.h, multiple prototypes was confusing doxygen
11809         besides being kind of ugly
11810
11811         * Doxyfile (PREDEFINED): have Doxygen define
11812         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11813         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11814         (do not abuse the feature! it's for stuff like the autogenerated
11815         macros in dbus-md5.c, not just for things you don't feel like
11816         documenting...)
11817
11818 2003-02-18  Havoc Pennington  <hp@pobox.com>
11819
11820         * dbus/dbus-string.c (_dbus_string_zero): new function
11821
11822         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11823         wrap it in some dbus-friendly API
11824
11825         * dbus/dbus-types.h: add 16-bit types
11826
11827 2003-02-18  Joe Shaw  <joe@assbarn.com>
11828
11829         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11830         credentials from our currently running process.
11831         (get_word): Fix a buglet where we were copying the entire length
11832         instead of relative to our position.
11833
11834         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11835         keys on the stack... it's 640k of data.
11836
11837         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11838         read the credentials byte off the socket, even if we don't have
11839         SO_PEERCRED.
11840         (_dbus_poll): Implement poll() using select() for systems which
11841         don't have it.
11842
11843         * glib/test-dbus-glib.c (main): Print out an error if no
11844         parameters are given.
11845
11846         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11847         can fallback to a secondary auth mechanism if the first fails.
11848
11849 2003-02-18  Havoc Pennington  <hp@pobox.com>
11850
11851         * AUTHORS: add Alex
11852
11853 2003-02-17  Havoc Pennington  <hp@pobox.com>
11854
11855         * doc/dbus-specification.sgml: lots of cosmetic
11856         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11857         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11858         s/server/bus/ (except in authentication section). Add a section
11859         "Message Bus Message Routing"
11860
11861 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11862
11863         Release 0.4
11864
11865         * NEWS: Update
11866
11867 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11868
11869         * doc/dbus-specification.sgml:
11870         Specification updates.
11871
11872 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11873
11874         * bus/activation.c: (bus_activation_init), (child_setup),
11875         (bus_activation_activate_service):
11876         * bus/activation.h:
11877         * bus/main.c: (main):
11878         Set DBUS_ADDRESS environment variable.
11879
11880         * dbus/dbus-errors.c: (dbus_set_error):
11881         Don't use va_copy since that's a C99 feature.
11882
11883         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11884         (_dbus_spawn_async):
11885         * dbus/dbus-sysdeps.h:
11886         Add child_setup_func to _dbus_spawn_async.
11887
11888         * doc/dbus-specification.sgml:
11889         Update specification.
11890
11891         * test/spawn-test.c: (setup_func), (main):
11892         Fix test.
11893
11894 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11895
11896         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11897         Added todo.
11898
11899 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11900
11901         * doc/.cvsignore:
11902         * doc/Makefile.am:
11903         * doc/dbus-test-plan.sgml:
11904         Add test plan document.
11905
11906         * test/Makefile.am:
11907         Fix distcheck.
11908
11909 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11910
11911         * dbus/dbus-message.c: (decode_header_data),
11912         (_dbus_message_loader_return_buffer):
11913         Set the header padding amount when loading a message.
11914
11915 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11916
11917         * bus/dispatch.c: (send_one_message):
11918         Only send broadcast messages to registered connections.
11919
11920         * dbus/dbus-message.c: (dbus_message_name_is):
11921         * dbus/dbus-message.h:
11922         New convenience function.
11923
11924         * dbus/dbus-transport-debug.c: (do_reading):
11925         Only dispatch one message per run.
11926
11927         * test/Makefile.am:
11928         * test/bus-test.c: (new_connection_callback), (die),
11929         (test_hello_client1_handler), (test_hello_client2_handler),
11930         (test_hello_replies), (main):
11931
11932         * test/bus-test-loop.[ch]:
11933         Add these.
11934
11935 2003-02-16  Havoc Pennington  <hp@pobox.com>
11936
11937         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11938         backward conditional
11939
11940 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11941
11942         * dbus/dbus-connection.c:
11943         Implement sent_message_with_reply. (with_reply_and block is still
11944         busted).
11945         Made dispatch_message not lose message if OOM.
11946
11947         * dbus/dbus-errors.h:
11948         Add NoReply error (for reply timeouts).
11949
11950 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11951
11952         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11953         Actually free keys and values when destroying hashtable.
11954
11955 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11956
11957         * dbus/dbus-auth.c: (client_try_next_mechanism):
11958         Plug a leak.
11959
11960         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11961         Return TRUE if there's no thread implementation around.
11962
11963         * glib/dbus-gmain.c: (free_source),
11964         (dbus_connection_hookup_with_g_main):
11965         Make sure to remove the GSource when the connection is finalized.
11966
11967 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11968
11969         * bus/dispatch.c: (bus_dispatch_message_handler):
11970         * dbus/dbus-errors.h:
11971         Return an error if someone tries to send a message to a service
11972         that doesn't exist.
11973
11974 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11975
11976         * bus/activation.c: (load_directory), (bus_activation_init),
11977         (bus_activation_activate_service):
11978         * bus/activation.h:
11979         * bus/driver.c:
11980         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11981         More work on the activation handling.
11982
11983         * dbus/dbus-errors.h:
11984         Add some error messages
11985
11986         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11987         * dbus/dbus-message.h:
11988         New function that creates an error message.
11989
11990         * dbus/dbus-protocol.h:
11991         Add ACTIVATE_SERVER message.
11992
11993         * dbus/dbus-server-unix.c: (unix_handle_watch),
11994         (_dbus_server_new_for_domain_socket):
11995         Call _dbus_fd_set_close_on_exec.
11996
11997         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11998         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11999         (_dbus_fd_set_close_on_exec):
12000         * dbus/dbus-sysdeps.h:
12001         Add _dbus_fd_set_close_on exec function. Also add function that checks
12002         that all open fds are set to close-on-exec and warns otherwise.
12003
12004         * dbus/dbus-transport-unix.c:
12005         (_dbus_transport_new_for_domain_socket):
12006         Call _dbus_fd_set_close_on_exec.
12007
12008 2003-02-16  Havoc Pennington  <hp@pobox.com>
12009
12010         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12011         allow people to avoid setting SIGPIPE to SIG_IGN
12012         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12013         we've been asked not to
12014
12015 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12016
12017         * dbus/dbus-list.c: (_dbus_list_append_link),
12018         (_dbus_list_prepend_link):
12019         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12020         (dbus_realloc):
12021         Warning fixes.
12022
12023 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12024
12025         * bus/Makefile.am:
12026         * bus/activation.c: (bus_activation_entry_free),
12027         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12028         * bus/activation.h:
12029         * bus/main.c: (main):
12030         Add simple activation support, doesn't work yet though.
12031
12032 2003-02-15   Zack Rusin  <zack@kde.org>
12033
12034         * qt/dbus-qthread.cpp:  small casting fix
12035
12036 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12037
12038         * dbus/dbus-errors.c: (dbus_set_error):
12039         * dbus/dbus-errors.h:
12040         Add a few errors and make dbus_set_error void.
12041
12042         * dbus/dbus-sysdeps.c:
12043         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12044         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12045         * dbus/dbus-sysdeps.h:
12046         Add _dbus_spawn_async.
12047
12048         * test/spawn-test.c: (main):
12049         Test for _dbus_spawn_async.
12050
12051 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12052
12053         * dbus/dbus-internals.h:
12054         Fix build without tests.
12055
12056         * dbus/dbus-list.c: (alloc_link):
12057         Fix a segfault when a malloc fails.
12058
12059         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12060         (dbus_malloc0), (dbus_realloc):
12061         Add support for malloc debugging.
12062
12063 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12064
12065         * dbus/dbus-threads.c:
12066         * dbus/dbus-threads.h:
12067         Add condvars. Remove static mutext from API.
12068         Implement static mutexes by initializing them from threads_init.
12069
12070         * glib/dbus-gthread.c:
12071         * qt/dbus-qthread.cpp:
12072         Update with the thread api changes.
12073
12074
12075         * dbus/dbus-list.c:
12076         * dbus/dbus-list.h:
12077         Turn StaticMutex into normal mutex + init function.
12078         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12079         _dbus_list_append_link, _dbus_list_prepend_link
12080
12081
12082         * dbus/dbus-sysdeps.c:
12083         * dbus/dbus-sysdeps.h:
12084         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12085         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12086
12087         * dbus/dbus-protocol.h:
12088         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12089
12090         * dbus/dbus-message.c:
12091         Make ref/unref atomic.
12092         Fix some docs.
12093
12094         * dbus/dbus-connection-internal.h:
12095         * dbus/dbus-connection.c:
12096         * dbus/dbus-connection.h:
12097         Make threadsafe.
12098         Change _peek to _borrow,_return & _steal_borrowed.
12099         Change disconnect callback to event.
12100         Make dbus_connection_dispatch_messages reentrant.
12101
12102         * dbus/dbus-transport.c:
12103         Don't ref the connection on calls to the transport
12104         implementation.
12105
12106         * dbus/dbus-message-handler.c:
12107         Make threadsafe.
12108
12109         * glib/dbus-gmain.c:
12110         Don't use peek_message anymore
12111
12112         * test/Makefile.am:
12113         * test/debug-thread.c:
12114         * test/debug-thread.h:
12115         Simple thread implementation that asserts() on deadlocks in
12116         single-threaded code.
12117
12118         * test/bus-test.c:
12119         (main) Call debug_threads_init.
12120
12121         * test/watch.c:
12122         Use disconnect message instead of disconnect callback.
12123
12124         * bus/connection.c:
12125         * bus/connection.h:
12126         Don't call dbus_connection_set_disconnect_function. Instead export
12127         bus_connection_disconnect.
12128
12129         * bus/dispatch.c:
12130         Call bus_connection_disconnect when we get a disconnected message.
12131
12132 2003-02-15  Havoc Pennington  <hp@pobox.com>
12133
12134         * dbus/dbus-message.c (dbus_message_new): fool around with the
12135         docs
12136
12137 2003-02-14  Havoc Pennington  <hp@pobox.com>
12138
12139         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12140
12141         * dbus/dbus-memory.c: fail if the debug functions indicate we
12142         should
12143
12144         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12145         (_dbus_decrement_fail_alloc_counter): debug functions to
12146         simulate memory allocation failures
12147
12148 2003-02-14  Havoc Pennington  <hp@pobox.com>
12149
12150         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12151         to DBusError
12152
12153 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12154
12155         * bus/driver.c: (bus_driver_handle_hello):
12156         * bus/driver.h:
12157         * bus/services.c: (bus_service_lookup):
12158         Reorder message sending so we get a more sane order.
12159
12160         * test/bus-test.c: (message_handler):
12161         Fix tyop.
12162
12163 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12164
12165         * bus/driver.c: (bus_driver_send_service_deleted),
12166         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12167         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12168         (bus_driver_send_welcome_message),
12169         (bus_driver_handle_list_services),
12170         (bus_driver_handle_acquire_service),
12171         (bus_driver_handle_service_exists):
12172         * dbus/dbus-bus.c: (dbus_bus_register_client),
12173         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12174         * dbus/dbus-errors.c: (dbus_result_to_string):
12175         * dbus/dbus-errors.h:
12176         * dbus/dbus-message.c: (dbus_message_append_args),
12177         (dbus_message_append_args_valist), (dbus_message_get_args),
12178         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12179         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12180         (dbus_message_iter_get_byte_array),
12181         (dbus_message_iter_get_string_array), (message_iter_test),
12182         (check_message_handling), (_dbus_message_test):
12183         * dbus/dbus-message.h:
12184         * test/bus-test.c: (main):
12185         Change fields to arguments in messages, so that they won't be
12186         confused with header fields.
12187
12188         * glib/test-dbus-glib.c: (main):
12189         Remove append_fields from hello message.
12190
12191 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12192
12193         * dbus/dbus-errors.c:
12194         * dbus/dbus-message.c:
12195         * dbus/dbus-string.c:
12196         Documentation fixes.
12197
12198 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12199
12200         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12201         (remove_timeout):
12202         Implement support for timeouts in dbus-glib.
12203
12204 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12205
12206         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12207         * dbus/dbus-message.c: (process_test_subdir):
12208         * test/break-loader.c: (find_breaks_based_on):
12209         Plug some memory leaks.
12210
12211 2003-02-13  Richard Hult  <rhult@codefactory.se>
12212
12213         * bus/main.c: Fix build.
12214
12215         * dbus/dbus-errors.h:
12216         * dbus/dbus-errors.c: Fix copyright for Anders.
12217
12218 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12219
12220         * bus/Makefile.am:
12221         Add utils.[ch]
12222
12223         * bus/connection.c: (bus_connection_foreach):
12224         Fix a warning.
12225
12226         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12227         (unescape_string), (new_section), (parse_section_start),
12228         (parse_key_value), (report_error), (bus_desktop_file_load),
12229         (bus_desktop_file_get_string):
12230         * bus/desktop-file.h:
12231         Use DBusError for error reporting.
12232
12233         * bus/dispatch.c: (send_one_message),
12234         (bus_dispatch_message_handler):
12235         * bus/driver.c: (bus_driver_send_service_deleted),
12236         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12237         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12238         (bus_driver_send_welcome_message),
12239         (bus_driver_handle_list_services),
12240         (bus_driver_handle_acquire_service),
12241         (bus_driver_handle_service_exists):
12242         * bus/loop.c: (bus_loop_run):
12243         * bus/main.c:
12244         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12245
12246         * bus/utils.c: (bus_wait_for_memory):
12247         * bus/utils.h:
12248         New files with general utility functions.
12249
12250         * dbus/dbus-internals.h:
12251         Remove _DBUS_HANDLE_OOM.
12252
12253 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12254
12255         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12256         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12257         * dbus/dbus-errors.h:
12258         Add DBusError structure.
12259
12260 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12261
12262         * test/data/valid-messages/standard-acquire-service.message:
12263         * test/data/valid-messages/standard-hello.message:
12264         * test/data/valid-messages/standard-list-services.message:
12265         * test/data/valid-messages/standard-service-exists.message:
12266         Add some standard messages.
12267
12268 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12269
12270         * bus/driver.c: (bus_driver_send_welcome_message),
12271         (bus_driver_handle_list_services),
12272         (bus_driver_handle_acquire_service),
12273         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12274         Update for API changes in libdbus.
12275
12276         * dbus/dbus-message.c: (dbus_message_new_reply):
12277         * dbus/dbus-message.h:
12278         Remove the name argument. The spec states that replies shouldn't
12279         have a name.
12280
12281 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12282
12283         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12284         (report_error), (bus_desktop_file_load), (lookup_section),
12285         (lookup_line), (bus_desktop_file_get_raw),
12286         (bus_desktop_file_get_string):
12287         * bus/desktop-file.h:
12288         Some fixes, and new functions for getting a key value from a section.
12289
12290 2003-02-13  Havoc Pennington  <hp@pobox.com>
12291
12292         * test/data/auth/fail-after-n-attempts.auth-script: new test
12293
12294         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12295         reject the client.
12296
12297 2003-02-13  Havoc Pennington  <hp@pobox.com>
12298
12299         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12300         dbus_credentials_match were backward
12301
12302         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12303         NO_CREDENTIALS and ROOT_CREDENTIALS
12304
12305         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12306         into here. Never process more commands after we've reached an
12307         end state; store further data as unused bytes.
12308
12309         * test/data/auth/*: add more auth tests
12310
12311         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12312         command to match exact string and EXPECT_UNUSED to match unused
12313         bytes
12314
12315         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12316
12317 2003-02-12  Havoc Pennington  <hp@pobox.com>
12318
12319         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12320         \r off of popped lines
12321
12322         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12323         scripts
12324
12325         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12326         SEND, append \r\n
12327
12328 2003-02-12  Havoc Pennington  <hp@pobox.com>
12329
12330         * dbus/Makefile.am: remove break-loader from the build, since it
12331         moved.
12332
12333         * configure.in: add --enable-gcov to turn on coverage profiling
12334         flags and disable optimization
12335
12336 2003-02-10  Havoc Pennington  <hp@pobox.com>
12337
12338         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12339         initial cut at test framework for DBusAuth from laptop.
12340         Doesn't quite work yet but it compiles and I need to get
12341         it off the 266mhz laptop. ;-)
12342
12343         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12344         fix a memleak in error case
12345
12346 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12347
12348         * bus/Makefile.am:
12349         * bus/desktop-file.c:
12350         * bus/desktop-file.h:
12351         Add a desktop file parser.
12352
12353 2003-02-11  Zack Rusin  <zack@kde.org>
12354
12355         * qt/message.[h|cpp]: sample implementation
12356         of the KDE wrapper for DBusMessage
12357
12358 2003-02-09  Zack Rusin  <zack@kde.org>
12359
12360         * test/bus-test.c: make_it_compile
12361         * doc/dbus-specification.sgml: minimal semantic fix
12362
12363 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12364
12365         Release 0.3
12366
12367         * NEWS: Update
12368
12369 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12370
12371         * dbus/Makefile.am:
12372         * dbus/dbus-break-loader.c:
12373         * test/Makefile.am:
12374         * test/break-loader.c:
12375         Move dbus-break-loader to test/ and rename it to break-loader.
12376
12377 2003-02-02  Havoc Pennington  <hp@pobox.com>
12378
12379         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12380         for code to manage cookies in your home directory
12381
12382         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12383
12384         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12385         to authenticate, then disconnect the client.
12386
12387 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12388
12389         * dbus/dbus-message.c (dbus_message_append_fields):
12390         Correct docs.
12391
12392 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12393
12394         * doc/dbus-specification.sgml:
12395         Update address format section.
12396
12397 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12398
12399         * test/Makefile.am:
12400         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12401         (message_handler), (new_connection_callback), (loop_quit),
12402         (loop_run), (main):
12403         Add bus test.
12404
12405 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12406
12407         * bus/driver.c: (bus_driver_handle_service_exists):
12408         Simplify the code a bit.
12409
12410         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12411         Fix a silly.
12412
12413 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12414
12415         * bus/Makefile.am:
12416         Add libdbus-daemon.la and link to it.
12417
12418 2003-02-01  James Willcox  <jwillcox@gnome.org>
12419
12420         * bus/driver.c: (bus_driver_handle_own_service):
12421         Actually include the service reply code in the message.
12422
12423 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12424
12425         * bus/driver.c: (bus_driver_handle_service_exists):
12426         Don't unref the incoming message.
12427
12428 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12429
12430         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12431
12432 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12433
12434         * dbus/dbus-server.c: (dbus_server_listen):
12435         * dbus/dbus-transport.c: (_dbus_transport_open):
12436         ifdef out the calls to the debug transport and server.
12437
12438 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12439
12440         * dbus/dbus-watch.c (dbus_watch_get_flags):
12441         Add note in the docs that ERROR or HANGUP won't be returned
12442         and are assumed always on.
12443
12444         * glib/dbus-gmain.c (add_watch):
12445         Always add IO_ERR | IO_HUP
12446
12447         * dbus/dbus-message.h:
12448         Add semicolon after dbus_message_iter_get_string_array().
12449         Makes qt code build again
12450
12451 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12452
12453         * bus/driver.c: (create_unique_client_name),
12454         (bus_driver_handle_hello):
12455         Don't take a name, just use a numeric id to identify
12456         each client.
12457
12458         * dbus/Makefile.am:
12459         * dbus/dbus-bus.c: (dbus_bus_register_client),
12460         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12461         * dbus/dbus-bus.h:
12462         Add new convenience functions for communicating with the bus.
12463
12464         * dbus/dbus-message.h:
12465
12466         * dbus/dbus-protocol.h:
12467         Fix a typo.
12468
12469 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12470
12471         * dbus/dbus-message.c (dbus_message_append_fields):
12472         Add some more doc comments.
12473
12474 2003-02-01  Havoc Pennington  <hp@pobox.com>
12475
12476         * dbus/dbus-break-loader.c (randomly_modify_length): change
12477         a 4-byte value in the message as if it were a length
12478
12479         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12480         execute bit on saved files
12481
12482 2003-02-01  Havoc Pennington  <hp@pobox.com>
12483
12484         * dbus/dbus-break-loader.c (main): new program to find messages
12485         that break the loader.
12486
12487         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12488         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12489
12490         * dbus/dbus-string.c (_dbus_string_set_byte): new
12491
12492 2003-01-31  Havoc Pennington  <hp@pobox.com>
12493
12494         * dbus/dbus-message.c: refactor the test code to be more general,
12495         in preparation for writing a "randomly permute test cases to
12496         try to break the loader" program.
12497
12498 2003-01-31  Havoc Pennington  <hp@pobox.com>
12499
12500         * doc/dbus-specification.sgml: work on the specification
12501
12502         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12503         the protocol version of the message.
12504
12505         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12506         no longer specifies that.
12507         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12508         1/2/3/4)
12509
12510         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12511         "break" for DBUS_TYPE_NIL, remove @todo
12512
12513 2003-01-31  Havoc Pennington  <hp@pobox.com>
12514
12515         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12516         just set_is_error/get_is_error as this is a commonly-used
12517         function, and write docs.
12518
12519 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12520
12521         * dbus/dbus-address.c: (dbus_address_entry_free):
12522         Free key and value lists.
12523
12524         * dbus/dbus-internals.c: (_dbus_type_to_string):
12525         Add the types we didn't have.
12526
12527         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12528         (_dbus_marshal_validate_arg):
12529         Add NIL types.
12530
12531         * dbus/dbus-message.c: (dbus_message_set_sender):
12532         Remove todo about being able to set sender to NULL.
12533
12534         (dbus_message_set_is_error_reply),
12535         (dbus_message_get_is_error_reply):
12536         * dbus/dbus-message.h:
12537         New functions.
12538
12539         * dbus/dbus-protocol.h:
12540         Add error reply flag.
12541
12542         * test/data/valid-messages/opposite-endian.message:
12543         Add NIL type to test.
12544
12545 2003-01-31  Havoc Pennington  <hp@pobox.com>
12546
12547         * doc/dbus-specification.sgml: fully specify the header.  Add
12548         flags and major protocol version, and change header/body len to
12549         unsigned.
12550
12551         * dbus/dbus-message-builder.c (append_saved_length): append length
12552         as uint32
12553
12554         * dbus/dbus-message.c (dbus_message_create_header): change header
12555         length and body length to unsigned. Add the new fields from the
12556         spec
12557         (_dbus_message_loader_return_buffer): unsigned header/body len
12558
12559 2003-01-30  Havoc Pennington  <hp@pobox.com>
12560
12561         * dbus/dbus-auth.c: rework to use only REJECTED, no
12562         MECHANISMS
12563
12564         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12565         use REJECTED, suggested by Mark McLoughlin
12566
12567 2003-01-30  Havoc Pennington  <hp@pobox.com>
12568
12569         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12570         a better way to report errors here. e.g.  "unix address lacks
12571         path" or something. also "no such file" when the path doesn't
12572         exist, etc.
12573
12574         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12575         leaking list nodes
12576         (dbus_parse_address): add @todo about documenting address format,
12577         and allowing , and ; to be escaped
12578
12579 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12580
12581         * dbus/Makefile.am:
12582         Add dbus-address.[ch]
12583
12584         * dbus/dbus-address.c: (dbus_address_entry_free),
12585         (dbus_address_entries_free), (create_entry),
12586         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12587         (dbus_parse_address), (_dbus_address_test):
12588         * dbus/dbus-address.h:
12589         New files for dealing with address parsing.
12590
12591         * dbus/dbus-connection.c:
12592         Document timeout functions.
12593
12594         * dbus/dbus-message.c:
12595         Document dbus_message_new_from_message.
12596
12597         * dbus/dbus-server-debug.c:
12598         Document.
12599
12600         * dbus/dbus-server.c: (dbus_server_listen):
12601         Parse address and use correct server implementation.
12602
12603         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12604         * dbus/dbus-string.h:
12605         New function with test.
12606
12607         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12608         * dbus/dbus-test.h:
12609         Add address tests.
12610
12611         * dbus/dbus-transport-debug.c:
12612         Document.
12613
12614         * dbus/dbus-transport.c: (_dbus_transport_open):
12615         Parse address and use correct transport implementation.
12616
12617 2003-01-30  Havoc Pennington  <hp@pobox.com>
12618
12619         * dbus/dbus-message.c: use message->byte_order instead of
12620         DBUS_COMPILER_BYTE_ORDER throughout.
12621         (dbus_message_create_header): pad header to align the
12622         start of the body of the message to 8-byte boundary
12623
12624         * dbus/dbus-marshal.h: make all the demarshalers take const
12625         DBusString arguments.
12626
12627         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12628         validate message args here, so we don't have to do slow validation
12629         later, and so we catch bad messages as they are incoming. Also add
12630         better checks on header_len and body_len. Also fill in
12631         message->byte_order
12632
12633         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12634         implemented properly)
12635         (_dbus_string_validate_nul): new function to check all-nul
12636
12637         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12638         get_arg_end_pos and remove all validation
12639         (_dbus_marshal_validate_arg): actually do validation here.
12640
12641 2003-01-29  Havoc Pennington  <hp@pobox.com>
12642
12643         * dbus/dbus-message.c (check_message_handling): fix assertion
12644         failure on set_client_serial
12645
12646 2003-01-28  Havoc Pennington  <hp@pobox.com>
12647
12648         * dbus/dbus-server-debug.c: Add doc section comments
12649
12650         * dbus/dbus-transport-debug.c: add doc section comments
12651
12652 2003-01-28  Havoc Pennington  <hp@redhat.com>
12653
12654         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12655         the reverse order from how I had it
12656         (_dbus_string_base64_encode): reverse encoding order. I was
12657         basically byteswapping everything during encoding.
12658
12659 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12660
12661         * dbus/dbus-connection-internal.h:
12662         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12663         (_dbus_connection_remove_timeout):
12664         Add functions for adding and removing timeouts.
12665
12666         * dbus/dbus-message.c: (dbus_message_new_from_message):
12667         Add new function that takes a message and creates an exact
12668         copy of it, but with the refcount set to 1.
12669         (check_message_handling):
12670         Fix build error.
12671
12672         * dbus/dbus-server-protected.h:
12673         * dbus/dbus-server.c: (_dbus_server_init_base),
12674         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12675         (dbus_server_set_timeout_functions):
12676         (_dbus_server_remove_timeout):
12677         New functions so that a server can add and remove timeouts.
12678
12679         (dbus_server_listen):
12680         Add commented out call to dbus_server_debug_new.
12681
12682         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12683         Actually set the handler, doh.
12684
12685         * dbus/dbus-transport.c: (_dbus_transport_open):
12686         Add commented out call to dbus_transport_debug_client_new.
12687
12688         * dbus/Makefile.am:
12689         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12690
12691 2003-01-28  Havoc Pennington  <hp@pobox.com>
12692
12693         * dbus/dbus-message.c (check_message_handling): function to check
12694         on the loaded message, iterates over it etc.
12695
12696 2003-01-28  Havoc Pennington  <hp@pobox.com>
12697
12698         * test/Makefile.am (dist-hook): fix make distdir
12699
12700         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12701
12702 2003-01-27  Havoc Pennington  <hp@pobox.com>
12703
12704         * dbus/dbus-mempool.c (time_for_size): replace printf with
12705         _dbus_verbose
12706
12707         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12708         empty lines; fix the SAVE_LENGTH stuff to be
12709         START_LENGTH/END_LENGTH so it actually works; couple other
12710         bugfixes
12711
12712         * test/Makefile.am (dist-hook): add dist-hook for .message files
12713
12714         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12715         can be constant or locked.
12716         (_dbus_string_free): allow freeing a const string as
12717         documented/intended
12718
12719         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12720
12721         * dbus/dbus-test-main.c (main): take an argument which is the
12722         directory containing test data
12723
12724         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12725         argument to this and load all the messages in test/data/
12726         checking that they can be loaded or not loaded as appropriate.
12727
12728 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12729
12730         * bus/dispatch.c: (bus_dispatch_message_handler):
12731         Dispatch messages sent to services.
12732
12733         * bus/driver.c: (bus_driver_send_service_deleted),
12734         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12735         (bus_driver_send_service_acquired):
12736         Add helper functions for sending service related messages.
12737
12738         (bus_driver_send_welcome_message):
12739         Send HELLO_REPLY instead of WELCOME.
12740
12741         (bus_driver_handle_list_services):
12742         Send LIST_SERVICES_REPLY instead of SERVICES.
12743
12744         (bus_driver_handle_own_service),
12745         (bus_driver_handle_service_exists):
12746         New message handlers.
12747
12748         (bus_driver_handle_message):
12749         Invoke new message handlers.
12750
12751         (bus_driver_remove_connection):
12752         Don't remove any services here since that's done automatically
12753         by bus_service_remove_owner now.
12754
12755         * bus/driver.h:
12756         New function signatures.
12757
12758         * bus/services.c: (bus_service_add_owner):
12759         Send ServiceAcquired message if we're the only primary owner.
12760
12761         (bus_service_remove_owner):
12762         Send ServiceAcquired/ServiceLost messages.
12763
12764         (bus_service_set_prohibit_replacement),
12765         (bus_service_get_prohibit_replacement):
12766         Functions for setting prohibit replacement.
12767
12768         (bus_service_has_owner):
12769         New function that checks if a connection is in the owner queue of
12770         a certain service.
12771
12772         * bus/services.h:
12773         Add new function signatures.
12774
12775         * dbus/dbus-list.c: (_dbus_list_test):
12776         Add tests for _dbus_list_remove_last and traversing the list backwards.
12777
12778         * dbus/dbus-list.h:
12779         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12780         go any further, so return NULL then.
12781
12782         * dbus/dbus-protocol.h:
12783         Add new messages, service flags and service replies.
12784
12785 2003-01-26  Havoc Pennington  <hp@pobox.com>
12786
12787         * dbus/dbus-message-builder.c: implement, completely untested.
12788
12789         * test/data/*: add data to be used in testing.
12790         ".message" files are our simple loadable text format.
12791         ".message-raw" will be binary dumps of messages.
12792
12793         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12794
12795 2003-01-26  Havoc Pennington  <hp@pobox.com>
12796
12797         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12798
12799         * dbus/dbus-errors.c (dbus_result_to_string): add
12800         file errors
12801
12802         * dbus/dbus-message-builder.c: new file, will contain code to load
12803         up messages from files. Not implemented yet.
12804
12805 2003-01-26  Havoc Pennington  <hp@pobox.com>
12806
12807         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12808         the sender by setting to NULL
12809
12810 2003-01-26  Havoc Pennington  <hp@pobox.com>
12811
12812         The unit tests pass, but otherwise untested.  If it breaks, the
12813         tests should have been better. ;-)
12814
12815         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12816         the connection.
12817
12818         * dbus/dbus-message.c: redo everything so we maintain
12819         message->header as the only copy of the various fields.
12820         This avoids the possibility of out-of-memory in some cases,
12821         for example dbus_message_lock() can't run out of memory anymore,
12822         and avoids extra copying. Figured I may as well go ahead and do
12823         this since it was busted for dbus_message_lock to not return
12824         failure on OOM, and dbus_message_write_header was totally
12825         unchecked for OOM. Also fixed some random other bugs.
12826
12827         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12828         that strings are nul-terminated. Also, end_pos can be equal
12829         to string length just not greater than, I think.
12830         (_dbus_marshal_set_int32): new function
12831         (_dbus_marshal_set_uint32): new function
12832         (_dbus_marshal_set_string): new function
12833
12834         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12835         a warning, init timeout_list to NULL
12836         (dbus_connection_send_message): don't use uninitialized variable
12837         "serial"
12838
12839         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12840
12841 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12842
12843         * bus/driver.c: (bus_driver_handle_hello),
12844         (bus_driver_send_welcome_message):
12845         Plug leaks
12846
12847 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12848
12849         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12850         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12851         (dbus_connection_unref):
12852         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12853         * dbus/dbus-message.c: (dbus_message_unref),
12854         Plug memory leaks.
12855
12856         (dbus_message_get_fields):
12857         Remove debugging printout.
12858
12859         (_dbus_message_loader_return_buffer):
12860         Don't store the header string.
12861
12862         (_dbus_message_test):
12863         Plug leaks.
12864
12865 2003-01-26  Richard Hult  <rhult@codefactory.se>
12866
12867         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12868         the file descriptor list, since it can change under us.
12869
12870 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12871
12872         * glib/dbus-gmain.c: (dbus_connection_prepare),
12873         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12874         (remove_watch), (dbus_connection_hookup_with_g_main):
12875         Rewrite the glib handling to use its own GSource instead of a
12876         GIOChannel so we can catch messages put in the queue while waiting
12877         for a reply.
12878
12879 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12880
12881         * bus/Makefile.am:
12882         * bus/connection.c: (connection_disconnect_handler),
12883         (connection_watch_callback), (bus_connection_setup):
12884         * bus/dispatch.c: (send_one_message),
12885         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12886         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12887         * bus/dispatch.h:
12888         * bus/driver.c: (bus_driver_send_service_deleted),
12889         (bus_driver_send_service_created), (bus_driver_handle_hello),
12890         (bus_driver_send_welcome_message),
12891         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12892         (bus_driver_handle_message):
12893         * bus/driver.h:
12894         Refactor code, put the message dispatching in its own file. Use
12895         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12896         is disconnected.
12897
12898 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12899
12900         * dbus/dbus-internals.h:
12901         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12902
12903         * dbus/dbus-message.c: (dbus_message_get_sender):
12904         * dbus/dbus-message.h:
12905         Implement dbus_message_get_sender.
12906
12907         * dbus/dbus-protocol.h:
12908         Add message and service defines.
12909
12910 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12911
12912         * dbus/dbus-connection.c: (dbus_connection_send_message):
12913         * dbus/dbus-message-internal.h:
12914         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12915         (dbus_message_write_header):
12916         Remove _dbus_messag_unlock and don't set the client serial on a
12917         message if one already exists.
12918
12919 2003-01-24  Havoc Pennington  <hp@pobox.com>
12920
12921         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12922         list_pool
12923
12924         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12925         on OOM
12926
12927 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12928
12929         * dbus/dbus-list.c: (alloc_link), (free_link):
12930         Use a memory pool for the links.
12931
12932 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12933
12934         * bus/connection.c: (bus_connection_foreach):
12935         * bus/connection.h:
12936         Add new bus_connection_foreach function.
12937
12938         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12939         Add function that broadcasts a message to all clients.
12940
12941         (bus_driver_send_service_created), (bus_driver_handle_hello),
12942         (bus_driver_send_welcome_message),
12943         (bus_driver_handle_list_services), (bus_driver_message_handler):
12944         Implement functions that take care of listing services, and notifying
12945         clients when new services are created.
12946
12947         * bus/services.c: (bus_services_list):
12948         * bus/services.h:
12949         Add new function that returns an array of strings with the currently
12950         registered services.
12951
12952         * glib/dbus-glib.h:
12953         * glib/dbus-gmain.c:
12954         Update copyright year.
12955
12956 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12957
12958         * dbus/dbus-connection.c: (dbus_connection_send_message):
12959         Unlock the message in case it was sent earlier.
12960
12961         (dbus_connection_send_message_with_reply_and_block):
12962         Remove the reply message from the list.
12963
12964         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12965         Set array_len and new_pos correctly.
12966
12967         (_dbus_marshal_test):
12968         Remove debug output.
12969
12970         * dbus/dbus-message-internal.h:
12971         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12972         New function that returns the reply serial.
12973
12974         (_dbus_message_unlock):
12975         New function that unlocks a message and resets its header.
12976
12977         (dbus_message_append_string_array),
12978         (dbus_message_get_fields_valist),
12979         (dbus_message_iter_get_field_type),
12980         (dbus_message_iter_get_string_array),
12981         (dbus_message_get_fields),
12982         (dbus_message_append_fields_valist):
12983         Handle string arrays.
12984
12985         (dbus_message_set_sender):
12986         Make this function public since the bus daemon needs it.
12987
12988         (decode_header_data):
12989         Set the reply serial to -1 initially.
12990
12991         * dbus/dbus-message.h:
12992         Add dbus_message_set_sender.
12993
12994 2003-01-24  Havoc Pennington  <hp@pobox.com>
12995
12996         * doc/dbus-specification.sgml: add some stuff
12997
12998 2003-01-22  Havoc Pennington  <hp@pobox.com>
12999
13000         * doc/dbus-specification.sgml: Start to document the protocol.
13001
13002 2003-01-22  Havoc Pennington  <hp@pobox.com>
13003
13004         * dbus/dbus-connection.c
13005         (dbus_connection_send_message_with_reply_and_block): add some @todo
13006
13007         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13008
13009 2003-01-21  Havoc Pennington  <hp@pobox.com>
13010
13011         (patch untested because can't compile)
13012
13013         * bus/driver.c (create_unique_client_name): make this function
13014         never recycle client names. Also, caller should initialize
13015         the DBusString.
13016
13017         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13018
13019 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13020
13021         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13022         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13023         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13024         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13025         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13026         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13027         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13028         * dbus/dbus-marshal.h:
13029         * dbus/dbus-protocol.h:
13030         Add support for marshalling and demarshalling integer, double
13031         and string arrays.
13032
13033 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13034
13035         * bus/Makefile.am:
13036         Add driver.[ch]
13037
13038         * bus/connection.c: (connection_disconnect_handler):
13039         Remove the connection from the bus driver's list.
13040
13041         (connection_watch_callback): Dispatch messages.
13042
13043         (free_connection_data): Free connection name.
13044
13045         (bus_connection_setup): Add connection to the bus driver's list.
13046         (bus_connection_remove_owned_service):
13047         (bus_connection_set_name), (bus_connection_get_name):
13048         Add functions for setting and getting the connection's name.
13049
13050         * bus/connection.h:
13051         Add function headers.
13052
13053         * bus/driver.c: (create_unique_client_name),
13054         (bus_driver_handle_hello_message),
13055         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13056         (bus_driver_add_connection), (bus_driver_remove_connection):
13057         * bus/driver.h:
13058         * bus/main.c:
13059         * bus/services.c: (bus_service_free):
13060         * bus/services.h:
13061         New file that handles communication and registreation with the bus
13062         itself.
13063
13064 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13065
13066         * dbus/dbus-connection.c: (dbus_connection_send_message):
13067         Add a new client_serial parameter.
13068
13069         (dbus_connection_send_message_with_reply):
13070         Remove a @todo since we've implemented the blocking function.
13071
13072         (dbus_connection_send_message_with_reply_and_block):
13073         New function that sends a message and waits for a reply and
13074         then returns the reply.
13075
13076         * dbus/dbus-connection.h:
13077         Add new functions.
13078
13079         * dbus/dbus-errors.c: (dbus_result_to_string):
13080         * dbus/dbus-errors.h:
13081         Add new DBUS_RESULT.
13082
13083         * dbus/dbus-message-internal.h:
13084         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13085         (_dbus_message_set_sender), (dbus_message_write_header),
13086         (dbus_message_new_reply), (decode_header_data),
13087         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13088         * dbus/dbus-message.h:
13089         Add new functions that set the reply serial and sender.
13090         Also marshal and demarshal them correctly and add test.
13091
13092         * dbus/dbus-protocol.h:
13093         Add new DBUS_MESSAGE_TYPE_SENDER.
13094
13095         * glib/dbus-glib.h:
13096         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13097         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13098         (dbus_connection_hookup_with_g_main):
13099         * glib/test-dbus-glib.c: (main):
13100         Rewrite to use GIOChannel and remove the GSource crack.
13101
13102         * test/echo-client.c: (main):
13103         * test/watch.c: (check_messages):
13104         Update for changed APIs
13105
13106 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13107
13108         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13109
13110         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13111         Create a DBusTimeoutList.
13112         (dbus_connection_set_timeout_functions): Add new function to
13113         set timeout callbacks
13114
13115         * dbus/dbus-connection.h: Add public DBusTimeout API.
13116
13117         * dbus/dbus-message.c: (dbus_message_get_service):
13118         * dbus/dbus-message.h:  New function.
13119
13120         * dbus/dbus-server.c: Fix small doc typo.
13121
13122         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13123
13124 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13125
13126         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13127         of the string, just as long as specified.
13128
13129 2003-01-19  Havoc Pennington  <hp@pobox.com>
13130
13131         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13132         new function
13133
13134         * dbus/dbus-server.c (dbus_server_set_max_connections)
13135         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13136         keep track of current number of connections, and add API for
13137         setting a max (but haven't implemented enforcing the max yet)
13138
13139 2003-01-18  Havoc Pennington  <hp@pobox.com>
13140
13141         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13142         reading/writing if read_watch != NULL or write_watch != NULL.
13143
13144         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13145         the message loader code to actually load message->header and
13146         message->body into the newly-created message.
13147
13148         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13149         in OOM case
13150
13151         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13152         (dbus_connection_get_max_message_size)
13153         (dbus_connection_set_max_live_messages_size)
13154         (dbus_connection_get_max_live_messages_size): implement some
13155         resource limitation functions
13156
13157         * dbus/dbus-resources.c: new file implementing some of the
13158         resource limits stuff
13159
13160         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13161         missing docs, add @todo to handle OOM etc.
13162
13163         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13164         docs
13165
13166 2003-01-18  Havoc Pennington  <hp@pobox.com>
13167
13168         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13169         connection if it hasn't been already.
13170
13171         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13172         replace with DisconnectFunction.
13173
13174 2003-01-18  Havoc Pennington  <hp@pobox.com>
13175
13176         Building --disable-verbose-mode --disable-asserts --disable-tests
13177         cuts the library from 112K to 45K or so
13178
13179         * configure.in: check for varargs macro support,
13180         add --enable-verbose-mode, --enable-asserts.
13181
13182         * dbus/dbus-internals.h (_dbus_assert): support
13183         DBUS_DISABLE_ASSERT
13184         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13185
13186 2003-01-18  Havoc Pennington  <hp@pobox.com>
13187
13188         * dbus/dbus-test.c: include config.h so that tests actually run
13189
13190         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13191         so the failure mode when that assumption fails will be plenty
13192         obvious.
13193
13194 2003-01-18  Havoc Pennington  <hp@pobox.com>
13195
13196         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13197
13198         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13199         the distribution
13200
13201         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13202         since we don't want to use those in make check
13203
13204 2003-01-15  Havoc Pennington  <hp@redhat.com>
13205
13206         Release 0.2
13207
13208         * NEWS: update
13209
13210 2003-01-15  Havoc Pennington  <hp@redhat.com>
13211
13212         * test/Makefile.am: fix so that test source code ends up in the
13213         distribution on make distcheck
13214
13215 2003-01-15  Havoc Pennington  <hp@redhat.com>
13216
13217         Release 0.1.
13218
13219         * NEWS: update
13220
13221 2003-01-15  Havoc Pennington  <hp@redhat.com>
13222
13223         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13224         fix build when --disable-tests
13225
13226         * Makefile.am (EXTRA_DIST): put HACKING in here
13227
13228         * HACKING: document procedure for making a tarball release.
13229
13230 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13231
13232         * bus/connection.c: (connection_error_handler),
13233         (bus_connection_setup):
13234         * bus/main.c: (main):
13235         Make sure that the DBusConnectionData struct is NULLed
13236         out to prevent a segfault.
13237
13238         * dbus/dbus-errors.c: (dbus_result_to_string):
13239         * dbus/dbus-errors.h:
13240         * dbus/dbus-message.c: (dbus_message_get_fields),
13241         (dbus_message_get_fields_valist), (_dbus_message_test):
13242         * dbus/dbus-message.h:
13243         Make dbus_message_get_fields return a result code so we can
13244         track invalid fields as well as oom.
13245
13246 2003-01-11  Havoc Pennington  <hp@pobox.com>
13247
13248         * configure.in: change --enable-test/--enable-ansi action-if-given
13249         to enable_foo=$enableval instead of enable_foo=yes
13250
13251 2003-01-08  Havoc Pennington  <hp@pobox.com>
13252
13253         * dbus/dbus-string.c (_dbus_string_align_length): new function
13254
13255         * dbus/dbus-test-main.c: move main() for test app here
13256         * dbus/dbus-test.c
13257         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13258         symbol to run tests, because dbus-test isn't in the main
13259         library
13260
13261         Code review nitpicks.
13262
13263         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13264         for people with narrow emacs ;-). Assert client_serial was filled
13265         in. Assert message->name != NULL.
13266         (dbus_message_append_fields): have "first_field_type" arg separate
13267         from va list, needed for C++ binding that also uses varargs IIRC
13268         and helps with type safety
13269         (dbus_message_new): add @todo about using DBusString to store
13270         service/name internally
13271         (dbus_message_new): don't leak ->service and ->name on OOM later
13272         in the function
13273         (dbus_message_unref): free the service name
13274         (dbus_message_get_fields): same change to varargs
13275         i.e. first_field_type
13276         (_dbus_message_loader_return_buffer): assert that the message data
13277         is aligned (if not it's a bug in our code). Put in verbose griping
13278         about why we set corrupted = TRUE.
13279         (decode_header_data): add FIXME that char* is evil.  Was going to
13280         add FIXME about evil locale-specific string.h strncmp, but just
13281         switched to wacky string-as-uint32 optimization. Move check for
13282         "no room for field name" above get_const_data_len() to avoid
13283         assertion failure in get_const_data_len if we have trailing 2
13284         bytes or the like. Check for service and name fields being
13285         provided twice. Don't leak service/name on error. Require field
13286         names to be aligned to 4 bytes.
13287
13288         * dbus/dbus-marshal.c: move byte swap stuff to header
13289         (_dbus_pack_int32): uscore-prefix
13290         (_dbus_unpack_int32): uscore-prefix
13291         (_dbus_unpack_uint32): export
13292         (_dbus_demarshal_string): add @todo complaining about use of
13293         memcpy()
13294         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13295         handling allowing corrupt data to go unchecked
13296
13297 2003-01-08  Havoc Pennington  <hp@redhat.com>
13298
13299         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13300         to the select() as needed for authentication. (should be using
13301         _dbus_poll() not select, but for another day)
13302
13303         * dbus/dbus.h: include dbus/dbus-protocol.h
13304
13305 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13306
13307         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13308         dbus-connection.h
13309
13310 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13311
13312         * dbus/dbus-internals.c: (_dbus_type_to_string):
13313         New function that returns a string describing a type.
13314
13315         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13316         * dbus/dbus-marshal.h:
13317         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13318         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13319         (dbus_message_iter_get_byte_array):
13320         * dbus/dbus-message.h:
13321         Add new convenience functions for appending and getting message fields.
13322         Also add demarshalling routines for byte arrays.
13323
13324 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13325
13326         * dbus/dbus-connection-internal.h:
13327         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13328         (_dbus_connection_get_next_client_serial),
13329         (dbus_connection_send_message):
13330         * dbus/dbus-internals.h:
13331         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13332         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13333         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13334         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13335         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13336         (_dbus_verbose_bytes), (_dbus_marshal_test):
13337         * dbus/dbus-marshal.h:
13338         * dbus/dbus-message-internal.h:
13339         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13340         (dbus_message_write_header), (_dbus_message_lock),
13341         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13342         (dbus_message_get_name), (dbus_message_append_int32),
13343         (dbus_message_append_uint32), (dbus_message_append_double),
13344         (dbus_message_append_string), (dbus_message_append_byte_array),
13345         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13346         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13347         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13348         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13349         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13350         (decode_header_data), (_dbus_message_loader_return_buffer),
13351         (message_iter_test), (_dbus_message_test):
13352         * dbus/dbus-message.h:
13353         * dbus/dbus-protocol.h:
13354         * dbus/dbus-test.c: (main):
13355         * dbus/dbus-test.h:
13356         * glib/test-dbus-glib.c: (message_handler), (main):
13357         * test/echo-client.c: (main):
13358         * test/watch.c: (check_messages):
13359         Make messages sendable and receivable for real.
13360
13361 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13362
13363         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13364         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13365         * dbus/dbus-message.c: (dbus_message_append_int32),
13366         (dbus_message_append_uint32), (dbus_message_append_double),
13367         (dbus_message_append_string), (dbus_message_append_byte_array):
13368         Handle OOM restoration.
13369
13370 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13371
13372         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13373         (_dbus_demarshal_string), (_dbus_marshal_test):
13374         * dbus/dbus-marshal.h:
13375         * dbus/dbus-message.c: (dbus_message_get_name),
13376         Document these functions.
13377
13378         (dbus_message_append_int32), (dbus_message_append_uint32),
13379         (dbus_message_append_double), (dbus_message_append_string),
13380         (dbus_message_append_byte_array):
13381         * dbus/dbus-message.h:
13382         Add functions for adding message fields of different types.
13383
13384         * dbus/dbus-protocol.h:
13385         Add the different types.
13386
13387 2003-01-05  Havoc Pennington  <hp@pobox.com>
13388
13389         * bus/connection.c: implement routines for handling connections,
13390         first thing is keeping a list of owned services on each connection
13391         and setting up watches etc.
13392
13393         * bus/services.c: implement a mapping from service names to lists
13394         of connections
13395
13396         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13397
13398         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13399         to use static mutexes for global data
13400
13401         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13402         collection of functions to set/get application-specific data
13403         on the DBusConnection.
13404
13405 2003-01-04  Havoc Pennington  <hp@pobox.com>
13406
13407         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13408         (_dbus_poll): new function
13409
13410         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13411         copied from GLib
13412
13413         * bus/loop.c: initial code for the daemon main loop
13414
13415 2003-01-04  Havoc Pennington  <hp@pobox.com>
13416
13417         * test/watch.c (error_handler): make it safe if the error handler
13418         is called multiple times (if we s/error handler/disconnect
13419         handler/ we should just guarantee it's called only once)
13420
13421         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13422         error handler on disconnect (it's quite possible we should
13423         just change the error handler to a "disconnect handler," I'm
13424         not sure we have any other meaningful errors)
13425
13426         * configure.in: check for getpwnam_r
13427
13428         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13429         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13430         mechanism as in SASL spec, using socket credentials
13431
13432         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13433         (_dbus_send_credentials_unix_socket): new function
13434
13435         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13436         dbus_accept()
13437         (_dbus_write): only check errno if <0 returned
13438         (_dbus_write_two): ditto
13439
13440 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13441
13442         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13443         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13444         (_dbus_marshal_test):
13445         * dbus/dbus-marshal.h:
13446         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13447         to _dbus_marshal_utf8_string. Also fix some tests.
13448
13449 2002-12-28  Harri Porten  <porten@kde.org>
13450
13451         * configure.in: added check for C++ compiler and a very cheesy
13452         check for the Qt integration
13453
13454         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13455
13456         * qt/Makefile.am: added
13457
13458         * qt/.cvsignore: added
13459
13460         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13461         latter, added #ifdef QT_THREAD_SUPPORT guard.
13462
13463         * dbus/Makefile.am: added missing headers for make dist
13464
13465 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13466
13467         * dbus/Makefile.am: fixup export-symbols-regex.
13468
13469 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13470
13471         * acinclude.m4: Add this file and put the
13472         PKG_CHECK_MODULE macro in it.
13473
13474 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13475
13476         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13477         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13478         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13479         (_dbus_marshal_test):
13480         Make the demarshalling routines align the pos argument.
13481         Add string marshalling tests and fix the obvious bugs
13482         discovered.
13483
13484 2002-12-26  Havoc Pennington  <hp@pobox.com>
13485
13486         * dbus/dbus-auth.c: fixes fixes fixes
13487
13488         * dbus/dbus-transport-unix.c: wire up support for
13489         encoding/decoding data on the wire
13490
13491         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13492         (_dbus_auth_decode_data): append to target string
13493         instead of nuking it.
13494
13495 2002-12-26  Havoc Pennington  <hp@pobox.com>
13496
13497         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13498         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13499         doh
13500
13501         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13502         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13503         now). Main point is because I wanted unpack_uint32 to implement
13504         _dbus_verbose_bytes
13505         (_dbus_verbose_bytes): new function
13506
13507         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13508
13509         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13510         mechanism to handle a corrupt message stream
13511         (_dbus_message_loader_new): fix preallocation to only prealloc,
13512         not prelengthen
13513
13514         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13515         (_dbus_string_test): enhance tests for copy/move and fix the
13516         functions
13517
13518         * dbus/dbus-transport-unix.c: Hold references in more places to
13519         avoid reentrancy problems
13520
13521         * dbus/dbus-transport.c: ditto
13522
13523         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13524         leak reference count in no-message case
13525
13526         * test/watch.c (do_mainloop): handle adding/removing watches
13527         during iteration over the watches. Also, ref the connection/server
13528         stored on a watch, so we don't try to mangle a destroyed one.
13529
13530         * dbus/dbus-transport-unix.c (do_authentication): perform
13531         authentication
13532
13533         * dbus/dbus-auth.c (get_state): add a state
13534         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13535         (_dbus_auth_get_unused_bytes): append the unused bytes
13536         to the passed in string, rather than prepend
13537
13538         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13539         the auth conversation DBusAuth
13540
13541         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13542         (_dbus_transport_new_for_domain_socket): when creating a
13543         transport, pass in whether it's a client-side or server-side
13544         transport so we know which DBusAuth to create
13545
13546 2002-12-03  Havoc Pennington  <hp@pobox.com>
13547
13548         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13549         _after_ finalizing the derived members
13550         (unix_connection_set): unref watch if we fail to add it
13551
13552         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13553         transport first, so that the connection owned by the
13554         transport will be valid as the transport finalizes.
13555
13556         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13557         if necessary, and remove watches from the connection.
13558
13559         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13560
13561 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13562
13563         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13564         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13565         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13566         (_dbus_marshal_test):
13567         * dbus/dbus-marshal.h:
13568         Add string marshal functions and have the demarshal functions
13569         return the new position.
13570
13571 2002-12-25  Havoc Pennington  <hp@pobox.com>
13572
13573         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13574         it is a simple protocol that just maps directly to SASL.
13575
13576         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13577         initial implementation, not actually used yet.
13578
13579         * dbus/dbus-string.c (_dbus_string_find): new function
13580         (_dbus_string_equal): new function
13581         (_dbus_string_base64_encode): new function
13582         (_dbus_string_base64_decode): new function
13583
13584 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13585
13586         * dbus/Makefile.am:
13587         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13588         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13589         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13590         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13591         * dbus/dbus-marshal.h:
13592         * dbus/dbus-protocol.h:
13593         * dbus/dbus-test.c: (main):
13594         * dbus/dbus-test.h:
13595         Add un-optimized marshalling/demarshalling routines.
13596
13597 2002-12-25  Harri Porten  <porten@kde.org>
13598
13599         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13600
13601 2002-12-24  Zack Rusin  <zack@kde.org>
13602
13603         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13604         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13605         main loop stuff
13606
13607 2002-12-24  Havoc Pennington  <hp@pobox.com>
13608
13609         * glib/dbus-gthread.c: fix include
13610
13611         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13612         I think glib API needs to change, though, as you don't
13613         want to use DBusMessageFunction, you want to use the
13614         DBusMessageHandler object. Probably
13615         dbus_connection_open_with_g_main_loop()
13616         and dbus_connection_setup_g_main_loop() or something like that
13617         (but think of better names...) that just create a connection
13618         that has watch/timeout functions etc. already set up.
13619
13620         * dbus/dbus-connection.c
13621         (dbus_connection_send_message_with_reply): new function just to
13622         show how the message handler helps us deal with replies.
13623
13624         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13625
13626         * dbus/dbus-string.c (_dbus_string_test): free a string that
13627         wasn't
13628
13629         * dbus/dbus-hash.c: use memory pools for the hash entries
13630         (rebuild_table): be more paranoid about overflow, and
13631         shrink table when we can
13632         (_dbus_hash_test): reduce number of sprintfs and write
13633         valid C89. Add tests for case where we grow and then
13634         shrink the hash table.
13635
13636         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13637
13638         * dbus/dbus-connection.c (dbus_connection_register_handler)
13639         (dbus_connection_unregister_handler): new functions
13640
13641         * dbus/dbus-message.c (dbus_message_get_name): new
13642
13643         * dbus/dbus-list.c: fix docs typo
13644
13645         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13646         an object representing a handler for messages.
13647
13648 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13649
13650         * glib/dbus-glib.h:
13651         * glib/dbus-gthread.c: (dbus_gthread_init):
13652         Don't use the gdbus prefix for public functions.
13653
13654 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13655
13656         * Makefile.am:
13657         * configure.in:
13658         Add GLib checks and fixup .pc files
13659
13660         * glib/Makefile.am:
13661         * glib/dbus-glib.h:
13662         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13663         (gdbus_connection_check), (gdbus_connection_dispatch),
13664         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13665         (dbus_connection_gsource_new):
13666         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13667         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13668         * glib/test-dbus-glib.c: (message_handler), (main):
13669         Add GLib support.
13670
13671 2002-12-15  Harri Porten  <porten@kde.org>
13672
13673         * autogen.sh: check for libtoolize before attempting to use it
13674
13675         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13676         struct.
13677
13678         * .cvsignore: ignore more stamp files
13679
13680         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13681
13682         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13683         without make install.
13684
13685 2002-12-15  Havoc Pennington  <hp@pobox.com>
13686
13687         * dbus/dbus-threads.c: add thread stubs that a higher library
13688         layer can fill in. e.g. the GLib wrapper might fill them in with
13689         GThread stuff. We still need to use this thread API to
13690         thread-safe-ize the library.
13691
13692 2002-12-12  Havoc Pennington  <hp@pobox.com>
13693
13694         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13695         below new interfaces and include fewer system headers.
13696
13697         * dbus/dbus-sysdeps.c (_dbus_read): new function
13698         (_dbus_write): new function
13699         (_dbus_write_two): new function
13700         (_dbus_connect_unix_socket): new function
13701         (_dbus_listen_unix_socket): new function
13702
13703         * dbus/dbus-message-internal.h: change interfaces to use
13704         DBusString
13705
13706 2002-12-11  Havoc Pennington  <hp@pobox.com>
13707
13708         * dbus/dbus-types.h: add dbus_unichar
13709
13710         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13711
13712         * dbus/dbus-connection.c (dbus_connection_send_message): return
13713         TRUE on success
13714
13715         * dbus/dbus-transport.c: include dbus-watch.h
13716
13717         * dbus/dbus-connection.c: include dbus-message-internal.h
13718
13719         * HACKING: add file with coding guidelines stuff.
13720
13721         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13722         handling here, for security purposes (as in vsftpd). Not actually
13723         using this class yet.
13724
13725         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13726         system/libc usage here, as in vsftpd, for ease of auditing (and
13727         should also simplify portability). Haven't actually moved all the
13728         system/libc usage into here yet.
13729
13730 2002-11-25  Havoc Pennington  <hp@pobox.com>
13731
13732         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13733         always print the first verbose message.
13734
13735 2002-11-24  Havoc Pennington  <hp@pobox.com>
13736
13737         * test/echo-client.c, test/echo-server.c: cheesy test
13738         clients.
13739
13740         * configure.in (AC_CHECK_FUNCS): check for writev
13741
13742         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13743         function
13744
13745         * dbus/dbus-list.c (_dbus_list_foreach): new function
13746
13747         * dbus/dbus-internals.c (_dbus_verbose): new function
13748
13749         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13750         representing a server that listens for connections.
13751
13752         * dbus/.cvsignore: create
13753
13754         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13755         public API for reporting errors
13756
13757         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13758         public object representing a connection that
13759         sends/receives messages. (Same object used for
13760         both client and server.)
13761
13762         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13763         Basic abstraction for different kinds of stream
13764         that we might read/write messages from.
13765
13766 2002-11-23  Havoc Pennington  <hp@pobox.com>
13767
13768         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13769         _DBUS_INT_MAX
13770
13771         * dbus/dbus-test.c (main): add list test, and include
13772         dbus-test.h as intended
13773
13774         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13775         (_dbus_hash_table_remove_int): return value indicates
13776         whether the entry existed to remove
13777
13778         * dbus/dbus-list.c: add linked list utility class,
13779         with docs and tests
13780
13781         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13782         array sometimes.
13783
13784 2002-11-23  Havoc Pennington  <hp@pobox.com>
13785
13786         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13787         DBUS_END_DECLS to nothing, that should fix this once and for all
13788
13789         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13790
13791         * dbus/dbus-message.c, dbus/dbus-hash.c:
13792         add some missing @brief
13793
13794 2002-11-23  Havoc Pennington  <hp@pobox.com>
13795
13796         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13797         to avoid confusing Doxygen
13798
13799         * dbus/dbus-hash.c: @} not }@
13800
13801         * dbus/dbus-message.c (struct DBusMessage): split out
13802         internals docs
13803
13804 2002-11-23  Havoc Pennington  <hp@pobox.com>
13805
13806         * configure.in: pile on more warning flags if using gcc
13807
13808         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13809         to document static functions
13810
13811         * configure.in: add summary to end of configure so it
13812         looks nice and attractive
13813
13814         * dbus/dbus-hash.c: finish implementation and write unit
13815         tests and docs
13816
13817         * configure.in: add --enable-tests to enable unit tests
13818
13819         * dbus/dbus-test.c: test program to run unit tests
13820         for all files in dbus/*, initially runs a test for
13821         dbus-hash.c
13822
13823         * dbus/dbus-internals.h: file to hold some internal utility stuff
13824
13825 2002-11-22  Havoc Pennington  <hp@redhat.com>
13826
13827         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13828         "ported" away from Tcl
13829
13830         * dbus/dbus-types.h: header for types such as dbus_bool_t
13831
13832 2002-11-22  Havoc Pennington  <hp@redhat.com>
13833
13834         * dbus/dbus.h: fixups for doc warnings
13835
13836         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13837         macros
13838         (QUIET): make it quiet so we can see warnings
13839
13840         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13841
13842 2002-11-22  Havoc Pennington  <hp@redhat.com>
13843
13844         * Makefile.am: include "Doxyfile" target in all-local
13845
13846         * configure.in: generate the Doxyfile
13847
13848         * Doxyfile.in: move Doxyfile here, so we can use
13849         configure to generate a Doxyfile with the right
13850         version number etc.
13851
13852 2002-11-22  Havoc Pennington  <hp@redhat.com>
13853
13854         * dbus/dbus-message.c: move inline docs into .c file
13855
13856         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13857         so all docs are under doc/
13858         (MAN_EXTENSION): generate man pages. Use extension
13859         ".3dbus" which matches ".3qt" on my system,
13860         I guess this is OK, I don't know really.
13861         (FILE_PATTERNS): look for .c files not .h, makes sense
13862         for plain C I think
13863
13864 2002-11-22  Havoc Pennington  <hp@pobox.com>
13865
13866         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13867         because any app can be a server, and any app can be a client,
13868         the bus is a special kind of server.
13869
13870 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13871
13872         * Doxyfile : adding. Still needs Makefile rules to be generated
13873         automatically (just run "doxygen" in the toplevel dir for now to
13874         generate docs)
13875
13876         * dbus/dbus-message.h : Adding sample docs (javadoc since
13877         resembles gtk-doc a little more)
13878
13879         * dbus/dbus.h : Adding sample docs
13880
13881 2002-11-21  Havoc Pennington  <hp@redhat.com>
13882
13883         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13884         so we can allow ourselves to include files directly,
13885         instead of having to use dbus.h
13886
13887         * dbus/dbus.h: fill in
13888
13889         * dbus/dbus-message.h: sketch out a sample header file.
13890         Include griping if you include it directly instead of
13891         via dbus.h
13892
13893         * dbus/dbus-macros.h: new file with macros for extern "C",
13894         TRUE/FALSE, NULL, etc.
13895
13896         * doc/file-boilerplate.c: put include guards in here
13897
13898 2002-11-21  Havoc Pennington  <hp@redhat.com>
13899
13900         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13901
13902         * COPYING: include the GPL as well, and license code
13903         under both AFL and GPL.
13904
13905 2002-11-21  Havoc Pennington  <hp@redhat.com>
13906
13907         * acconfig.h: get rid of this
13908
13909         * autogen.sh (run_configure): add --no-configure option
13910
13911         * configure.in: remove AC_ARG_PROGRAM to make
13912         autoconf complain less. add AC_PREREQ.
13913         add AC_DEFINE third arg.
13914
13915 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13916
13917         * doc/Makefile.am:
13918         Fix references so we can distcheck.
13919
13920 2002-11-21  Havoc Pennington  <hp@redhat.com>
13921
13922         * Initial module creation
13923