* fix typos in Julio's previous patch which cause make check to fail
[platform/upstream/dbus.git] / ChangeLog
1 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
2
3         * dbus/dbus-signature.c:
4         fix typos in Julio's previous patch which cause make check to fail
5
6 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
7
8         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
9         In any case it was wrong since this is a test checking to see if
10         address parsing is correct.  There was no need to get the true
11         tmp directory.  
12
13 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
14
15         * dbus/dbus-macros.h: Revert the addition of stddef.h
16         as we should not be adding it to library headers 
17
18 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
19
20         * dbus/dbus-signature.c:
21         Fix the unit tests so that they work if assertions are not enabled.
22         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
23
24 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
25
26         * tools/run-with-tmp-session-bus.sh:
27         * test/name-test/run-test.sh:
28         Remove bashisms (patch from Julio M. Merino Vidal
29         <jmmv at NetBSD dot org>)
30
31 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
32
33         * configure.in: add a version (>= 2.6.0) check for libxml2
34
35 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
36
37         * configure.in: make sure the compiler supports -Wfloat-equal
38         
39         * bus/dir-watch-dnotify.c: move functional code after 
40         variable declerations (C99 fix)  (patches from Jens Granseuer
41         <jensgr at gmx dot net>
42
43 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
44
45         * dbus/dbus-macros.h:
46         add #include <stddef.h> so that Sun compilers don't complain about
47         the defining NULL
48
49 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
50
51         * dbus/dbus-sysdeps.c:
52         * dbus/dbus-address.c:
53         * bus/activation.c:
54         * test/shell-test.c:
55         don't hardcode tmp directory (patch from Dave Meikle 
56         <dmk at davemeikle dot co dot uk>)
57
58 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
59
60         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
61         Change an assert to a detailed warning and abort.  
62         When allocator->lock != mutex it indicates that the user has failed
63         to initalize threads before using the D-Bus library.  This warning
64         helps the user identify the issue and fix their app.
65
66 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
67
68         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
69         with cleanups of bugs found from Coverity reports:
70
71         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
72         close the file on error to avoid a leak
73
74         * bus/expirelist.c (bus_expire_list_test):
75         Check for NULL on dbus_new0
76
77         * bus/activation.c (update_directory):
78         remove dead code
79
80         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
81         Fix some leaks
82
83         * bus/bus.c (process_config_every_time):
84         Fixed a leak
85
86         * bus/desktop-file.c (parse_key_value):
87         Fixed leak
88
89         * bus/selinux.c (bus_selinux_id_table_insert):
90         Fixed leak
91
92 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
93
94         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
95         remove dead code
96
97 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
98
99         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
100         #!/bin/bash
101
102 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
103
104         * Doxyfile.in: fix the INPUT line so we can generate docs 
105         when sourcedir != builddir (patch from Cygwin Ports maintainer
106         <yselkowitz at users dot sourceforge dot net>
107
108 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
109
110         * dbus/dbus-sysdeps.h:
111         * dbus/dbus-sysdeps.c: 
112         * dbus/dbus-string.c: 
113         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
114         GLib's function which does the same thing
115
116         * configure.in:
117         * bus/Makefile.am:
118         * bus/dir-watch-default.c:
119         * bus/dir-watch-dnotify.c:
120         * bus/dir-watch-kqueue.c:
121         Add kqueue directory watching for freebsd and split the directory
122         watching code into seperate files per method/arch
123         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
124
125 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
126
127         * configure.in:
128         * tools/Makefile.am:
129         * tools/dbus-launch.c:
130         * bus/Makefile.am:
131         allow --with-dbus-daemondir switch to be used to make the
132         daemon install to a seperate bindir like /usr/libexec
133         (patch from Brian Cameron <brian dot cameron at sun dot com)
134
135 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
136
137         * bus/Makefile.am (install-data-hook): removed the slash after 
138         $(DESTDIR) so we don't get the double slash which does not work
139         in windows (patch from Andras Porjesz 
140         <andras dot porjesz at siemens dot com>)
141
142 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
143
144         * dbus/dbus-sysdeps.h:
145         * dbus/dbus-sysdeps.c: 
146           add _dbus_printf_length (patch from Peter Kümmel 
147           <syntheticpp at gmx dot net>)
148
149 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
150
151         * dbus/dbus-internals.c: unistd.h is not used 
152         (_dbus_verbose_real): only enable verbose printing 
153         if DBUS_VERBOSE environment var is set to '1'
154         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
155
156 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
157
158         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
159         so we still compile on older gcc (patch from Frederic Peters 
160         <fpeters at 0d dot be>
161
162 2006-08-04  Havoc Pennington  <hp@redhat.com>
163
164         * configure.in: add -Wdeclaration-after-statement
165
166         * dbus/dbus-connection.c: change all the pending call stuff to
167         reflect the fact that pending call operations use the connection
168         lock
169
170         * dbus/dbus-pending-call.c: add locking here
171
172         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
173         field const consistent with how message field is done
174
175 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
176
177         * s/D-BUS/D-Bus/g
178
179 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
180
181         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
182         <in7y118 at public.uni-hamburg dot de> - fix invalid
183         read/write reported by valgrind
184
185 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
186
187         * Released 0.91
188
189 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
190
191         * dbus/dbus-connection.c:
192         (_dbus_connection_attach_pending_call_unlocked):
193         (connection_timeout_and_complete_all_pending_calls_unlocked):
194         Make sure we set timeout_added on pending calls to FALSE when
195         we remove the timeout from the connection
196
197 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
198
199         * Removed some extra bindings stuff lingering around (thanks timo)
200         * dbus-pendingcall.c (_dbus_pending_call_new): 
201         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
202         when we tried to take a lock on an already locked connection
203
204 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
205
206         * Released 0.90
207
208 2006-07-17  Havoc Pennington  <hp@redhat.com>
209
210         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
211         ints, reported by Owen Taylor
212
213 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
214
215         * doc/TODO:
216         * dbus/dbus-bus.c:
217         * dbus-errors.c:
218         * dbus/dbus-marshal-validate.c:
219           Removed TODO items which were fixed or are no longer relevent
220
221 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
222
223         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
224         Remove stray files from the stripped bindings
225
226 2006-07-16  Havoc Pennington  <hp@redhat.com>
227
228         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
229         Improve the error message on reply timeout
230
231 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
232
233         * Remove all bindings
234
235 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
236
237         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
238         and set pending_reply out arg to NULL is connection is disconnected
239         (connection_timeout_and_complete_all_pending_calls_unlocked): New
240         static method for cleaning up pending calls on disconnect
241         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
242         calls queued timeouts on disconnect 
243
244          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
245         Remove 
246
247 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
248
249         * bus/activation.[ch] (bus_activation_list_services): new function to 
250         get the list of services that can be activated
251
252         * bus/dispatch.c: test coverage for the new bus method
253         ListActivatableNames
254
255         * bus/driver.c: new bus method ListActivatableNames to get the list of
256         services that can be activated
257
258         * doc/dbus-specification.xml: ListActivatableNames method documentation
259
260 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
261         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
262         source files
263
264 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
265         * dbus/dbus-message-factory.c:
266         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
267
268 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
269         * dbus/dbus-connection-internal.h:
270         * dbus/dbus-connection.c:
271         * file dbus/dbus-pending-call.c:
272         * dbus/dbus-pending-call.h:
273         Make DBusPendingCall an opaque type even to D-Bus internals
274
275 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
276
277         * dbus/dbus-connection.h: remove connection_disconnect and replace with
278         connection_close
279
280         * dbus/dbus-connection.c: include dbus-bus.h
281         (_dbus_connection_read_write_dispatch): make static
282
283 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
284
285         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
286         function
287         (dbus_connection_dispatch): On disconnect unref any shared connections
288
289         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
290         for cleaning up shared connections on disconnect
291         (internal_bus_get): get a hard refrence to shared connections when
292         they are created
293         
294         * doc/TODO: Remove items which are no longer relevent or have been fixed
295         Split 1.0 todo items with a 0.90 freeze todo list
296  
297 2006-06-14  Ross Burton  <ross@openedhand.com>
298
299         * glib/dbus-gobject.c:
300         Free a leaking GArray (surely not!) in dbus_g_method_return.
301
302 2006-06-14  Ross Burton  <ross@openedhand.com>
303
304         * tools/Makefile.am:
305         * tools/dbus-monitor.c:
306         Don't use the GLib bindings in dbus-monitor (patch from Ralf
307         Habacker).
308         
309 2006-06-14  Ross Burton  <ross@openedhand.com>
310
311         * tools/dbus-print-message.c:
312         Also print the object path when outputting signals or method calls.
313
314 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
315
316         * qt/src/Makefile.am: install the qdbus.h header.
317         This allows people to actually use the installed code.
318
319 2006-06-12  Ross Burton  <ross@openedhand.com>
320
321         * glib/dbus-gproxy.c:
322         Don't leak a GArray when firing signals (thank Rob Taylor for review).
323
324 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
325
326         * Released 0.62
327
328 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
329
330         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
331         break pedantic builds. Closes bug 6043 (patch approved by
332         Havoc back in February).
333
334 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
335
336         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
337         that took a QDBusMessage parameter.
338         * qt/src/qdbusbus.h: Add a default flag for RequestName.
339         * qt/tools/dbus.cpp: Don't use automatic call because we might
340         be calling an async method: request a reply.
341
342 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
343
344         * test/qt/*: Update the testcases, including testing the new
345         functionality of sending null QByteArray and QString over the
346         bus. Add new headertest test and restore the old
347         qdbusxmlparser test.
348
349 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
350
351         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
352         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
353
354         * qt/examples/Makefile.am:
355         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
356         form.
357
358         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
359         QByteArray() (nulls) over the bus.
360         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
361         the one that has the signature suffix stripped.
362         * qt/src/qdbusreply.h: Make some methods const.
363
364 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
365
366         Patch from Timo Hoenig <thoenig@suse.de>.
367
368         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
369         required during build to EXTRA_DIST.
370         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
371         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
372         * configure.in: Fix "make dist", take care that the Makefile for
373         qt/dbus is being generated.
374
375 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
376
377         * bus/bus.c: Fix eavesdropping on method calls
378
379 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
380
381         * configure.in:
382         * dbus/dbus-userdb-util.c:
383         Add Solaris console owner patch from Artem Kachitchkine
384
385 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
386
387         * qt/Makfile.am:
388         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
389         reorganisation. Thanks to Timo Hoenig for pointing this out.
390
391 2006-06-06  Robert McQueen  <robot101@debian.org>
392
393         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
394           call to dbus_g_type_get_struct.
395
396 2006-06-06  Robert McQueen  <robot101@debian.org>
397
398         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
399           pointers were put into a GPtrArray-based specialised collection, and
400           then freed along with the array. GValues which you add into
401           collections or maps which have the NOCOPY flag set are assumed to not
402           belong to the caller, so rather than the existing pointer-stealing
403           semantics, they are copied instead. Given that the main consumers of
404           this abstraction are the bindings themselves, I don't think this is
405           too bad, but others should watch their choice of take vs set_static.
406
407 2006-06-06  Robert McQueen  <robot101@debian.org>
408
409         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
410           of g_slist_prepend not being used. Fixed copying of slist-based
411           specialised collections, then wrote a test case and found that it was
412           all broken. Went on to fix iterating and appending too. Good thing
413           nobody uses this code yet.
414
415 2006-06-06  Robert McQueen  <robot101@debian.org>
416
417         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
418           the iterators use gvalue_take_ptrarray_value (the GValues themselves
419           are discarded without unsetting, so it makes no difference whether
420           we take or set_static). Remove cases for G_TYPE_POINTER because
421           there really is nothing useful we can do with them in our
422           specialised types - we *need* boxed copy/free functions at the very
423           least.
424
425 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
426
427         * qt/dbus: Add directory. I had forgotten to add this
428         yesterday after the move...
429
430         * qt/examples/Makefile.am:
431         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
432
433         * qt/tools/Makefile.am:
434         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
435         Added feature to get and set properties.
436         Added validation of service, object path and interface names.
437
438         * qt/tools/dbusidl2cpp.cpp: Two new features:
439         1) Allow specifying both the header and the source file names,
440         by separating them with a colon.
441         2) Don't write an interface output if the -p switch wasn't
442         given, but the -a was.
443
444         * qt/src/*: Fix usage of Iterators and ConstIterators.
445         Fix shadowing of variables by other variables (-Wshadow).
446         Fix keyword-cleanliness in headers.
447         Fix ASCII-cast (QLatin1String, QLatin1Char).
448         Fix validation of member names.
449         Add extra checking of introspection data during XML parsing.
450         Various bug fixes.
451
452 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
453
454         * dbus/Makefile.am:
455         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
456         qt/dbus/qdbus.h now.
457
458 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
459
460         * configure.in: Make --disable-qt actually do
461           something. Patch inspired by Zack Rusin.
462
463 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
464
465         * qt/: Update to Subversion r548032.
466         This includes a big reorganisation of the files inside the
467         subdir.
468
469 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
470
471         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
472         clear:  
473         "Failed to connect to socket <host>:<port> <error>" instead of
474         "Failed to connect to socket <host>: <error>:<port>"
475
476         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
477         for a tcp transport. 
478
479 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
480
481         * qt/*: Update the QtDBus bindings up to revision 546310 in
482         Subversion.
483         This adds the dbuscpp2xml tool, that parses a C++ header and
484         outputs a D-BUS Introspection XML.
485
486 2006-05-21  Havoc Pennington  <hp@redhat.com>
487
488         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
489         is not NULL when it shouldn't be. Also a couple of possible fixes
490         for #4637 though I don't understand why the bug happens, to be
491         honest... also the object constructor has an assert name != NULL
492         and the name is only currently NULL for peer-to-peer proxies that 
493         I don't think anyone uses? So it should be asserting.
494         Anyway, for now at least see if we get an earlier assertion failure.
495
496         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
497         apparently broken code to be sure the tests fail and someone 
498         will fix them...
499
500 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
501
502         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
503         and arrays when they had a single element: has_next returns
504         false, even before you read the element. So, instead, check
505         the array length.
506
507 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
508
509         * qt/qdbusmessage.cpp:
510         * qt/qdbustypehelper_p.h:
511         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
512         the list is a const-reference
513
514 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
515
516         * Adding old doc patch that never got applied
517         
518         * dbus/bus.c (dbus_bus_add_match): Add documentation
519
520         * doc/dbus-specification.xml: Add documentation for the match rules
521           and the AddMatch and RemoveMatch methods
522
523 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
524
525         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
526         call (r535506)
527
528         * qt/dbusidl2cpp.cpp:
529         * qt/qdbusabstractadaptor.cpp:
530         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
531         sibling of the QDBusAbstractAdaptor objects instead of the
532         parent. (r535848)
533
534         * qt/dbusidl2cpp.cpp:
535         * qt/qdbusabstractinterface.cpp:
536         * qt/qdbusabstractinterface.h:
537         * qt/qdbusabstractinterface_p.h:
538         * qt/qdbusinterface.cpp: Make properties in interfaces
539         actually work. The code that was generated would not compile,
540         due to moc calls to functions that did not exist. They now
541         shall. (r536571)
542
543 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
544
545         * Makefile.am:
546         * configure.in:
547         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
548         Thanks to Brad Hards for providing the patch
549
550 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
551
552         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
553         call. (r535506)
554
555 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
556
557         * qt/examples/dbus.cpp: Enhance error messages and use
558         QDBusInterfacePtr.
559
560 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
561
562         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
563         and disable the copy operators. (r533772, r534746)
564
565         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
566
567         * qt/qdbusabstractinterface.cpp:
568         * qt/qdbusabstractinterface.h: Change the default call mode to
569         not use the event loop. Add convenience call() methods that
570         take a CallMode parameter. (r534042)
571
572         * qt/qdbusconnection.h: Change the default call mode to not
573         use the event loop. (r534042)
574
575         * qt/qdbusinterface.cpp:
576         * qt/qdbusinterface.h: Add a method to tell us if the
577         interface is valid (since we don't return a null pointer
578         anymore) (r534099)
579
580         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
581         (r534101)
582
583         * qt/qdbusinternalfilters.cpp: Decouple the introspection
584         function in two so taht we get the chance to introspect
585         without having a QDBusMessage (r534102)
586
587         * qt/qdbusbus.h:
588         * qt/qdbusconnection.cpp:
589         * qt/qdbusconnection_p.h:
590         * qt/qdbusintegrator.cpp: Keep a list of our own names to
591         avoid a round-trip to the server when attempting to introspect
592         one of our own objects. Also make sure the filter functions
593         match the empty interface as well. (r534108)
594         Don't keep the connection names. Instead, trust the unique
595         connection name (r534111)
596         Remove event loop usage (r534112)
597
598 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
599
600         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
601         Brad Hards.
602
603 2006-04-28  Robert McQueen  <robot101@debian.org>
604
605         * glib/dbus-gproxy.c: Fix properties so that they can be given in
606         any order, making it easier for people who inherit from this
607         object.
608
609 2006-04-28  Robert McQueen  <robot101@debian.org>
610
611         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
612         of memory from within pointer arrays and lists. Fixes bug #6300.
613
614 2006-04-28  Robert McQueen  <robot101@debian.org>
615
616         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
617         generating struct signatures. Fixes bug #6083.
618
619 2006-04-28  Robert McQueen  <robot101@debian.org>
620
621         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
622         to qdbusconnection_p.moc.
623
624 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
625
626         * README, INSTALL: Doc fixes
627         Patch from Brad Hards <bradh at frogmouth.net>
628
629 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
630
631         * qt/examples/dbus.cpp: Use the new merged-interface mode for
632         the dynamic meta object. No need to guess which interface to
633         call.
634
635 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
636
637         * qt/qdbusconnection_p.h:
638         * qt/qdbusmetaobject.cpp:
639         * qt/qdbusmetaobject_p.h:
640         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
641         for the dynamic meta object. No need to guess which
642         interface to call.
643         * qt/qdbusabstractinterface_p.h:
644         * qt/qdbusconnection.cpp:
645         * qt/qdbusintegrator.cpp:
646         * qt/qdbusinterface.cpp:
647         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
648         Add a QDBusRef that looks and behaves like DCOPRef.
649
650 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
651
652         * dbus/dbus-connection.c: Interfaces are optional in method
653         calls, so don't give up if the interface parameter is NULL.
654         Patch reviewed by Havoc Pennington.
655
656 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
657
658         * qt/qdbusreply.h: Add default constructor and operator=
659           (r532625)
660         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
661           in public headers (r532952)
662         * qt/qdbusabstractinterface.cpp:
663         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
664           make it the default (r532951)
665
666 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
667
668         * dbus/dbus-connection.c: Fix asserts
669         Patch from Tim Moloney <t.moloney at verizon.net>
670
671 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
672
673         * mono/Connection.cs, mono/Message.cs: Check Target type
674         Patch from Aaron Bockover (abockover at novell.com)
675
676 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
677
678         * INSTALL: fine-tune the requirements for the Qt4 binding.
679
680 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
681
682         * tools/dbus-print-message.c: Added support for printing of all 
683           remaining data types. Fixed logic for indentation of compound
684           data types.
685         
686 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
687
688         * INSTALL: fill out content of file providing DBus specific
689           build installations, followed by generic Auto* INSTALL file
690           content
691         
692 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
693
694         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
695           Patch by Stefan Eilers. (r529537)
696
697 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
698
699         * qt/qdbusinternalfilters.cpp: Don't show the parent's
700           contents (r528208)
701
702 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
703
704         * qt/Makefile.am: fix the dependency for
705           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
706           not in qdbusconnection.cpp.
707           Thanks to Jakub Stachowski <stachowski@hypair.net> for
708           spotting this.
709
710 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
711
712         * qt/examples/listnames.cpp:
713         * qt/examples/Makefile.am: Three ways to list the names on the
714           bus.
715
716 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
717
718         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
719           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
720
721 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
722
723         Merge from Subversion:
724         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
725           something that exists (r526315)
726         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
727           slots/signals (r526316)
728         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
729           also return an unknown-method error if the parameters don't
730           match for org.freedesktop.DBus.Properties. (r526842)
731         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
732         * qt/qdbusintegrator.cpp: Restore the proper order of
733           delivery: don't make method returns be delivered on priority
734           (r528150)
735
736 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
737
738         * configure.in qt/Makefile.am: add qt/examples
739         * qt/examples: Add QtDBus example programs:
740           - hello: Hello, World
741           - ping: Simple method-calling program
742           - pong: Simple object-exporting program (not using adaptors)
743           - complexping: Interactive method-calling program 
744                 (also gets and sets properties).
745           - complexpong: Sample program exporting methods, signals and
746                 properties, using adaptors.
747           - dbus: Simple implementation of a generic method-calling
748                 program, similar to 'dbus-send', but with semantics
749                 similar to 'dcop'.
750           - chat: Simplistic chat program, implemented using signals
751                 and the system bus. Looks like IRC.
752
753 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
754
755         * configure.in: Detect QtGui (necessary for one of the
756           example programs). Note: this increases the minimum required
757           version of Qt to 4.1.3.
758
759 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
760
761         * test/qt/*: Sync with KDE Subversion revision 523647.
762         Update the testcases to the new API. Remove testcases for
763         classes that are no longer public or have been removed.
764
765 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
766
767         * qt/*: 
768         * dbus/qdbus.h: Sync with KDE Subversion revision
769         523647. Hopefully, this will be the last of the
770         source-incompatible changes. Documentation has been improved;
771         support for QList<basic-types> has been added; QDBusObject is
772         gone; QDBus(Abstract)Interface is now a QObject with
773         auto-generated meta-object; QDBusIntrospection is marked
774         private, since QMetaObject can be used now; lots of bugfixes.
775
776 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
777
778         Patch from Milosz Derezynski <internalerror at gmail.com>
779         
780         * configure.in:
781         Output the service directory in the configure summary
782
783         * dbus-1.pc.in:
784         Add session_bus_services_dir
785
786 2006-03-10  Ross Burton  <ross@openedhand.com>
787
788         * tools/dbus-print-message.c:
789         Add support for object paths and signatures.
790
791 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
792
793         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
794         config reload.
795         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
796         information caches
797         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
798         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
799         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
800         * dbus/dbus-userdb.h: Add function to flush all user/group information
801         caches.
802
803 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
804
805         * qt/dbusidl2cpp.cpp:
806         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
807         for dcopidl2cpp, found in the KDE installations (or the more
808         modern kalyptus): generate Qt4 C++ code for the input XML
809         introspection. Currently no IDL parsing.
810
811 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
812
813         * test/qt/*: Update the self-tests.
814
815 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
816
817         * qt/*: 
818         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
819         represents the first feature-complete version of the Qt4
820         bindings since I took ove maintainership.
821
822 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
823
824         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
825         dir. This is C++, so we can't use the DBus ones.
826
827 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
828
829         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
830         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
831
832 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
833
834         * dbus/dbus-connection.c: 
835         (_dbus_connection_block_pending_call):
836         Check to see if our data has already been read off the connection
837         by another blocking pending call before we block in poll.
838         (check_for_reply_and_update_dispatch_unlocked):
839         Code taken from _dbus_connection_block_pending_call - checks for
840         an already read reply and updates the dispatch if there is one.
841
842         * test/name-test/test-pending-call-dispatch.c:
843         New test for making sure we don't get stuck polling a 
844         dbus connection which has no data on the socket when
845         blocking out of order on two or more pending calls.
846
847 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
848
849         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
850         make/automake don't detect that we're talking about the same
851         .lo file if I specify the full path to the source files.
852
853 2006-02-26  Havoc Pennington  <hp@redhat.com>
854
855         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
856
857         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
858         session bus variable is unset, suggest "man dbus-launch" and "man
859         dbus-daemon" to figure out how to fix the problem
860
861 2006-02-25  Havoc Pennington  <hp@redhat.com>
862
863         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
864         should make this thing use the new glib options parser
865
866 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
867
868         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
869         .lo files taking moc sources.
870
871 2006-02-25  Havoc Pennington  <hp@redhat.com>
872
873         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
874         and install it as a public header
875
876 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
877
878         * Released 0.61
879
880 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
881         
882         * proxies.py: Fix the callchain
883
884 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
885         
886         * patch from Sjoerd Simons <sjoerd at debian.org>:      
887
888         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
889         dbus/dbus-sysdeps.c
890
891         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
892         call _dbus_group_info_free_allocated which causes infinite loop,
893         correctly call _dbus_group_info_free
894
895 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
896
897         * qt/qdbusinterface_p.h:
898         * qt/qdbusinterface.cpp: Use the standard
899         org.freedesktop.DBus.Method.NoReply annotation for the "async"
900         calls instead of creating one for us.
901
902         * qt/qdbusconnection_p.h:
903         * qt/qdbusintegrator.cpp: Remove debugging code.
904
905         * qt/qdbusintegrator.cpp:
906         * qt/qdbusmessage.cpp:
907         * qt/qdbusmessage_p.h:
908         * qt/qdbusmessage.h: Change the behaviour of automatic
909         reply-sending: now a reply is always sent, unless the caller
910         didn't request one or if the user slot has already sent one.
911
912 2006-02-16  Robert McQueen  <robot101@debian.org>
913
914         * configure.in: Patch from Debian packages by Sjoerd Simons
915         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
916         arguments so it's possible to build both bindings in the
917         same tree.
918
919         * qt/Makefile.am: Fix truncated value so that make dist works.
920
921 2006-02-16  Robert McQueen  <robot101@debian.org>
922
923         * acinclude.m4, configure.in: Patch from Brad Hards
924         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
925         improving quoting, re-ordering a few checks, and a few other
926         aesthetic tidy-ups.
927
928 2006-02-16  Robert McQueen  <robot101@debian.org>
929
930         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
931         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
932         assertion that the next element to read from the iter is fixed in
933         size. This is not the case when you are at the end of the iter,
934         because the next element type is INVALID.
935
936         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
937         a bogus assert which means that you may not initialise a 0-length
938         string unless you provide a non-NULL pointer. This prevented
939         you from marshalling messages containing zero-length arrays in
940         some cases.
941
942         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
943         from Rob to correct bogus asserts when trying to demarshal an
944         array and get_fixed_array got you 0 elements. Append nothing to
945         the GArray in this case.
946
947         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
948         an empty array via the glib bindings. Without all of the above
949         patches, this new test fails.
950
951 2006-02-16  Robert McQueen  <robot101@debian.org>
952
953         * glib/dbus-gmain.c: Make the previous commit compile.
954
955         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
956         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
957         specify sender_keyword="foo", path_keyword="bar" when adding
958         a signal listener, so that you can bind to signals generically
959         but still do something useful in your callback.
960
961         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
962         chars so that they're not cast to chars and made negative. Thanks
963         to Jakub Stachowski for reporting this and testing the fix.
964
965 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
966
967         * dbus/dbus-glib.h:
968         * glib/dbus-gmain.h:
969         (dbus_g_connection_open): new method for openning
970         a connection to an arbitrary address in the glib bindings
971
972         * ChangeLog: checkin last entry which doesn't seem to be commited
973
974 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
975
976         * tools/dbus-launch.c: Fixed sh syntax output
977
978 2006-02-13  Robert McQueen  <robot101@debian.org>
979
980         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
981         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
982         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
983         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
984         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
985         missing piece of the glib bindings jigsaw puzzle. This modifies
986         the existing specialised types to have N type parameters (rather
987         than the current 1 or 2 for arrays and dictionaries respectively).
988         You can then use this to get a glib type to represent any arbitrary
989         D-Bus struct type using dbus_g_type_get_struct. The only
990         implementation of these types is with GValueArrays as before,
991         but it's now possible to store these in arrays, emit them in
992         signals, etc.
993
994 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
995
996         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
997         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
998         <thiago.macieira at trolltech.com>
999
1000 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1001
1002         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1003         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1004
1005 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1006
1007         * bus/connection.c (bus_connections_expect_reply): Make
1008         pending reply limit not common to all connections (Bug #5416)
1009         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1010
1011 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1012
1013         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1014
1015 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1016
1017         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1018         patch from Doug Goldstein <cardoe at gentoo.org>
1019
1020 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1021
1022         * mono/Arguments.cs: Fix a magic number in the mono bindings
1023         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1024
1025 2006-01-27  Robert McQueen  <robot101@debian.org>
1026
1027         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1028         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1029         when generating the client-side methods, instead of overloading
1030         CSymbol which broke everything horribly. My apologies.
1031
1032 2006-01-27  Robert McQueen  <robot101@debian.org>
1033
1034         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1035         by me and Rob Taylor to add a simple_free function to D-Bus map
1036         and collection types, which allows those types which can be freed
1037         with a GDestroyNotify (such as GHashTables and GArrays, but not
1038         GPtrArrays) to be stored as the values in hashtables.
1039
1040         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1041         Patch by Rob Taylor to add nested dicts to the glib tests to check
1042         the above code works, and appears not to leak when called repeatedly.
1043
1044 2006-01-27  Robert McQueen  <robot101@debian.org>
1045
1046         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1047         to free a D-Bus allocated string with dbus_free () instead of
1048         g_free ().
1049
1050 2006-01-27  Iain Holmes  <iain@openedhand.com>
1051
1052         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1053         method from being called multiple times.
1054
1055 2006-01-19  Robert McQueen  <robot101@debian.org>
1056
1057         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1058         <rob.taylor@collabora.co.uk> to add support for generating bindings
1059         to arrays that are represented as GPtrArrays rather than GArrays (ie
1060         size-variable things, such as strings, objects, structs, etc).
1061
1062 2006-01-05  Robert McQueen  <robot101@debian.org>
1063
1064         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1065         <ricardo.kekki@movial.fi> to make it possible to inherit from
1066         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1067         a private part, and moving the setting of the DBusGProxyManager into a
1068         connection property, allowing proper GObject construction.
1069
1070 2006-01-05  Robert McQueen  <robot101@debian.org>
1071
1072         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1073         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1074         annotations when generating glib client bindings.
1075
1076 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1077
1078         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1079
1080         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1081
1082 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1083
1084         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1085
1086 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1087
1088         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1089
1090 2005-12-19  Ross Burton  <ross@openedhand.com>
1091
1092         * doc/dbus-tutorial.xml:
1093         Document the Glib client-side bindings, and list all possible annotations.
1094
1095 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1096
1097         * dbus/bus.c (dbus_bus_release_name): Add documentation
1098
1099 2005-12-06  Robert McQueen  <robot101@debian.org>
1100
1101         * python/service.py: s/sucessful/successful/ so we're allocating to
1102         and reading from the same variable. Oops.
1103
1104 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1105
1106         * Released 0.60
1107
1108 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1109
1110         * test/qt/Makefile.am: build from srcdir
1111
1112         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1113         Note - this code is wrong and needs to be fixed by the Qt binding
1114         developers.  The flags should be treated as bitfields and not enums.
1115
1116         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1117
1118 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1119
1120         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1121           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1122           in production code
1123
1124 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1125
1126         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1127         method for getting messages off the bus in the absence of a
1128         mainloop.  This method is much like 
1129         dbus_connection_read_write_dispatch except it does not dispatch
1130         the messages to a registered filter function.  Instead it
1131         allows a developer to process messages by directly popping
1132         them off the bus.
1133
1134 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1135
1136         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1137         the parser to continue instead of returning error
1138         (bus_desktop_file_load): Do not free parser data when
1139         parse_section_start or parse_key_value fails because it was 
1140         already freed by parser_free (patch from Carlos Garcia Campos  
1141         <carlosgc at gnome.org>)
1142
1143 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1144
1145         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1146         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1147         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1148         test/test-segfault.c, test/test-utils.c,
1149         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1150         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1151         Various cleanup of dead code and compiler warnings (patch from
1152         Kjartan Maraas <kmaraas at gnome.org>) 
1153
1154 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1155
1156         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1157         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1158
1159 2005-11-27  Robert McQueen  <robot101@debian.org>
1160
1161         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1162         part of the preceding one. Oops. Merge patch by Johan Hedberg
1163         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1164         on big-endian platforms.
1165
1166         * test/python/test-client.py: Add some 16-bit integers to the test
1167         values.
1168
1169 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1170
1171         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1172         method return message for property getters
1173
1174 2005-11-27  Robert McQueen  <robot101@debian.org>
1175
1176         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1177         with type v of an instance of dbus.Variant(foo, type='x') caused
1178         it to be boxed twice before sending over the bus.
1179
1180         * python/dbus_bindings.pyx, python/service.py,
1181         test/python/test-client.py: Update the constants for the new
1182         request_name flags, and update comments/test cases now that queueing
1183         is the default action.
1184
1185 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1186
1187         * configure.in:
1188         - Change version to 0.60 for impending release
1189         - upped the sonames because of ABI and API breakage
1190
1191 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1192
1193         * configure.in: Add test/name-test/Makefile to the generated
1194         Makefile list
1195
1196         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1197         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1198         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1199         not to queue an ower if it can't be the primary owner
1200
1201         * bus/bus.h: Add new internal BusOwner struct
1202
1203         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1204         to bus_registry_ensure and don't set the prohibit_replacement flag
1205         since they are now set per BusOwner and not per name.
1206         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1207         that returns the list of connections in a name's connection queue
1208         
1209         * bus/services.c (struct BusService): remove prohibit_replacement field
1210         (struct BusOwner): new struct for keeping track of queued connections
1211         and their associated flags for the queue
1212         (struct BusRegistry): add a BusOwner memory pool
1213         (bus_registry_new): initialize the BusOwner memory pool
1214         (bus_registry_unref): free the BusOwner memory pool
1215         (_bus_service_find_owner_link): new internal method for
1216         searching the queue for a specific connection
1217         (bus_owner_set_flags): new method for adding setting the flags on a
1218         bus owner
1219         (bus_owner_new): new method that creates a BusOwner object from the
1220         pool and sets its flags
1221         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1222         (bus_registry_ensure): Add the flags parameter
1223         (bus_registry_acquire_service): Switch from using raw connections to
1224         using the BusOwner struct
1225         Add new state machine for dealing with the new set of flags
1226         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1227         cancel_ownership, free_ownership_cancel_data, 
1228         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1229         restore_ownership, free_ownership_restore_data, 
1230         add_restore_ownership_to_transaction): Switch to using BusOwner 
1231         instead of raw connections
1232         (bus_service_add_owner): Add flags parameter
1233         Switch to using BusOwner instead of raw connections
1234         Add state machine for dealing with the new set of flags
1235         (bus_service_swap_owner): Swaps the first and second owners in the
1236         queue.  Used to make sure proper signals are sent when a service looses 
1237         or gains primary ownership.  We never insert an owner at the top of the
1238         queue.  Instead we insert it in the second position and then swap.
1239         (bus_service_remove_owner): Remove the owner from the queue sending
1240         out the NameLost and NameOwnerChanged signals if the we were the 
1241         primary owner
1242         (bus_service_get_primary_owners_connection): New method that extracts
1243         the connection from the primary owner
1244         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1245         connection
1246         (bus_service_get_allow_replacement): Changed from the old 
1247         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1248         primary owner and returns if it can be replaced or not
1249         (bus_service_set_prohibit_replacement): removed
1250         (bus_service_has_owner): returns TRUE if and owner with
1251         the specified connection exists in the queue
1252         
1253         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1254         method that only compiles if tests are enabled.  Allows us to get the 
1255         unique name of a connection so we can check it against the queue when
1256         doing regression tests
1257
1258         * bus/activation.c (bus_activation_send_pending_auto_activate),
1259         bus/dispatch.c (bus_dispatch),  
1260         bus/driver.c (bus_driver_handle_get_service_owner, 
1261         bus_driver_handle_get_connection_unix_user, 
1262         bus_driver_handle_get_connection_unix_process_id,
1263         bus_driver_handle_get_connection_selinux_security_context),
1264         bus/signals.c (connection_is_primary_owner): 
1265         use bus_service_get_primary_owners_connection instead of
1266         bus_service_get_primary_owner
1267
1268         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1269         _dbus_listen_unix_socket): Calculate the length of the socket
1270         path and use that instead of using a fixed length which was
1271         causing socket names to contain many trailing Nul bytes.
1272
1273         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1274         (dbus_g_method_get_sender): New method for extracting the sender 
1275         from a DBusGMethodInvocation
1276         (dbus_g_method_return_get_reply): changed name to 
1277         dbus_g_method_get_reply
1278         (dbus_g_method_return_send_reply): changed name to
1279         dbus_g_method_send reply
1280
1281         * doc/dbus-specification.xml: New docs that describe how the new
1282         queueing system works and talks about the changes to the how
1283         we specify socket names
1284
1285         * glib/examples/example-service.c, 
1286         glib/examples/example-signal-emitter.c,
1287         glib/examples/statemachine/statemachine-server.c:
1288         Changed the RequestName flags to the new system
1289
1290         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1291         regression test suite for testing various states of the new
1292         queueing system
1293         
1294 2005-11-15  Robert McQueen  <robot101@debian.org>
1295
1296         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1297         Taylor to add two methods, dbus_g_method_return_get_reply and
1298         dbus_g_method_return_send_reply, to allow you to get the reply
1299         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1300         and send it. The GLib bindings can't marshal a return value of
1301         something like a(s) if the array is empty - ultimately they should be
1302         made to heed the signature of the out arguments as the Python bindings
1303         now can, but this is a workable interim solution which might have
1304         other applications.
1305
1306 2005-11-15  Robert McQueen  <robot101@debian.org>
1307
1308         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1309         method to org.freedesktop.DBus to release a bus name or give up
1310         waiting in the queue for it.
1311
1312         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1313         dbus_bus_release_name method to send the ReleaseName method calls.
1314         Add constants for the return values to dbus/dbus-shared.h.
1315
1316         * doc/dbus-specification.xml: Document the new ReleaseName method
1317         in the specification.
1318
1319         * python/dbus_bindings.pyx: Add a low-level python binding for the
1320         release name method.
1321
1322         * python/exceptions.py, python/service.py: Make freeing BusName
1323         objects release the name. Add a NameExistsException, and fix a
1324         bug with creating UnknownMethodException.
1325
1326         * test/python/test-client.py: Add tests for freeing BusName
1327         objects causing names to be released.
1328
1329 2005-11-14  Robert McQueen  <robot101@debian.org>
1330
1331         * python/service.py: Include the traceback in the error reply when we
1332         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1333
1334 2005-11-14  David Zeuthen  <davidz@redhat.com>
1335
1336         Patch from Timo Hoenig <thoenig@suse.de>.
1337
1338         * bus/bus.c: I've recently investigated why the automatic reload
1339         of configuration files does not work as expected.
1340
1341         Currently, reloading configuration files does only work when
1342         running dbus-daemon with --nodaemon.  If we are running as daemon
1343         we're hitting a dnotify bug once we fork the process.
1344
1345         We're initializing the dnotify fds before calling fork().  Once
1346         the child process forked it does still have the fds (and they
1347         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1348         getting SIGIO as changes are made to the configuration files.
1349
1350         The attached patch moves the initialization of the dnotify fds to
1351         process_config_postinit().  This is safe for all current code
1352         paths and solves the dnotify disfunction.  If we're running
1353         dbus-daemon as daemon the fds for dnotify are now being
1354         initialized after fork() for the child process.
1355
1356         * configure.in: The current configure.in check for dnotify probes
1357         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1358         match for 'xlinux', too. Additionally I have adapted the configure
1359         option's style to match with the others.
1360
1361 2005-11-14  Robert McQueen  <robot101@debian.org>
1362
1363         * python/decorators.py, python/service.py: Add a new argument to the
1364         dbus.service.method decorator called sender_keyword, which if set,
1365         specifies the name of an argument which will be provided the bus
1366         name of the method caller.
1367
1368         * test/python/test-client.py, test/python/test-service.py: Add a
1369         method and test to check the sender_keyword functionality.
1370
1371 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1372
1373         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1374         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1375         Simons <sjoerd at luon.net>)
1376
1377         * AUTHORS: Add Robert McQueen for his work on the Python
1378         Bindings and other parts of D-Bus
1379
1380 2005-11-07  Robert McQueen  <robot101@debian.org>
1381
1382         * python/decorators.py: Change emit_signal function to use the
1383         signature annotation of the signal when marhsalling the arguments from
1384         the service. Fix a bug where the code checking signature length
1385         against argument length referenced the wrong variable.
1386
1387         * python/introspect_parser.py: Avoid adding the type signature of
1388         signal arguments to any methods which occur after them in the
1389         introspection data (!) by making the parser a little more careful
1390         about its current state.
1391
1392         * python/service.py: Remove debug prints from last commit (again :D).
1393
1394         * test/python/test-client.py, test/python/test-service.py: Add test
1395         signals with signature decorators to test the strict marshalling code
1396         gives errors at the right time. Could do with checking the signals
1397         actually get emitted too, given that the test does nothing with
1398         signals at the moment...
1399
1400 2005-11-07  Robert McQueen  <robot101@debian.org>
1401
1402         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1403         instances to stop madness of creating new instances representing
1404         the same bus connection all the time, rendering any tracking of
1405         match rules and bus names quite meaningless. Caught a bug where
1406         the private argument to SessionBus() and friends was being passed
1407         in as use_default_mainloop by mistake. Still some problems with
1408         multiple dbus_binding.Connection instances representing the same
1409         low-level connection (eg when you use both SessionBus() and
1410         StarterBus() in same process), but it's a lot better now than it
1411         was.
1412
1413         * python/dbus_bindings.pyx: Add constants with the return values
1414         for bus_request_name().
1415
1416         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1417         and retrieve the same instances for the same name, so deletion can be
1418         done with refcounting. Also now throws some kind of error if you
1419         don't actually get the name you requested, unlike previously...
1420
1421         * test/python/test-client.py: Add tests for instance caching of buses
1422         and bus name objects.
1423
1424 2005-11-04  Robert McQueen  <robot101@debian.org>
1425
1426         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1427         marshalling of boolean values. Add some booleans to the values in
1428         the test client.
1429
1430         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1431         argument to the dbus.service.method decorator, which allows you to
1432         name arguments to take two callback functions for replying with
1433         return values or an exception.
1434
1435         * test/python/test-client.py, test/python/test-service.py: Add test
1436         case using asynchronous method reply functions, both return values and
1437         errors, and from within both the function itself and from a mainloop
1438         callback.
1439
1440         * python/decorators.py, python/service.py: Perform checking that the
1441         number of method/signal arguments matches the number of types in the
1442         signature at class loading time, not when you first introspect the
1443         class.
1444
1445         * python/service.py: Remove debug print left by the last commit.
1446
1447 2005-11-03  Robert McQueen  <robot101@debian.org>
1448
1449         * python/service.py: Heavy refactoring of method invocation, with
1450         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1451         in favour of a new _message_cb that uses seperate functions for
1452         looking up the method to call, marshalling the return values, and
1453         sending exceptions as errors, and is easier to follow as a
1454         consequence.  Fixes some corner cases about returning things that
1455         don't match your declared out_signature, allows exceptions to define
1456         _dbus_error_name and have it be sent over the bus as the error name,
1457         and paves the way for cool stuff like heeding the message no reply
1458         flag, asynchronous method implementations, informing the method of the
1459         sender, and including backtraces in the error messages.
1460
1461         * test/python/test-client.py: Catch and print exceptions thrown in the
1462         async callback tests, rather than passing them to the low-level
1463         bindings to be ignored in a noisy and frustrating manner.
1464
1465 2005-11-03  Robert McQueen  <robot101@debian.org>
1466
1467         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1468         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1469         tweak others to be consistent.
1470
1471         * test/python/test-client.py: Tweak output of testInheritance.
1472
1473 2005-10-29  Robert McQueen  <robot101@debian.org>
1474
1475         * python/service.py: Major changes to allow multiple inheritance
1476         from classes that define D-Bus interfaces:
1477         
1478          1. Create a new Interface class which is the parent class of
1479             Object, and make the ObjectType metaclass into InterfaceType.
1480         
1481          2. Patch written with Rob Taylor to replace use of method_vtable
1482             with code that walks the class's __MRO__ (method resolution order)
1483             to behave like Python does when invoking methods and allow
1484             overriding as you'd expect. Code is quite tricky because
1485             we have to find two methods, the one to invoke which has the
1486             right name and isn't decorated with the /wrong/ interface,
1487             and the one to pick up the signatures from which is decorated
1488             with the right interface.
1489         
1490             The same caveats apply as to normal multiple inheritance -
1491             this has undefined behaviour if you try and inherit from two
1492             classes that define a method with the same name but are
1493             decorated with different interfaces. You should decorate
1494             your overriding method with the interface you want.
1495         
1496          3. Replace grungy introspection XML generation code in the metaclass
1497             with dictionaries that cope correctly with multiple inheritance
1498             and the overriding of methods. This also uses the signature
1499             decorations to provide correct introspection data, including
1500             the debut appearance of the types of your return values. :D
1501
1502         * test/python/test-client.py, test/python/test-service.py: Add a test
1503         case to try invoking an method that overrides one inherited from a
1504         D-Bus interface class.
1505
1506 2005-10-29  Robert McQueen  <robot101@debian.org>
1507
1508         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1509         Add checking for the end of struct character when marshalling a
1510         struct in MessageIter.append_strict.
1511
1512         * python/examples/example-service.py,
1513         python/examples/gconf-proxy-service.py,
1514         python/examples/gconf-proxy-service2.py: Update to use gobject
1515         mainloop directly rather than appearing to depend on gtk.
1516
1517         * python/test/test-client.py, python/test/test-server.py: Remove
1518         obsolete and broken test scripts for old bindings. We have up to date
1519         and working tests in test/python/.
1520
1521 2005-10-29  Robert McQueen  <robot101@debian.org>
1522
1523         * python/decorators.py: Add optional arguments to the method and
1524         signal decorators to allow you to specify the signature of arguments
1525         and return values. Preserve the doc strings of signal functions in the
1526         decorated version, for pydoc and friends.
1527
1528         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1529         parse_signature_block function with an iterable dbus.Signature()
1530         type. Fix a bug in MessageIter.append_strict where you could append
1531         anything by claiming it was a string.
1532
1533         * python/service.py: Use the out_signature decoration on methods to
1534         marshal return values, meaning you no longer require dbus.Array()
1535         or dbus.Dictionary() to indicate the type when returning empty
1536         arrays or dictionaries. Fix a bug where exceptions which are defined
1537         in __main__ are not turned into error replies.
1538
1539         * test/python/test-client.py, test/python/test-service.py: Add test
1540         for correct marshalling of return values according to out_signature.
1541         Fix a bug in the async call test where the error_handler is missing a
1542         self argument.
1543
1544 2005-10-29  Robert McQueen  <robot101@debian.org>
1545
1546         * glib/Makefile.am, glib/examples/Makefile.am,
1547         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1548         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1549
1550         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1551
1552         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1553         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1554         the command line.
1555
1556 2005-10-27  Ross Burton  <ross@openedhand.com>
1557
1558         * dbus/dbus-marshal-header.c:
1559         Remove dead code.
1560
1561         * glib/dbus-gobject.c:
1562         Stop compiler warning.
1563
1564 2005-10-25  Ross Burton  <ross@openedhand.com>
1565
1566         * dbus/dbus-auth.c:
1567         * dbus/dbus-server-unix.c:
1568         * dbus/dbus-transport-unix.c:
1569         * glib/dbus-gmain.c:
1570         * glib/dbus-gobject.c:
1571         Add some const keywords.
1572
1573 2005-10-25  Ross Burton  <ross@openedhand.com>
1574
1575         * doc/dbus-specification.xml:
1576         Document the NoReply annotation.
1577
1578         * glib/dbus-binding-tool-glib.h:
1579         * glib/dbus-binding-tool-glib.c:
1580         Respect the NoReply annotation.
1581
1582 2005-10-24  Robert McQueen <robot101@debian.org>
1583
1584         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1585         derive from unicode instead of str, and encode/decode UTF-8 when
1586         marshalling/unmarshalling bus messages
1587
1588         * python/introspect_parser.py: encode introspection data as UTF-8
1589         before passing the buffer into libxml2
1590
1591         * test/python/test-client.py: add unicode test strings
1592
1593         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1594         ignore generated python test files
1595
1596 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1597
1598         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1599         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1600         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1601
1602         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1603         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1604         when constructing struct signatures
1605
1606         * python/_dbus.py (Bus): handle private connections using the
1607         private keyword in the constructor. defaults to private=False
1608         (Bus::close): new method to close a connection to the bus
1609
1610         * python/dbus_bindings.pyx (Connection::close): renamed method
1611         was previously called disconnect
1612         (bus_get): now supports getting a private connection
1613
1614         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1615         keyword is set to True.  if it is, execute the method without waiting
1616         for a reply
1617         (ProxyObject::_introspect_execute_queue): new method for executing
1618         all the pending methods that were waiting for the introspect to
1619         finish.  this is called when introspect either succeeds or fails
1620         (ProxyObject::_introspect_error_handler): call queued methods
1621
1622 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1623
1624         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1625         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1626
1627         * python/service.py (Object::_message_cb): handle exceptions correctly
1628         by sending them over the wire to the calling app.  This makes sure
1629         the client returns immediately instead of waiting the 15 seconds to
1630         timeout.
1631
1632         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1633         Add a test to benchmark how long it takes to introspect a service and 
1634         call a method which returns a large element (pretty fast)
1635
1636         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1637         method which pushes a lot of data
1638
1639 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1640
1641         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1642         reclaim memory outside of the loop and use del istead of just setting
1643         the key to None
1644
1645 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1646
1647         * python/service.py (ObjectType::_reflect_on_signal): Always close
1648         signal tag even when there are no arguments
1649
1650 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1651
1652         * configure.in: Set mono, mono-docs and Qt3 to default
1653         to no instead of auto when building.  These bindings do not
1654         have full time maintainers and will not be supported for the
1655         1.0 release.
1656
1657 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1658
1659         patches from Michael Krivoruchko <misha at sun.com>: 
1660         
1661         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1662         _dbus_connection_message_sent, 
1663         _dbus_connection_send_preallocated_unlocked_no_update, 
1664         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1665         is NULL when calling _dbus_verbose
1666
1667         * configure.in: check for functions getpeerucred and getpeereid
1668
1669         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1670         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1671         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1672         Patch was only tested on Solaris 10 x86 so it might be issues
1673         with other platforms (i.e. BSDs and MacOSX)
1674         
1675
1676 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1677
1678         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1679         instead of marshal basic so we can handle recursive types in a variant
1680
1681         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1682         in variants
1683
1684         * test/glib/test-service-glib.c, test-service-glib.xml
1685         (my_object_echo_variant [EchoVariant], 
1686         my_object_process_variant_of_array_of_ints123
1687         [ProcessVariantOfArrayOfInts123]): 
1688         Add two test methods
1689
1690         * python/introspect_parser.py: New module for parsing introspect
1691         data.
1692
1693         * python/dbus_bindings.pyx:
1694         (various places): when throwing errors fix to use errormsg instead 
1695         of message local variable because Pyrex can get confused with other 
1696         message variables (initial patch by Robert McQueen 
1697         <robert.mcqueen at collabora.co.uk>)
1698         (MessageIter::parse_signature_block): new method for getting the next
1699         block in a signiture.
1700         (MessageIter::append_strict): new method for appending values strictly
1701         using the passed in signature instead of guessing at the type
1702         (MessageItter:: append_dict, append_struct, append_array): use 
1703         signatures to marshal children if the signature is available
1704         
1705         * python/exceptions.py (IntrospectionParserException): new exception
1706
1707         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1708         introspected signatures if available, else we fall back to the
1709         old way of doing things.
1710         (ProxyObject::_introspect_reply_handler ): parse introspection data
1711         
1712         * python/service.py (ObjectType::_reflect_on_method): Properly
1713         terminate <method> if there are no args in the reflection data
1714
1715         * test/python/test-client.py: add tests for talking with the GLib
1716         test server.  This gives us better coverage for introspection since
1717         python to python will always generate arguments as variants.  It also
1718         allows us to test the robustness of the GLib bindings and interlanguage
1719         communications.
1720
1721         
1722 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1723
1724         * bus/driver.c (bus_driver_handle_introspect): Add signals
1725         to the introspect data. (patch from Daniel P. Berrange 
1726         <dan at berrange.com>)
1727
1728         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1729         
1730         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1731         _dbus_connection_run_builtin_filters): Changed these to
1732         be unlock_no_update functions and call 
1733         _dbus_connection_send_unlocked_no_update instead of
1734         dbus_connection_send to avoid locking errors.
1735         
1736         * doc/TODO: Removed the make Ping test TODO
1737         
1738 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1739
1740         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1741         We now copy the message from a DBusError and then free 
1742         the error object befor throwing the error
1743
1744         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1745         DBusBindingOutputMode enum which was causing a warning.
1746         #include <time.h> so using time_t is explicitly defined
1747
1748 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1749
1750         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1751         - dbus/dbus-bus.c
1752         (internal_bus_get): new method that take over the heavy lifting
1753         of dbus_bus_get and adds the ability to get a private connection
1754         to the bus
1755         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1756         interface as in previous versions
1757         (dbus_bus_get_private): new method that is a wrapper to 
1758         internal_bus_get to get a private connection to the bus
1759
1760         - dbus/dbus-bus.h
1761         (dbus_bus_get_private): add as a public libdbus interface
1762
1763         - dbus-1.pc.in: output system_bus_default_address and 
1764         sysconfdir variables so apps can use them when compiling
1765
1766 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1767         * dbus/qt: New Qt bindings
1768
1769 2005-09-12  Waldo Bastian  <bastian@kde.org>
1770
1771         * dbus/dbus-marshal-validate.c,
1772         doc/dbus-specification.xml, test/Makefile.am,
1773         test/test-names.c: allow hyphens in bus names.
1774
1775 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1776
1777         * test/data/auth/fallback.auth-script: we don't
1778         retry the EXTERNAL method when we know its going
1779         to fail anymore.
1780
1781 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1782
1783         * dbus/dbus-connection-internal.h: rename
1784         (add|remove|toggle)_(watch|timeout) to unlocked()
1785         
1786         * dbus/dbus-connection.c: ditto.
1787         
1788         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1789         Update some callers for the renaming.
1790
1791 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1792
1793         * dbus/dbus-auth.c: (record_mechanisms): don't
1794         retry the first auth mechanism because we know
1795         we're just going to get rejected again.
1796         
1797         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1798         Fix thinko ... and what a nasty little bugger to
1799         track down you were ...
1800
1801         * dbus/dbus-connection.c:
1802         (_dbus_connection_add_watch),
1803         (_dbus_connection_remove_watch): add note about
1804         these needing the connection to be locked.
1805         (_dbus_connection_get_dispatch_status_unlocked):
1806         set status to DATA_REMAINS when we queue the
1807         disconnected message.
1808         
1809         * bus/dispatch.c:
1810         (bus_dispatch): fix warning.
1811         (check_existent_service_no_auto_start):
1812         Expect ChildSignaled error too.
1813         (check_existent_hello_from_self): fix another
1814         couple of warnings.
1815         
1816 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1817
1818         Patches from James Willcox <snorp@snorp.net>
1819
1820         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1821
1822         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1823         support array "out" parameters.
1824
1825         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1826         for 16-bit int support.
1827
1828 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1829
1830         * Released 0.50
1831
1832         * Patch from Steve Grubb:
1833         - bus/activation.c (bus_activation_service_reload_test): clean up
1834         some indentation
1835         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1836         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1837         buffer overflows in the test suite.  This is non critical because
1838         it can not be exploited and this code is only run when doing a 
1839         make check.
1840
1841         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1842         - configure.in: Don't check and link against kdecore, only qt headers
1843         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1844         - gcj/org/freedesktop/dbus/Makefile.am:
1845         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1846         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1847         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1848         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1849         - tools/Makefile.am: Add platform extentions to binaries 
1850         (i.e. .exe on windows)
1851
1852         * configure.in: 
1853         - Make it so if no suitable version of python is found we only 
1854         disable building python instead of exiting the configure script
1855         - Require version 2.4 of glib for glib bindings
1856         - Up version to 0.50
1857
1858         * python/__init__.py: Sync version with libdbus to (0,50,0)
1859         
1860 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1861
1862         * dbus/dbus-object-tree.c (find_subtree_recurse):
1863         a couple of optimizations (bug #710):
1864         - do a binary search in the tree
1865         - insert a new child at the right place directly, no need for
1866           qsort anymore
1867         - do the "double alloc" thing when allocating children
1868
1869 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1870
1871         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1872
1873         * python/dbus_bindings.pyx: Memory management foo
1874         (global): remove hacky _user_data_references global list
1875         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1876         tuples. Unref user_data
1877         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1878         (Connection::__del__): Remove and replace with __dealloc__ method
1879         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1880         to keep tuple from being deallocated instead of the global var hack
1881         (Connection::register_object_path): Stuff user_data into a tuple.
1882         Use Py_INCREF to keep tuple from being deallocated instead of the 
1883         global var hack
1884         (Connection::register_fallback): Stuff user_data into a tuple.
1885         Use Py_INCREF to keep tuple from being deallocated instead of the 
1886         global var hack
1887         (GIL_safe_pending_call_notification): Don't unref the message
1888         because it gets unreffed when going out of scope.  Py_XDECREF
1889         the user_data
1890         (PendingCall::__del__): Remove and replace with __dealloc__ method
1891         (PendingCall::set_notify): ref the pending call because we will
1892         need it to stick around for when the notify callback gets called
1893         (Message::__del__): Remove and replace with __dealloc__ method
1894
1895         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1896         gthreads_init to match up with the dbus call
1897
1898         * python/glib.py (init_threads): Changed to threads_init to match
1899         up with gobject.threads_init().  init_threads is kept for backwards
1900         compat but will most likely be deprecated in the future
1901
1902         * test/python/test-client.py: 
1903         - revamp to use Python's unittest functionality
1904         - add async call tests
1905         - setup threads in glib and dbus so we make sure locks are working
1906         
1907 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1908
1909         * python/dbus_bindings.pyx 
1910         (_pending_call_notification, cunregister_function_handler, 
1911         cmessage_function_handler): All callback functions have been rearranged 
1912         to workaround a bug in Pyrex when working with the GIL which is Python's 
1913         global lock when dealing with threads.  They have been split into
1914         a wrapper function (which assumes the name of the old function) and
1915         a _GIL_safe_<function name> function which contains the functionality
1916         of the old function.  This ensures that Pyrex does not write code
1917         the lock is released.
1918         
1919
1920 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1921
1922         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1923         GIL global lock when calling back into Python
1924
1925 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1926
1927         * Release 0.36.2
1928
1929         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1930
1931         * bus/policy.c (bus_policy_allow_user): change default "user is
1932         allowed" to be "user has same uid as the bus itself"; any
1933         allow/deny rules will override.
1934
1935         * bus/session.conf.in: don't allow all users, since now by default
1936         the user that ran the bus can connect.
1937
1938 2005-08-26  Colin Walters  <walters@verbum.org>
1939
1940         * tools/dbus-print-message.c (print_message): Flush stdout
1941         after printing a message, so that redirecting to a file, then
1942         hitting Ctrl-C works.
1943
1944 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1945
1946         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1947         (EmptyMessage): new class that subclasses Message.  This is a workaround
1948         to a Pyrex bug that fails to call __del__ when the Message object goes out
1949         of scope.  For some reason subclassing Message fixes this bug
1950         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1951         - s/Message(_create=0)/EmptyMessage everywhere else
1952         
1953         * test/python/test-{server|client}.py: add the python/.libs directory
1954         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1955         get picked up from the system
1956
1957 2005-08-25  Colin Walters  <walters@verbum.org>
1958
1959         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1960         to Ryan Lortie for the suggestion.
1961
1962 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1963
1964         * test/python: Add python regression test
1965
1966         * configure.in: Add test/python/Makefile
1967
1968         * test/Makefile.am: Add the python directory to SUBDIRS
1969
1970 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1971
1972         * Release 0.36.1
1973
1974         * python/_dbus.py: 
1975         (Interface::connect_to_signal): propigate keywords for match on args
1976         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1977
1978         * python/proxies.py (ProxyObject::connect_to_signal):
1979         propigate keywords for match on args
1980
1981         * Makefile.am: point everything to pyexecdir since python borks
1982         on multilib
1983
1984 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1985
1986         * Release 0.36
1987
1988 2005-08-23  Colin Walters  <walters@verbum.org>
1989
1990         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1991
1992 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1993
1994         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1995         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1996         of defining DBusConnection ourselves.
1997
1998 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1999
2000         * python/dbus.pth: New path file to fix up problems when installing
2001         c libraries to lib64 and python files to lib.
2002
2003         * python/Makefile.am: install dbus.pth in the correct spot
2004
2005 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2006         * ChangeLog: clean up my last entry a bit
2007
2008         * doc/introspect.xsl: New stylesheet for converting introspection data
2009         into browser renderable xhtml. Contributed by Lennart Poettering.
2010
2011         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2012         Poettering.
2013
2014         * doc/dbus-tutorial.xml: 
2015         - Add Colin Walter to the Authors section for authoring the GLib
2016         section
2017         - Add descriptions of the new signature and type functionality
2018         in the Python complex type mapping section
2019         - Add a sidenote on the new args matching functionality in 
2020         the Python bindings
2021         - Fixed up some of the examples to use the gobject.MainLoop
2022         instead of gtk.main
2023         
2024         * python/_dbus.py:
2025         (Bus::_create_args_dict): New. Converts a hash of arg matches
2026         to a more useable format
2027         (Bus::add_signal_receiver): add a **keywords parameter for catching
2028         arg match parameters
2029         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2030         arg match parameters
2031         
2032         * python/matchrules.py:
2033         (MatchTree::exec_matches): Check for arg matches
2034         (SignalMatchRule::add_args_match): New method
2035         (SignalMatchRule::execute): Added args_list parameter as an optimization
2036         so we don't have to marshal the args more than once
2037         (SignalMatchRule::match_args_from_list): New method that checks to see
2038         if the rule's arg matches match an argument list.  Only arguments
2039         set in the rule are checked.
2040         (SignalMatchRule::match_args_from_rule): New method that checks to see
2041         if the rule's arg matches match another rule's.  All args have to match
2042         in order for this method to return true.  If either rule has more args
2043         then it is not a match.
2044         (SignalMatchRule::is_match): Add args match
2045         (SignalMatchRule::repr): Add args to the final output if they exist
2046
2047 2005-08-17  Ross Burton  <ross@burtonini.com>
2048
2049         * glib/dbus-gproxy.c:
2050         (dbus_g_proxy_call_no_reply): unref the message once sent.
2051         (dbus_g_proxy_call): protect against NULL proxy.
2052
2053 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2054
2055         * python/__init__.py: Version updated (0, 43, 0)
2056         
2057         * python/dbus_bindings.pyx: 
2058         - Fixed type objects to have self passed into __init__
2059         - Added the Variant type
2060         - Add the ability to specify types or signatures for Array, Variant 
2061         and Dictionary
2062         (Connection::send_with_reply_handlers): return a PendingCall object
2063         (_pending_call_notification): handle the case when an error is returned 
2064         without an error message in the body
2065         (MessageIter::get_boolean): return True or False instead of an integer
2066         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2067         and add checks for objects with embeded signatures or types (Array, 
2068         Variant and Dictionary)
2069         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2070         (MessageIter::append_dict): handle embeded types or signatures
2071         (MessageIter::append_array): handle embeded types or signatures
2072         (MessageIter::append_variant): new method
2073         
2074         * python/proxies.py:
2075         (DeferedMethod): New. Dummy executable object used when queuing calls 
2076         blocking on introspection data
2077         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2078         or shorter timeouts for method calls
2079         (ProxyObject): Add first pass at an introspection state machine
2080         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2081         introspection. 
2082         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2083         the usual mechanisms for sending messages.  This is to avoid a deadlock
2084         where the Intospect call would be queued waiting for the Introspect 
2085         call to finish ;-)
2086         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2087         when introspection returns with no error
2088         (ProxyObject::_introspect_error_handler): New.  This method is called 
2089         when introspection encounters an error
2090         (ProxyObject::__getattr__): Code to handle different introspection 
2091         states.  Queue async calls or block blocking calls if we are 
2092         introspecting.  Pass through as normal if we are not or are done with 
2093         introspecting.
2094         
2095         * python/service.py: Import signal and method from decorators.py
2096
2097         * python/types.py: Add Variant type
2098
2099 2005-08-16  Colin Walters  <walters@verbum.org>
2100
2101         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2102         DBusError message is NULL.
2103
2104 2005-08-09  Havoc Pennington  <hp@redhat.com>
2105
2106         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2107         malloc'd copy of the name parameter
2108
2109 2005-08-09  Havoc Pennington  <hp@redhat.com>
2110
2111         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2112         warning if the reply serial is set to 0
2113
2114 2005-08-04  Colin Walters  <walters@verbum.org>
2115
2116         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2117         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2118         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2119         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2120         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2121         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2122         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2123         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2124         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2125         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2126         
2127         Prefix name with _ to ensure they're not exported.  All callers
2128         updated.
2129
2130         * glib/dbus-gvalue.c (typecode_to_gtype)
2131         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2132         (signature_iter_to_g_type_dict)
2133         (signature_iter_to_g_type_array)
2134         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2135         (dbus_gtypes_from_arg_signature):
2136         Move to dbus-gsignature.c.
2137
2138         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2139         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2140         (dbus_binding_tool_output_glib_client): Ditto.
2141
2142         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2143         and dbus-gsignature.h
2144
2145         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2146         unused variable.
2147
2148 2005-08-03  Colin Walters  <walters@verbum.org>
2149
2150         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2151         catch any incompatible changes accidentally made.
2152
2153 2005-08-03  Havoc Pennington  <hp@redhat.com>
2154
2155         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2156         typo, from Julien Puydt
2157
2158         * bus/connection.c (bus_connection_disconnected): we were always
2159         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2160
2161 2005-08-01  Colin Walters  <walters@verbum.org>
2162
2163         Patch from Joe Markus Clarke:   
2164         
2165         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2166         use-after-free.
2167
2168 2005-08-01  Colin Walters  <walters@verbum.org>
2169         
2170         Patch from Joe Markus Clarke:   
2171         
2172         * tools/dbus-send.c (main): 
2173         
2174         Don't use C99 style initializers (bug #3933).
2175         
2176 2005-08-01  Colin Walters  <walters@verbum.org>
2177
2178         Patch from Joe Markus Clarke:   
2179
2180         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2181         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2182         * glib/dbus-gobject.c (write_interface):
2183
2184         Don't use C99 style initializers (bug #3933).
2185
2186 2005-07-31  Havoc Pennington  <hp@redhat.com>
2187
2188         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2189         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2190
2191 2005-07-30  Havoc Pennington  <hp@redhat.com>
2192
2193         * fix a bunch of Doxygen warnings and mistakes
2194
2195 2005-07-30  Havoc Pennington  <hp@redhat.com>
2196
2197         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2198         DBUS_BUILD_TESTS since it's now used in production code
2199
2200 2005-07-29  Havoc Pennington  <hp@redhat.com>
2201
2202         * test/glib/test-profile.c (write_junk): initialize the junk
2203         buffer so valgrind doesn't have a breakdown
2204
2205 2005-07-29  Havoc Pennington  <hp@redhat.com>
2206
2207         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2208         (match_rule_matches): remove unused arg
2209         (test_matching): add tests for match_rule_matches()
2210
2211         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2212         do arg0='foo' arg5='bar' in the match rules
2213         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2214
2215         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2216
2217 2005-07-29  Ross Burton  <ross@openedhand.com>
2218
2219         * dbus/dbus-connection.c:
2220         Don't create a DBusCondVar which is never used.
2221
2222 2005-07-27  Ross Burton  <ross@openedhand.com>
2223
2224         * dbus/dbus-message.c:
2225         Reduce the size of the maximum cached message to 10K.
2226
2227 2005-07-25  Ross Burton  <ross@openedhand.com>
2228
2229         * glib/dbus-gproxy.c:
2230         Remove matches when all proxies are unregistered.
2231
2232 2005-07-24  Colin Walters  <walters@verbum.org>
2233
2234         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2235         typedata; recursive arrays won't have it.
2236
2237         * test/glib/test-dbus-glib.c:
2238         * test/glib/test-service-glib.c:
2239         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2240         
2241 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2242
2243         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2244         proxies.py, service.py: Cleanup of code after running it through the
2245         pyflakes code checker mostly dealing with undefined names.  
2246         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2247
2248 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2249
2250         * NEWS: Update to 0.35.2
2251
2252 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2253
2254         * python/_dbus.py: Remove import of the dbus.services
2255         module as it no longer exists (patch from Dimitur Kirov)
2256
2257         * python/service.py (Object::__init__): Fixed typo
2258         s/name/bus_name (patch from Dimitur Kirov)
2259
2260         * python/examples/example-signal-emitter.py: import dbus.glib
2261         to get the main loop and use glib mainloop instead of gtk so
2262         X doesn't have to be running.
2263
2264         * python/examples/example-signal-recipient.py: import dbus.glib
2265         to get the main loop and use glib mainloop instead of gtk so
2266         X doesn't have to be running. Import the decorators module
2267         directly.
2268
2269         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2270         didn't pick up on but are needed to build
2271
2272         * configure.in: upped version to 0.35.2
2273
2274         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2275         added Colin Walters' SELinux API rename patch from head 
2276         s/unix sercurity context/selinux security context/
2277
2278 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2279
2280         * python/Makefile.am: dbus_binding.pxd.in should be included 
2281         in EXTRA_DIST not dbus_binding.pxd
2282         fix up $(srcdir) hopefully for the last time
2283
2284         * NEWS: Update to 0.35.1
2285
2286 2005-07-16  Colin Walters  <walters@verbum.org>
2287
2288         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2289         from bus_driver_handle_get_connection_unix_security_context.  Update for
2290         error usage.
2291         (message_handlers): Update for renames.
2292
2293         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2294         _dbus_string_init failure correctly.
2295         (bus_selinux_append_context): Convert SID to context.  Append it
2296         as a byte array.
2297         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2298         hasn't been called.
2299
2300         * bus/selinux.h: Update prototype.
2301
2302         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2303         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2304
2305 2005-07-15  Colin Walters  <walters@verbum.org>
2306
2307         * doc/TODO: Add note about convenience wrappers.
2308
2309 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2310
2311         * NEWS: Update to 0.35
2312
2313 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2314
2315         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2316         so distcheck doesn't fail
2317
2318         * glib/examples/Makefile.am: Add example-service.xml and 
2319         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2320
2321         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2322         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2323
2324         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2325         compiler looks in the right places during distcheck
2326
2327 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2328
2329         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2330         to fail
2331
2332 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2333
2334         * python/examples/example-service.py,
2335         python/examples/example-signal-emitter.py: Fixed up examples
2336         for API changes
2337
2338 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2339
2340         * python/__init__.py: Upped to version (0,42,0) because of
2341         the API change
2342
2343 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2344
2345         * ChangeLog: fix date in last entry
2346
2347         * configure.in, bus/system.conf.in: add the ability to configure 
2348         the system bus user at compiletime with the --with-dbus-user flag
2349         (patch from Kristof Vansant)
2350
2351 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2352
2353         * bus/dispatch.c, test/test-service.c: Add testcase
2354         for sending messages to oneself (TODO item).
2355
2356         * python/service.py (class Object): Swap ordering of bus_name 
2357         and object_path parameters to better support inheritance.
2358
2359         * doc/dbus-tutorial.xml: change Python docs to reflect change
2360         in parameter ordering and fix the inheritance section.
2361
2362         * doc/TODO: remove sending message to oneself TODO item
2363
2364 2005-07-15  Ross Burton  <ross@openedhand.com>
2365
2366         * glib/dbus-gproxy.c:
2367         Fix a leak when calling methods via the proxy.
2368
2369 2005-07-15  Colin Walters  <walters@verbum.org>
2370
2371         * bus/selinux.c (bus_selinux_append_context): Wrap in
2372         HAVE_SELINUX.
2373
2374 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2375
2376         * python/_dbus.py (Bus::remove_signal_receiver):
2377         don't add a callback to the match if none has been passed in
2378         
2379         * python/matchrules.py (SignalMatchTree::remove): if the rule
2380         being matched does not have a callback treat it as a wildcard
2381         fix matching logic
2382
2383         * doc/dbus-tutorial.xml: Add Python tutorial
2384
2385 2005-07-14  Colin Walters  <walters@verbum.org>
2386
2387         * bus/driver.c
2388         (bus_driver_handle_get_connection_unix_security_context): New function.
2389         (message_handlers): Add.
2390
2391         * bus/selinux.c (bus_selinux_append_context): New function; appends
2392         security context to message.
2393
2394         * bus/selinux.h: Prototype.
2395
2396         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2397
2398 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2399
2400         * bus/activation.c: clean up all tabs to be 8 spaces 
2401         (bus_activation_activate_service): make sure we clean up
2402         if activation fails
2403
2404         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2405         (check_shell_fail_service_auto_start): New function
2406         tests to make sure we get fail properly when trying to auto start a service
2407         with a faulty command line
2408         (check_shell_service_success_auto_start): New function tests to make sure
2409         auto started services get the arguments on the command line
2410
2411         * test/test-shell-service.c: Added service for testing auto-starting with 
2412         command line arguments
2413
2414         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2415         test/data/valid-service-files/debug-shell-echo-success.service.in:
2416         Added service files for testing auto-starting with command line arguments
2417
2418         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2419
2420 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2421
2422         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2423         
2424         * dbus/Makefile.am: added new files to build.
2425
2426         * bus/activation.c (bus_activation_activate_service): support
2427         activation commands with parameters.
2428
2429         * test/shell-test.c: added test program for the shell parsing
2430         code.
2431
2432 2005-07-13  David Zeuthen  <davidz@redhat.com>
2433
2434         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2435         64 bit signed and unsigned parameters
2436
2437 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2438
2439         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2440
2441         * python/service.py (class Name): renamed BusName to make it clearer
2442         what the object is for (a name on the bus)
2443
2444         * python/examples/example-service.py,
2445         python/examples/example-signal-emitter.py: change the Name object to
2446         BusName
2447
2448 2005-07-12  Colin Walters  <walters@verbum.org>
2449
2450         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2451
2452         * tools/dbus-launch.c: Include sys/select.h.
2453
2454 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2455         * python/dbus_bindings.pyx.in: removed
2456
2457         * python/dbus_bindings.pyx: Added.
2458         - Fixed some memleaks (patch from 
2459         Sean Meiners <sean.meiners@linspireinc.com>)
2460         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2461         own pxd file (Pyrex definition)
2462         - Broke out glib dependancies into its own pyx module
2463         
2464         * python/dbus_bindings.pdx: Added.
2465         - Defines C class Connection for exporting to other modules
2466
2467         * python/dbus_glib_bindings.pyx: Added.
2468         - New module to handle lowlevel dbus-glib mainloop integration
2469
2470         * python/glib.py: Added.
2471         - Registers the glib mainloop when you import this module
2472
2473         * python/services.py: Removed (renamed to service.py)
2474         
2475         * python/service.py: Added.
2476         - (class Server): renamed Name
2477
2478         * python/__init__.py: Bump ro version (0,41,0)
2479         -don't import the decorators or service module
2480         by default.  These now reside in the dbus.service namespace
2481
2482         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2483         setup function on creation 
2484
2485         * python/examples/example-service.py,
2486         python/examples/example-signal-emitter.py: update examples
2487
2488         * python/examples/gconf-proxy-service.py,
2489         python/examples/gconf-proxy-service2.py: TODO fix these up
2490
2491         * doc/TODO: Addition
2492         - Added a Python Bindings 1.0 section
2493         - added "Add match on args or match on details to match rules"
2494
2495
2496 2005-07-12  Colin Walters  <walters@verbum.org>
2497
2498         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2499         (statemachine-glue.h): 
2500         * glib/examples/Makefile.am (example-service-glue.h) 
2501         (example-signal-emitter-glue.h): 
2502         * glib/Makefile.am (dbus-glib-error-switch.h): 
2503         Add libtool --mode=execute so we use the built library instead
2504         of any installed one.
2505
2506 2005-07-11  Colin Walters  <walters@verbum.org>
2507
2508         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2509         (dbus_g_value_types_init): Remove assertion.
2510         (dbus_g_value_get_g_type, dbus_g_value_open)
2511         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2512         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2513         functions related to DBusGValue.  Now we marshal/demarshal
2514         structures as GValueArray.
2515         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2516         structures.
2517         (signature_iter_to_g_type_array): Don't call
2518         signature_iter_to_g_type_struct.
2519         (signature_iter_to_g_type_struct): Delete.
2520         (dbus_gvalue_to_signature): Delete.
2521         (dbus_gvalue_to_signature): New function with same name as other
2522         one; we can convert structures to signatures.
2523         (demarshal_valuearray): New function.
2524         (get_type_demarshaller): Use it.
2525         (demarshal_recurse): Delete.
2526         (marshal_proxy): New function.
2527         (marshal_map): Warn if we can't determine signature from type.
2528         (marshal_collection_ptrarray): Ditto.
2529         (marshal_collection_array): Ditto.
2530         (get_type_marshaller): Use marshal_valuearray.
2531         (marshal_recurse): Delete.
2532         (_dbus_gvalue_test): Add some tests.
2533
2534         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2535         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2536         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2537         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2538         (dbus_g_value_free): Remove prototypes.
2539
2540         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2541         G_TYPE_VALUE_ARRAY.
2542
2543         * glib/examples/example-service.c:
2544         * glib/examples/example-client.c: Implement GetTuple.
2545
2546         * test/glib/test-dbus-glib.c:
2547         * test/glib/test-service-glib.c:
2548         * test/glib/test-service-glib.xml: Add structure tests.
2549
2550 2005-07-10  Colin Walters  <walters@verbum.org>
2551
2552         * doc/TODO: Knock off some GLib items with this patch.
2553
2554         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2555         (_dbus_gvalue_signals_error): New functions.
2556
2557         * glib/dbus-gvalue-utils.h: Prototype them.
2558
2559         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2560         and change to not output const/retval flags for input args.  All
2561         callers updated.
2562         (invoke_object_method): Refactor to handle return values.  Add
2563         some more comments in various places.  Remove debug g_print.
2564
2565         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2566
2567         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2568         Handle G_TYPE_NONE.
2569         (compute_gsignature): New function; refactored from code from
2570         compute_marshaller and compute_marshaller_name.  Enhance to
2571         handle return values and async ops more cleanly.  Update for
2572         async ops returning NONE instead of BOOLEAN.
2573         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2574         and output appropriate string.
2575         (generate_glue): Handle return value annotation.  Also don't dump
2576         constness flag for input arguments.
2577
2578         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2579         files shared between installed library and utilities.
2580         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2581         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2582         binding tool can access gtype utility functions.
2583
2584         * test/glib/test-service-glib.c: 
2585         * test/glib/test-service-glib.xml: 
2586         * test/glib/test-dbus-glib.c: Add some tests for return values.
2587
2588 2005-07-09  Colin Walters  <walters@verbum.org>
2589
2590         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2591         argument if available, not method.
2592
2593         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2594         (invoke_object_method): First, remove some redundant
2595         GValues (object_value, error_value) in favor of working on
2596         array directly.  Second, rework constness to be less buggy.
2597         Now we iterate directly over the argument metadata instead
2598         of parallel iterating over output signature and metadata.
2599
2600         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2601
2602         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2603         annotation on input args.
2604         
2605 2005-07-09  Colin Walters  <walters@verbum.org>
2606
2607         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2608         Define.
2609
2610         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2611         annotation.
2612
2613         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2614         (method_dir_signature_from_object_info): Handle arg_iterate change.
2615         (write_interface): Ditto.
2616         (lookup_object_info): Don't barf if format_version is > 0.
2617         (invoke_object_method): Handle arg constness.
2618
2619         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2620         (arg_info_new): Create.
2621         (arg_info_unref): Destroy.
2622         (arg_info_get_annotations, arg_info_get_annotation) 
2623         (arg_info_add_annotation): New functions.
2624
2625         * glib/dbus-gidl.h: Prototype them.
2626
2627         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2628         args, disallow them in properties.
2629         (parse_annotation): Handle arg annotations.
2630
2631         * test/glib/test-service-glib.xml: 
2632         * test/glib/test-service-glib.c: Update to make some methods
2633         const.
2634
2635 2005-07-08  Colin Walters  <walters@verbum.org>
2636
2637         * test/glib/test-service-glib.xml: 
2638         * test/glib/test-service-glib.c:
2639         * test/glib/test-dbus-glib.c: Test a{sv}.
2640
2641         * glib/examples/statemachine/statemachine.c:
2642         * glib/examples/statemachine/statemachine-server.c:
2643         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2644         add progress bar, etc.
2645
2646         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2647         needed anymore due to generic array/map marshalling.
2648         (dbus_g_value_types_init): Don't register basic arrays or the
2649         string/string hash.
2650         (dbus_gtype_from_signature_iter): Don't try to recurse into
2651         variants.
2652         (dbus_gtype_to_signature): Check collection/map before type
2653         metadata.
2654         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2655         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2656         generic map creation/append functions instead of hash table
2657         specifically.
2658         (get_type_demarshaller): Handle maps.
2659         (demarshal_collection): Dispatch on collection type to either
2660         demarshal_collection_ptrarray or demarshal_collection_array.
2661         (get_type_marshaller): Handle maps.
2662         (marshal_collection): Dispatch collection type to either
2663         marshal_collection_ptrarray or marshal_collection_array.
2664         (_dbus_gvalue_test): New test.
2665
2666         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2667         (hash_free_from_gtype): Use it to free GValues.
2668         (hashtable_append): New function.
2669         (ptrarray_append): Fix prototype.
2670         (slist_append): Ditto.
2671         (_dbus_gvalue_utils_test): Extend tests.
2672
2673         * glib/dbus-gtype-specialized.c
2674         (dbus_g_type_specialized_init_append): Renamed from
2675         dbus_g_type_specialized_collection_init_append.  Remove const from
2676         value, since we steal it.
2677         (dbus_g_type_specialized_map_append): New function.
2678
2679         * glib/dbus-gtype-specialized.h: Update prototypes.
2680         Add DBusGTypeSpecializedMapAppendFunc.
2681
2682         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2683         _dbus_gvalue_test.
2684         
2685         * glib/dbus-gtest.h: Prototype it.
2686
2687 2005-07-08  Ross Burton  <ross@openedhand.com>
2688
2689         * dbus/dbus-glib.h:
2690         Add DBysGAsyncData for the async bindings.
2691
2692         * glib/dbus-binding-tool-glib.c:
2693         Re-enable the async bindings.
2694
2695         * test/glib/test-dbus-glib.c:
2696         Add a test for the generated async bindings.
2697
2698 2005-07-08  Colin Walters  <walters@verbum.org>
2699
2700         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2701         connection concept.
2702         
2703 2005-07-08  Colin Walters  <walters@verbum.org>
2704         
2705         * tools/Makefile.am: Kill of print-introspect in favor of using
2706         dbus-send --print-reply=literal.
2707
2708         * test/glib/test-service-glib.xml: 
2709         * test/glib/test-service-glib.c (my_object_get_objs): New test
2710         for "ao".
2711
2712         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2713         (main): Test GetObjs.
2714
2715         * glib/examples/statemachine/Makefile.am:
2716         * glib/examples/statemachine/sm-marshal.list:
2717         * glib/examples/statemachine/statemachine-client.c:
2718         * glib/examples/statemachine/statemachine-server.c:
2719         * glib/examples/statemachine/statemachine-server.xml:
2720         * glib/examples/statemachine/statemachine.c:
2721         * glib/examples/statemachine/statemachine.h:
2722         * glib/examples/statemachine/statemachine.xml:
2723
2724         New example.
2725
2726         * glib/examples/example-service.c (main): Move invocation
2727         of dbus_g_object_type_install_info earlier, to emphasize it
2728         should only be done once.
2729
2730         * glib/examples/example-signal-emitter.c (main): Ditto.
2731
2732         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2733
2734         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2735         (dbus_gvalue_marshal): Update prototypes.
2736
2737         * glib/dbus-gvalue.c: Update all marshalling functions to take
2738         const GValue instead of GValue.
2739         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2740         types.
2741         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2742         change.
2743         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2744         Return a newly-allocated string.
2745         (demarshal_proxy, demarshal_object_path, demarshal_object)
2746         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2747         we get the wrong types from message.
2748         (get_type_demarshaller): New function, extracted from
2749         dbus_gvalue_demarshal.
2750         (demarshal_collection): New function, demarshals generic
2751         collection.
2752         (dbus_gvalue_demarshal): Just invoke result of
2753         get_type_demarshaller.  Throw error if we don't have one.
2754         (marshal_garray_basic): Abort on OOM.
2755         (get_type_marshaller): New function, extracted from
2756         dbus_gvalue_marshal.
2757         (collection_marshal_iterator, marshal_collection): New functions;
2758         implements generic marshalling for an iteratable specialized
2759         collection.
2760         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2761
2762         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2763         G_TYPE_STRING.
2764         (ptrarray_value_from_gvalue): Ditto.
2765         (ptrarray_append, ptrarray_free): New functions.
2766         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2767         (slist_append, slist_end_append, slist_free): New functions.
2768         (dbus_g_type_specialized_builtins_init): Add append fuctions
2769         for GPtrArray and GSList.  Register GSList.
2770         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2771
2772         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2773         New.
2774         (dbus_g_type_specialized_collection_init_append)
2775         (dbus_g_type_specialized_collection_append)
2776         (dbus_g_type_specialized_collection_end_append): Prototype.
2777         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2778         end_append_func.
2779
2780         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2781         (dbus_g_type_specialized_collection_append) 
2782         (dbus_g_type_specialized_collection_end_append): New functions.
2783         (dbus_g_type_map_value_iterate): Take const GValue.
2784         (dbus_g_type_collection_value_iterate): Ditto.
2785
2786         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2787         _dbus_gvalue_utils_test.
2788         
2789         * glib/dbus-gtest.h: Prototype it.
2790
2791         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2792         using uninitialized owner_list.
2793         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2794         public API.
2795         (dbus_g_proxy_end_call_internal): Update to use error set
2796         from dbus_gvalue_demarshal instead of setting it here.
2797         (dbus_g_proxy_begin_call): Move return_if_fail here.
2798
2799         * glib/dbus-gobject.c (write_interface): Update for
2800         dbus_gtype_to_signature returning new string.
2801
2802         * configure.in: Add glib/examples/statemachine.
2803
2804 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2805
2806         * configure.in: Add a configure option, --with-console-auth-dir
2807         
2808         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2809         new setting.  Patch from Kay Sievers.
2810
2811 2005-07-06  Colin Walters  <walters@verbum.org>
2812
2813         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2814         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2815         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2816         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2817         Delete in favor of dbus_g_proxy_begin_call and
2818         dbus_g_proxy_cancel_call.
2819         (DBusGProxyCall, DBusGProxyCallNotify): New.
2820         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2821         data, and destroy function.  This replaces
2822         dbus_g_pending_call_set_notify.
2823         (dbus_g_proxy_cancel_call): Prototype.
2824         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2825
2826         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2827         pending_calls map.
2828         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2829         internal proxy for calls to the bus. Remove
2830         pending_nameowner_calls, now the internal proxy keeps track.
2831         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2832         pending_nameowner_calls.
2833         (got_name_owner_cb): Update prototype, and use
2834         dbus_g_proxy_end_call.
2835         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2836         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2837         favor of using internal proxy.
2838         (dbus_g_proxy_manager_unregister): Update to use
2839         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2840         (dbus_g_proxy_init): Initialize pending calls map.
2841         (dbus_g_proxy_constructor): New.
2842         (dbus_g_proxy_class_init): Add get/set property functions,
2843         constructor, and add NAME, PATH, and INTERFACE properties.
2844         (cancel_pending_call): New function.
2845         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2846         cancel them.
2847         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2848         (GPendingNotifyClosure): New structure.
2849         (d_pending_call_notify, d_pending_call_free): Moved here from
2850         dbus-glib.c.
2851         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2852         ordering.
2853         (manager_begin_bus_call): New internal function for talking to
2854         internal bus proxy.
2855         (dbus_g_proxy_new): Construct object using GObjet properties.
2856         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2857         Create closure of same, and insert call into map of pending calls.
2858         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2859         call.  Look up pending call in current set.  Remove it when we've
2860         completed.
2861         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2862         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2863         and destroy function directly.
2864         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2865         (dbus_g_proxy_call): Invoke with NULL callback.
2866         (dbus_g_proxy_cancel_call): New function, replaces
2867         dbus_g_pending_call_cancel.
2868
2869         * glib/dbus-gparser.c (validate_signature): Fix call to
2870         dbus_set_g_error.
2871
2872         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2873         New quark for attaching metadata to GType.
2874         (info_hash): Delete.
2875         (lookup_object_info): Look up using quark.
2876         (dbus_g_object_type_install_info): Check that a type is classed,
2877         not that it's an object.  Also just install type data using quark
2878         instead of using global hash.
2879
2880         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2881         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2882         (GPendingNotifyClosure): Delete.
2883         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2884         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2885
2886         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2887         client method generation until we can fix it...
2888         
2889         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2890         (load_from_service_thread_func): Ditto.
2891
2892         * tools/dbus-names-model.c (struct NamesModel): Hold
2893         DBusGProxyCall.
2894         (have_names_notify): Update prototype, use
2895         dbus_g_proxy_cancel_call.
2896         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2897
2898         * tools/dbus-monitor.c (filter_func): Update for print_message
2899         API change.
2900
2901         * test/glib/test-dbus-glib.c: Add more tests for async
2902         invocations.  Update many begin_call/end_call pairs to just use
2903         dbus_g_proxy_call.
2904
2905         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2906         allows us to dump print-introspect.c.
2907
2908         * tools/dbus-print-message.h (print_message): Add literal argument
2909         to print_message which is intended to allow printing arguments without
2910         metadata like "string=".
2911
2912         * tools/dbus-print-message.c (print_iter): Add literal argument.
2913         (print_message): Allow printing string messages literally.
2914
2915 2005-07-05  Colin Walters  <walters@verbum.org>
2916
2917         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2918         Remove value refcount leak, original patch from Jorn Baayen
2919         <jorn@openedhand.com>.  Also remove useless extra value in favor
2920         of prepending to value array directly.
2921
2922 2005-07-02  Colin Walters  <walters@verbum.org>
2923
2924         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2925
2926 2005-07-01  Colin Walters  <walters@verbum.org>
2927
2928         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2929         
2930         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2931         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2932         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2933         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2934
2935 2005-06-30  Colin Walters  <walters@verbum.org>
2936
2937         * test/glib/test-dbus-glib.c:
2938         * test/glib/test-service-glib.c:
2939         * test/glib/test-service-glib.xml: Update tests for new error
2940         setting bits, also add async tests (patch from Ross Burton).
2941
2942         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2943         DBUS_GLIB_THREADS_LIBS.
2944
2945         * glib/dbus-gproxy.c (get_name_owner)
2946         (dbus_g_pending_call_end_valist): Ditto.
2947
2948         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2949         domain (GQuark) to DBusGErrorInfo.  
2950         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2951         quark in error_metadata.  Take message interface as default
2952         error message interface.
2953         (gerror_to_dbus_error_message): Pass message interface.
2954         (dbus_set_g_error): Resurrected.
2955         (dbus_g_error_info_free): New function.
2956         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2957         of _peek to actually create the object class if it hasn't been
2958         created yet.
2959         (dbus_g_error_domain_register): New function.
2960
2961         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2962
2963         * glib/dbus-gparser.c (validate_signature): Ditto.
2964
2965         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2966         (dbus_g_error_domain_register): Prototype.
2967
2968         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2969         Update tests.
2970
2971 2005-06-29  Colin Walters  <walters@verbum.org>
2972
2973         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2974         DBUS_TYPE_G_OBJECT_PATH.
2975
2976         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2977         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2978         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2979         (dbus_g_object_path_get_g_type): New function.
2980         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2981         to DBUS_TYPE_G_OBJECT_PATH by default.
2982         (demarshal_proxy): Remove unused name variable.
2983         (demarshal_object_path, marshal_object_path): New functions.
2984         (demarshal_proxy_array, marshal_proxy_array): Delete.
2985         
2986         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2987         DBUS_TYPE_G_OBJECT_PATH to char *.
2988         (dbus_g_type_get_lookup_function): Map builtin
2989         DBUS_TYPE_G_OBJECT_PATH.
2990
2991         * test/glib/test-dbus-glib.c
2992         * test/glib/test-service-glib.c (my_object_objpath): 
2993         Adapt tests to new object path marshalling.
2994
2995 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2996
2997         * configure.in: force check for Python >= 2.4
2998
2999 2005-06-29  Colin Walters  <walters@verbum.org>
3000         
3001         Patch from Ross Burton <ross@openedhand.com>
3002         
3003         * glib/dbus-gobject.c (invoke_object_method): Unset object
3004         value in all cases, not only in async case.
3005
3006 2005-06-29  Colin Walters  <walters@verbum.org>
3007
3008         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3009         name_call for keeping track of any outgoing GetNameOwner call.
3010         Also add for_owner and associated.
3011         (struct _DBusGProxyManager): Add owner_names, which is hash table
3012         that maps a base name to a list of names it owns (that we're
3013         interested in).  Add pending_nameowner_calls which is a list of
3014         all outstanding GetNameOwner; avoids us having to iterate over
3015         every proxy.  Add unassociated_proxies which keeps track of name
3016         proxies with no associated name owner.
3017         (dbus_g_proxy_manager_unref): Destroy owner_names.
3018         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3019         name refcounts.
3020         (find_name_in_info, name_owner_foreach)
3021         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3022         (dbus_g_proxy_manager_monitor_name_owner)
3023         (dbus_g_proxy_manager_unmonitor_name_owner)
3024         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3025         New functions; they manipulate the owner_names mapping.
3026         (got_name_owner_cb): New function.
3027         (get_name_owner): New function, extracted from
3028         dbus_g_proxy_new_for_name_owner.
3029         (dbus_g_proxy_manager_register): For now we need to keep track of
3030         all NameOwnerChanged.  Also if the proxy is for a name, if we
3031         don't already know the name owner, queue a new GetNameOwner
3032         request and add it to our list of unassociated proxies.  Otherwise
3033         inc the refcount.
3034         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3035         cancel any pending GetNameOwner call, etc.
3036         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3037         the owner_names mapping to look up the current names for the
3038         signal source, and dispatch to any proxies for that name.
3039         (dbus_g_proxy_new): Initialize new members.
3040         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3041         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3042         (dbus_g_pending_call_end_valist): New function, extracted from
3043         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3044         but want to use the GLib infrastructure.  Also note how many
3045         arguments in reply were over.
3046         (dbus_g_pending_call_end): New function, just call
3047         dbus_g_pending_call_end_valist.
3048         (dbus_g_proxy_end_call_internal): Just call
3049         dbus_g_pending_call_end_valist.
3050
3051         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3052         of builtin marshaller for STRING_STRING_STRING.
3053
3054         * test/glib/test-dbus-glib.c: 
3055         * test/glib/test-service-glib.c:
3056         * test/glib/test-service-glib.xml:
3057         Extend tests to cover name proxies, destruction of owner proxies,
3058         etc.
3059         
3060         * glib/examples/example-signal-recipient.c
3061         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3062         
3063         * tools/dbus-send.c (main): Print D-BUS error name in addition
3064         to message.
3065
3066 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3067
3068         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3069         cmessage_function_handler): Patch from 
3070         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3071         by using the Py_GILState_Ensure/Release to synchronize with the
3072         python runtime.
3073         
3074 2005-06-28  Ray Strode  <rstrode@redhat.com>
3075
3076         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3077         babysitter helper process on last unref, bug #2813.
3078
3079 2005-06-27  Colin Walters  <walters@verbum.org>
3080
3081         * test/glib/test-dbus-glib.c: 
3082         * test/glib/test-service-glib.c:
3083         * test/glib/test-service-glib.xml:
3084         Test hash table signal emitting.
3085
3086         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3087         types to their fundamental basis types, since this is what
3088         marshallers operate on.  Also add an entry for VOID__BOXED.
3089         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3090
3091 2005-06-26  Havoc Pennington  <hp@redhat.com>
3092
3093         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3094         from Don Park
3095
3096 2005-06-26  Colin Walters  <walters@verbum.org>
3097
3098         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3099         (dbus_g_error_set): New public function from its ashes; used by
3100         both service-side method implementation and GLib bindings
3101         internals.
3102         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3103         (_dbus_glib_test): Add some tests.
3104
3105         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3106
3107         * test/glib/test-service-glib.c (my_object_throw_error): Use
3108         dbus_g_error_set.
3109
3110         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3111         errors thrown by dbus_g_error_set.
3112
3113         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3114
3115         * glib/dbus-gparser.c (validate_signature): Ditto.
3116
3117         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3118         (dbus_g_proxy_end_call_internal): Ditto.
3119
3120         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3121         converts DBUS_ERROR_x to DBUS_GERROR_x.
3122         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3123
3124         * doc/TODO: Remove error TODO.
3125
3126         * doc/dbus-tutorial.xml: Update with documentation about error
3127         handling.
3128
3129         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3130         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3131         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3132
3133 2005-06-22  Colin Walters  <walters@verbum.org>
3134         
3135         Patch from Ross Burton <ross@openedhand.com>
3136
3137         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3138
3139 2005-06-20  Colin Walters  <walters@verbum.org>
3140
3141         * configure.in: Add glib/examples.
3142
3143         * glib/Makefile.am: Add examples/
3144
3145         * glib/examples/.cvsignore
3146         * glib/examples/Makefile.am
3147         * glib/examples/example-client.c
3148         * glib/examples/example-service.c
3149         * glib/examples/example-service.xml
3150         * glib/examples/example-signal-emitter.c
3151         * glib/examples/example-signal-emitter.xml
3152         * glib/examples/example-signal-recipient.c:
3153         New files; GLib binding examples, ported from
3154         python/examples.
3155
3156 2005-06-20  Colin Walters  <walters@verbum.org>
3157
3158         * dbus/dbus-glib.h: 
3159         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3160         dbus_g_proxy_call.
3161
3162         * glib/dbus-binding-tool-glib.c: 
3163         * doc/dbus-tutorial.xml: 
3164         * test/glib/test-dbus-glib.c: Update for rename.
3165         
3166 2005-06-20  Colin Walters  <walters@verbum.org>
3167
3168         Patch suggested by Ross Burton <ross@openedhand.com>
3169
3170         * glib/dbus-gobject.c (export_signals): Free signal name.
3171         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3172         memory leak.  Add a bit of documentation.
3173         (dbus_g_method_return_error): Free context, and note we do
3174         so.
3175
3176 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3177
3178         * dbus/dbus-glib.h:
3179         * glib/dbus-gobject.c:
3180         * glib/dbus-gproxy.c:
3181         * glib/dbus-gvalue.c: Predeclare structs as 
3182         typedef struct _Something Something instead of 
3183         typedef struct Something Something, so we can 
3184         redeclare the prototypes. Other GNOME libraries 
3185         do this already.
3186
3187 2005-06-17  Colin Walters  <walters@verbum.org>
3188
3189         * tools/dbus-names-model.c (have_names_notify): Fix call
3190         to dbus_g_proxy_end_call.
3191         
3192 2005-06-17  Colin Walters  <walters@verbum.org>
3193
3194         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3195         spew warnings if we get malformed remote signals.
3196
3197         * glib/dbus-gobject.c (propsig_iterate): New function.
3198         (lookup_object_info): New function, extracted from
3199         lookup_object_and_method.
3200         (introspect_properties, introspect_signals): Delete; these
3201         are merged into write_interface.
3202         (write_interface): Write out signals and properties here;
3203         dump the org.gtk.object stuff and use the interface given
3204         in the introspection data blob.  Also fix up property XML.
3205         (lookup_values): New function.
3206         (introspect_interfaces): Gather a mapping from interface to a
3207         list of its methods, signals, and properties, then write out
3208         each interface.
3209         (lookup_object_and_method): Use lookup_object_info.
3210         (struct DBusGSignalClosure): Add interface.
3211         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3212         we can just use the constant data.
3213         (dbus_g_signal_closure_finalize): Don't free signal name.
3214         (signal_emitter_marshaller): Use interface from signal closure.
3215         (export_signals): Only export signals mentioned in introspection
3216         blob.
3217         (dbus_g_connection_register_g_object): Warn if we have no
3218         introspection data for an object.
3219         (funcsig_equal): Remove unused variable.
3220         (dbus_g_object_register_marshaller): Take varargs instead of
3221         list.
3222         (dbus_g_object_register_marshaller_array): New function,
3223         extracted from old dbus_g_object_register_marshaller.
3224
3225         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3226         signals and property data.
3227         (write_quoted_string): New function, extracted from generate_glue.
3228         (generate_glue): Write signals and properties to introspection
3229         blob.
3230
3231         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3232         exported_signals and exported_properties.
3233         (dbus_g_object_register_marshaller): Update prototype.
3234         (dbus_g_object_register_marshaller_array): Prototype.
3235         
3236         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3237
3238         * test/glib/test-service-glib.c: Add new test signals and method
3239         to emit them.
3240
3241         * test/glib/test-service-glib.xml: Add some test signals.
3242
3243         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3244         and my-object-marshal.h
3245         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3246         my-object-marshal.c.
3247         (my-object-marshal.c, my-object-marshal.h): Implement.
3248
3249         * test/glib/.cvsignore: Update.
3250
3251         * doc/TODO: Remove two GLib TODO items fixed by this
3252         patch.
3253
3254 2005-06-16  Colin Walters  <walters@verbum.org>
3255
3256         * doc/TODO: Update for GLib bindings.
3257         
3258 2005-06-16  Colin Walters  <walters@verbum.org>
3259
3260         * glib/dbus-binding-tool-glib.c:
3261         * glib/dbus-gobject.c:
3262         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3263         from Ross Burton, for his GLib bindings work.
3264
3265 2005-06-16  Colin Walters  <walters@verbum.org>
3266
3267         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3268         to iterate instead of walking to G_TYPE_INVALID.
3269
3270         Patch based on a patch from Ryan Gammon.
3271
3272 2005-06-16  Colin Walters  <walters@verbum.org>
3273
3274         * bus/bus.c (bus_context_new): Set parser to NULL
3275         after we unref it (Patch from Chris Boscolo, #2174).
3276         
3277 2005-06-16  Colin Walters  <walters@verbum.org>
3278
3279         * python/dbus_bindings.pyx.in: Import size_t,
3280         __int64_t, __uint64_t, and __signed.
3281
3282         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3283         Define cmsg struct, output it.
3284         (_dbus_read_credentials_unix_socket):
3285         Use cmsg struct.
3286         
3287         Patch from Joe Markus Clarke for FreeBSD support.
3288         
3289 2005-06-16  Colin Walters  <walters@verbum.org>
3290
3291         * tools/dbus-send.c (append_array): Use strtok.
3292         (append_dict): New function.
3293         (type_from_name): New function, extracted from main.
3294         (main): Handle sending dicts.
3295
3296         * tools/dbus-print-message.c (print_iter): Print dict
3297         entries.
3298         
3299 2005-06-16  Colin Walters  <walters@verbum.org>
3300
3301         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3302         values as the empty string (#2948).
3303         
3304 2005-06-16  Colin Walters  <walters@verbum.org>
3305
3306         * dbus/Makefile.am:
3307         * mono/doc/Makefile.am:
3308         * test/glib/Makefile.am:
3309
3310         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3311
3312 2005-06-16  Colin Walters  <walters@verbum.org>
3313
3314         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3315         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3316
3317         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3318         Increment pointer after swapping fixed array.  Add assertion
3319         for array length.
3320                 
3321 2005-06-15  Colin Walters  <walters@verbum.org>
3322
3323         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3324         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3325         
3326 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3327
3328         * NEWS: Update to 0.34
3329
3330 2005-06-15  David Zeuthen  <davidz@redhat.com>
3331
3332         * configure.in (LT_CURRENT): Revert back to 1 as the library
3333         hasn't changed and we've certainly not committed to protocol
3334         stability yet.  All this does is to break ABI. See commit note
3335         from hp@redhat.com 2005-05-05 for details.
3336         
3337 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3338
3339         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3340         (_dbus_connection_run_builtin_filters): New method
3341         (dbus_connection_dispatch): Run the builtin filters which in turn
3342         runs the peer filter which handles Ping messages.
3343
3344         * doc/TODO: 
3345          - Ping isn't handled: This patch fixes it
3346          
3347          - Add a test case for the Ping message: added TODO item
3348
3349 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3350
3351         * dbus/dbus-message.c:
3352         (dbus_message_has_path): New method
3353         (dbus_message_has_interface): New method
3354         (dbus_message_has_member): New method
3355
3356         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3357         New method
3358
3359         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3360         the keyring directory is private to the user
3361
3362         * doc/TODO:
3363          - The convenience functions in dbus-bus.h should perhaps have
3364          the signatures that they would have if they were autogenerated
3365          stubs. e.g. the acquire service function. We should also evaluate
3366          which of these functions to include, in light of the fact that
3367          GLib/Qt native stubs will probably also exist.: Punted
3368
3369          - add dbus_message_has_path(), maybe has_member/interface:
3370          fixed in this patch
3371
3372          - in dbus-keyring.c, enforce that the keyring dir is not
3373          world readable/writable: Fixed in this patch
3374
3375 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3376
3377         * dbus/dbus-marshal-validate.h: Added a new validation
3378         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3379         out of memory errors when validating signitures
3380
3381         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3382         in places where we previously used DBUS_VALID and a FALSE return 
3383         value to indicate OOM
3384         
3385         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3386         Use a stack to track the number of elements inside containers.  The 
3387         stack values are then used to validate that dict entries have only two
3388         elements within them.
3389         (validate_body_helper): check the reason for failure when validating
3390         varients
3391         
3392         * dbus/dbus-message.c (load_message): use 
3393         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3394         DBUS_VALID and a FALSE return value to indicate OOM
3395
3396         * doc/TODO: remove "- validate dict entry number of fields" as this
3397         patch fixes it
3398
3399 2005-06-14  David Zeuthen  <davidz@redhat.com>
3400
3401         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3402         watches (if applicable) and add new watches
3403
3404         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3405         (main): Setup SIGIO signal handler if using D_NOTIFY
3406
3407         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3408
3409         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3410         (merge_included): Also merge conf_dirs list
3411         (bus_config_parser_unref): Clear conf_dirs list
3412         (include_dir): Add directory to conf_dirs list
3413         (bus_config_parser_get_conf_dirs): New function
3414
3415         * bus/dir-watch.[ch]: New files
3416
3417         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3418
3419         * configure.in: Add checks for D_NOTIFY on Linux
3420
3421 2005-06-14  Colin Walters  <walters@verbum.org>
3422
3423         * glib/dbus-binding-tool-glib.c:
3424         * glib/dbus-gobject.c:
3425         * glib/dbus-gvalue.c: Fix indentation and brace style.
3426         
3427 2005-06-14  Ross Burton <ross@openedhand.com>.
3428
3429         * glib/dbus-glib.h: Make DBusGMethodInvocation
3430         a private structure.  Rearrange prototypes a bit.
3431         
3432         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3433         documentation for first_arg_type.
3434         
3435         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3436         here, add documentation.  Move dbus_g_method_return
3437         and dbus_g_method_return_error into public API
3438         section.
3439
3440 2005-06-14  Colin Walters  <walters@verbum.org>
3441
3442         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3443         Add missing return statements, noticed by Ross Burton.
3444         
3445 2005-06-13  Ross Burton <ross@openedhand.com>.
3446
3447         * glib/dbus-gobject.c: Handle errors on message
3448         demarshalling by sending error message back.
3449         * glib/dbus-gvalue.c: Initialize return variables.
3450
3451 2005-06-13  Colin Walters  <walters@verbum.org>
3452
3453         * glib/Makefile.am: Fix thinko in last patch.
3454
3455 2005-06-13  Colin Walters  <walters@verbum.org>
3456
3457         * glib/Makefile.am: Move dbus-gtype-specialized.c
3458         and dbus-gtype-specialized.h into a _HEADERS variable,
3459         install them.
3460
3461 2005-06-12  Colin Walters  <walters@verbum.org>
3462
3463         Async signals and various bugfixes and testing by
3464         Ross Burton <ross@openedhand.com>.
3465
3466         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3467         (dbus_gvalue_genmarshal_name_from_type)
3468         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3469         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3470         (dbus_g_value_types_init, dbus_gtype_from_signature)
3471         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3472         (dbus_gtypes_from_arg_signature): New function prototypes.
3473         (dbus_gvalue_demarshal): Take context and error arguments.
3474         (dbus_gvalue_demarshal_variant): New function.
3475         (dbus_gvalue_demarshal_message): New function.
3476         (dbus_gvalue_store): Delete.
3477
3478         * glib/dbus-gvalue.c:
3479
3480         File has been almost entirely rewritten; now we special-case
3481         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3482         hash tables correctly, etc.  Full support for recursive values
3483         is not yet complete.
3484
3485         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3486         argument of signal to G_TYPE_POINTER since we now pass a
3487         structure.
3488         (lookup_g_marshaller): Delete in favor of
3489         _dbus_gobject_lookup_marshaller.
3490         (marshal_dbus_message_to_g_marshaller): Use
3491         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3492         to handle remote signal callbacks.
3493         (dbus_g_proxy_new_from_proxy): New function; creates a new
3494         DBusGProxy by copying an existing one.
3495         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3496         (dbus_g_proxy_get_path): New functions.
3497         (dbus_g_proxy_marshal_args_to_message): New function;
3498         factored out of existing code.
3499         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3500         from a varargs array.
3501         (dbus_g_proxy_begin_call_internal): New function.
3502         (dbus_g_proxy_end_call_internal): New function.
3503         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3504         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3505         after collecting args into value array.
3506         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3507         invoke dbus_g_proxy_end_call_internal.
3508         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3509         end_call_internal.
3510         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3511         types.
3512         (array_free_all): New function.
3513         (dbus_g_proxy_add_signal): Take GTypes.
3514
3515         * glib/dbus-gobject.h:
3516         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3517         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3518         Prototype.
3519
3520         * glib/dbus-gobject.c: Add a global marshal_table hash which
3521         stores mappings from type signatures to marshallers.  Change lots
3522         of invocations of dbus_gtype_to_dbus_type to
3523         dbus_gtype_to_signature.
3524         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3525         (introspect_signals): Fix test for query.return_type.
3526         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3527         (invoke_object_method): Many changes.  Handle asynchronous
3528         invocations.  Convert arguments with
3529         dbus_gvalue_demarshal_message.  Handle errors.  Use
3530         DBusSignatureIter instead of strlen on args. Handle all arguments
3531         generically.  Special-case variants.
3532         (dbus_g_method_return, dbus_g_method_return_error): New function.
3533         (DBusGSignalClosure): New structure, closes over signal
3534         information.
3535         (dbus_g_signal_closure_new): New function.
3536         (dbus_g_signal_closure_finalize): New function.
3537         (signal_emitter_marshaller): New function; is special marshaller
3538         which emits signals on bus.
3539         (export_signals): New function; introspects object signals and
3540         connects to them.
3541         (dbus_g_object_type_install_info): Take GType instead of
3542         GObjectClass.
3543         (dbus_g_connection_register_g_object): Invoke export_signals.
3544         (dbus_g_connection_lookup_g_object): New function.
3545         (DBusGFuncSignature) New structure; used for mapping type
3546         signatures to marshallers.
3547         (funcsig_hash): New function; hashes DBusGFuncSignature.
3548         (funcsig_equal): New function; compares DBusGFuncSignature.
3549         (_dbus_gobject_lookup_marshaller): New function.
3550         (dbus_g_object_register_marshaller): New function; used to
3551         register a marshaller at runtime for a particular signature.
3552
3553         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3554
3555         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3556         which notes a server method implementation should be
3557         asynchronous.
3558
3559         * glib/dbus-binding-tool-glib.c
3560         (dbus_binding_tool_output_glib_server): Call
3561         dbus_g_value_types_init.
3562         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3563         variants specially.
3564         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3565         of a lookup function.
3566         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3567         (write_untyped_out_args): New method; write output arguments.
3568         (write_formal_declarations_for_direction): Function for
3569         writing prototypes.
3570         (write_formal_parameters_for_direction): Function for
3571         writing implementations.
3572         (write_typed_args_for_direction): Function for writing
3573         arguments prefixed with GTypes.
3574         (write_async_method_client): Write out async version
3575         of method.
3576
3577         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3578         (dbus_g_type_get_marshal_name): Move mapping from GType
3579         to marshal name into here.
3580         (dbus_g_type_get_c_name): Move into here.
3581         (compute_marshaller): Convert signature to type with
3582         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3583         (compute_marshaller_name): Ditto.
3584         (compute_marshaller): Handle async signal annotations.
3585         (gather_marshallers): Return if we don't have a known
3586         prefix.
3587         (generate_glue): Collect introspection blob here, and
3588         write all of the blob at the end.  This allows an object
3589         with multiple interfaces to work.
3590         Mark async methods in introspection blob.
3591
3592         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3593         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3594         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3595
3596         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3597         avoids people accidentally using DBUS_TYPE_* which should
3598         not be necessary anymore.
3599         Do include dbus-gtype-specialized.h, which are utilities
3600         for GLib container types.
3601         Add various #defines for types such as
3602         DBUS_TYPE_G_BOOLEAN_ARRAY.
3603         (DBusGValueIterator, DBusGValue): Define, not fully used
3604         yet.
3605         (dbus_g_value_get_g_type): Type for recursive value.
3606         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3607         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3608         (dbus_g_value_free): Prototypes.
3609         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3610         (dbus_g_proxy_set_interface): Prototype.
3611         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3612         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3613         types.
3614         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3615         Accessors.
3616         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3617         doing async invocations.
3618         (dbus_g_method_return, dbus_g_method_return_error):
3619         Prototypes.
3620         * doc/dbus-tutorial.xml: Update GLib section.
3621         
3622         * tools/dbus-viewer.c (load_child_nodes): Update
3623         for new invocation type of dbus_g_proxy_end_call.
3624         (load_from_service_thread_func): Ditto.
3625
3626         * tools/print-introspect.c (main): Ditto.
3627
3628         * tools/dbus-names-model.c (have_names_notify)
3629         (names_model_reload, names_model_set_connection)
3630         Use GTypes.
3631
3632         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3633         needed since Python bindings use GLib bindings.
3634
3635         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3636         Add --prefix argument.
3637
3638         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3639         unneeded --ignore-unsupported arg.
3640         
3641         * test/glib/test-service-glib.c: 
3642         * test/glib/test-service-glib.xml:
3643         * test/glib/test-dbus-glib.c: Add many more tests.
3644
3645 2005-06-06  David Zeuthen  <davidz@redhat.com>
3646
3647         * doc/TODO: Add item about need to remove deprecated functions.
3648
3649         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3650
3651         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3652         to repair the ABI which was broken with the last commit.
3653
3654 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3655
3656         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3657         (dbus_connection_disconnect): renamed to dbus_connection_close 
3658         for API symmetry with dbus_connection_open
3659         (_dbus_connection_open_internal): 
3660         s/dbus_connection_disconnect/dbus_connection_close
3661
3662         * dbus/dbus-bus.c (dbus_bus_get):
3663         s/dbus_connection_disconnect/dbus_connection_close
3664
3665         * bus/connection.c (bus_connections_unref, 
3666         bus_connections_setup_connection, bus_connections_expire_incomplete):
3667         s/dbus_connection_disconnect/dbus_connection_close
3668
3669         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3670         kill_client_connection_unchecked, check_hello_connection):
3671         s/dbus_connection_disconnect/dbus_connection_close
3672
3673         * bus/bus.c (new_connection_callback):
3674         s/dbus_connection_disconnect/dbus_connection_close
3675
3676         * tools/dbus-send.c (main):
3677         s/dbus_connection_disconnect/dbus_connection_close
3678
3679         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3680         s/dbus_connection_disconnect/dbus_connection_close
3681         
3682         * test/test-service.c (path_message_func, filter_func):
3683         s/dbus_connection_disconnect/dbus_connection_close
3684         
3685         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3686         
3687 2005-05-25  Colin Walters  <walters@verbum.org>
3688
3689         * dbus/dbus-protocol.h: Move various bus service #defines such
3690           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3691           dbus/dbus-shared.h.
3692         * dbus/dbus-shared.h: Various defines moved here.
3693         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3694
3695 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3696
3697         * python/__init__.py: Python bindings deserve a minor version
3698         update.  Upped to (0, 40, 2)
3699
3700 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3701
3702         * python/decorators.py: add explicitly_pass_message decorator
3703         for passing in the dbus message as keyword for edge case signal
3704         handling
3705
3706         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3707         to conform with what dbus expects for match rules
3708         (SignalMatchRule.execute): add the dbus message as a keyword
3709         if the signal handler has requested it
3710
3711         * python/examples/example/signal-recipient.py: added some more
3712         examples on how to hook up to signals
3713
3714 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3715
3716         * python/decorators.py: import dbus_bindings
3717
3718         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3719         SignalMatchNode): new classes that implement wildcard signal
3720         callback matching using a tree lookup. Heavily modified from a
3721         patch sent by Celso Pinto (fd.o bug #3241)
3722
3723         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3724         use new match classes to handle signals.
3725
3726 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3727         
3728         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3729
3730 2005-05-18  Havoc Pennington  <hp@redhat.com>
3731
3732         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3733         gettext. Not really worth requiring yet perhaps, but any
3734         production quality 1.0 would require it so we should go ahead and
3735         get things set up. We do have a couple token calls to
3736         bindtextdomain in the code already.
3737
3738 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3739
3740         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3741         when using recursive g_main_loops
3742
3743         * python/_dbus.py (class Bus): add the ProxyObjectClass
3744         alias for ProxyObject to make it easier for the Twisted 
3745         networking framework to integrate dbus.
3746
3747         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3748         alias for ProxyMethod to make it easier for the Twisted 
3749         networking framework to integrate dbus. 
3750
3751 2005-05-11  Ross Burton  <ross@openedhand.com>
3752
3753         * glib/dbus-glib-tool.c: Add --prefix argument.
3754         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3755         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3756         Add prefix argument.
3757         (generate_glue): Pass prefix argument down.
3758         (dbus_binding_tool_output_glib_server): Pass prefix to
3759         glib-genmarshal.
3760         
3761 2005-05-11  Colin Walters  <walters@verbum.org>
3762
3763         * tools/dbus-send.c (append_array): New function.
3764         (append_arg): Broken out from main.
3765         (main): Add cheesy hack to send arrays and variants.
3766         (usage): Update.
3767         * tools/dbus-print-message.c (print_iter): Broken out
3768         from main.
3769
3770 2005-05-11  Colin Walters  <walters@verbum.org>
3771
3772         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3773         New function, returns signature string for signature iter.
3774         * dbus/dbus-signature.h: Prototype it.
3775         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3776         New function, returns signature string for message iter.
3777         (dbus_message_iter_get_array_len): New function, returns
3778         length of array.
3779         (dbus_message_iter_get_fixed_array): Fix assertion; this
3780         function should be used when the iter is pointing to the
3781         contents of an array
3782         * dbus/dbus-message.h: Prototypes.
3783         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3784         New function; returns length of an array.
3785         * dbus/dbus-marshal-recursive.h: Prototype it.
3786         
3787 2005-05-11  Colin Walters  <walters@verbum.org>
3788
3789         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3790         compilation error.
3791         
3792 2005-05-08  Havoc Pennington  <hp@redhat.com>
3793
3794         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3795         daemon's pid, not the parent's pid, to the file descriptor.
3796         Reported by Taj Morton.
3797
3798 2005-05-05  Havoc Pennington  <hp@redhat.com>
3799
3800         * configure.in (LT_*): add notes on how the libtool versioning
3801         works to save thinking. Increment soname to indicate protocol
3802         breakage (though really the library interface hasn't changed I
3803         guess)
3804
3805         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3806         verify the GUID received from server matches what we were
3807         expecting, if we had an expectation
3808
3809         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3810         (_dbus_auth_get_guid_from_server): new function
3811         (send_begin): parse the OK args
3812
3813         * doc/dbus-specification.xml: add GUID to the auth protocol
3814
3815 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3816
3817         * Fix my name in previous changelog ;)
3818
3819         * python/proxies.py (ProxyObject.__getattr__): add further patch
3820         from Anthony Baxter to throw an AttributeError when python 
3821         __special__ functions are called instead of marshling them over 
3822         the bus (Bug#1685 comment 3).
3823
3824 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3825
3826         * python/Makefile.am: changed to use pyexecdir for the binding
3827         shared libraries (Bug#2494)
3828
3829         * python/exceptions.py: bring exceptions over from the bindings
3830         so they can be used in applications (Bug#2036)
3831         Make all exceptions derive from DBusException
3832
3833         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3834         of classes so that print obj doesn't throw an exception (Bug #1685)
3835
3836 2005-05-03  Ross Burton  <ross@openedhand.com>
3837
3838         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3839         Return if we get an error during registration.  Set up a
3840         weak reference on object to unregister if object is destroyed.
3841         (unregister_gobject): New function.
3842         
3843 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3844
3845         * python/dbus_bindings.pyx.in: 
3846         - added new type classes for hinting to the marashaler what type 
3847         to send over the wire
3848         - added int16 and uint16 marshalers
3849         - Fixed a bug in the type constants that caused int32 to go out
3850         as uint16 over the wire
3851         * python/dbus.py: split up into different files and renamed _dbus.py
3852         * python/__init__.py, python/_util.py, python/decorators.py, 
3853         python/exceptions.py, python/proxies.py, python/services.py,
3854         python/types.py: new files split off from dbus.py
3855         * python/Makefile.am: Add new files, remove dbus.py and 
3856         install all python files to <python module dir>/dbus
3857         * python/examples/*: Added #!/usr/bin/env python to the top of
3858         every example.  Patch provided by Tatavarty Kalyan
3859
3860 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3861
3862         * NEWS: Update to 0.33
3863
3864 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3865
3866         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3867         method for doing async calls
3868         (_pending_call_notification): New C function for handling pendning call
3869         callbacks
3870         (set_notify): New method for setting pending call notification
3871         
3872         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3873         Async capabilities added to remote method calls
3874         (Sender): class removed
3875         (RemoteService): class removed
3876         (ObjectTree): class removed for now
3877         (RemoteObject): Renamed to ProxyObject
3878         (RemoteMethod): Renamed to ProxyMethod
3879         (method): Decorator added for decorating python methods as dbus methods
3880         (signal): Decorator added for decorating python methods as signal emitters
3881         (ObjectType): Metaclass added for generating introspection data and the
3882         method callback vtable
3883         (Interface): Wrapper class added to wrap objects in a dbus interface
3884         (Object): Uses ObjectType as its metaclass and exports Introspect
3885         of the org.freedesktop.DBus.Introspectable interface
3886         (ValidationException, UnknownMethodException): new exceptions
3887
3888         * python/examples/*: Modified to fit with the new bindings
3889
3890 2005-04-23  Havoc Pennington  <hp@redhat.com>
3891
3892         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3893         reported by Tony Houghton
3894
3895         * test/test-service.c (main): test
3896         dbus_connection_get_object_path_data()
3897
3898         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3899         the exact_match
3900         (_dbus_object_tree_get_user_data_unlocked): new function used by
3901         dbus_connection_get_object_path_data()
3902         (do_register): add assertion test for get_user_data_unlocked
3903         (object_tree_test_iteration): more tests
3904
3905         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3906         new function from Dan Reed to let you get the user data from 
3907         dbus_connection_register_object_path()
3908
3909 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3910
3911         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3912         in numerous places that did not account for the NULL terminator
3913         (signature_from_seed): changed the manual string copy loop to 
3914         just use strcpy instead
3915         make check should now pass
3916
3917 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3918
3919         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3920         so that it allows messages that are not signals to pass in 
3921         NULL as the interface.
3922
3923 2005-04-18  David Zeuthen  <davidz@redhat.com>
3924
3925         * glib/dbus-gmain.c (io_handler_destroy_source): 
3926         (timeout_handler_destroy_source, connection_setup_free): 
3927         Also unref the source to avoid memory leaks.
3928
3929 2005-04-13  David Zeuthen  <davidz@redhat.com>
3930
3931         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3932         more reasonable, yet still totally arbitrary, value :-). 
3933
3934 2005-04-13  David Zeuthen  <davidz@redhat.com>
3935
3936         * doc/TODO: Added an "important for 1.0" item about selinux
3937         allow/deny messages
3938
3939 2005-04-13  David Zeuthen  <davidz@redhat.com>
3940
3941         * bus/selinux.c: Add c-file-style to top of file
3942         (log_audit_callback): Don't free the data here anymore
3943         (bus_selinux_check): Don't take spid and tpid since appending
3944         that to auxdata may OOM.
3945         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3946         to the caller if we are OOM by taking an error object.
3947         (bus_selinux_allows_send): -do-
3948
3949         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3950         and bus_selinux_allows_send
3951
3952         * bus/bus.c (bus_context_check_security_policy): Pass error and
3953         pass on OOM thrown by bus_selinux_allows_send()
3954
3955         * bus/services.c (bus_registry_acquire_service): Pass error and
3956         pass on OOM thrown by bus_selinux_allows_acquire_service()
3957
3958 2005-04-13  Havoc Pennington  <hp@redhat.com>
3959
3960         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3961         message at a time to avoid monopolizing the main loop, bug 
3962         #2953 from Benjamin Otte
3963
3964 2005-04-09  Havoc Pennington  <hp@redhat.com>
3965
3966         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3967         possible overlap, fix from Daniel Reed
3968         (fixup_alignment): fix signedness warnings
3969         (_dbus_string_append_unichar): ditto
3970
3971 2005-04-09  Havoc Pennington  <hp@redhat.com>
3972
3973         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3974
3975         * glib/dbus-glib-tool.c (main): fix warning
3976
3977         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3978
3979         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3980         add a new function that can be used in simple applications that
3981         don't have a main loop and are willing to block
3982
3983 2005-04-05  David Zeuthen  <davidz@redhat.com>
3984
3985         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3986
3987         * glib/dbus-gmain.c:
3988         (io_handler_destroy_source): Remove from list of IO handlers
3989         of the ConnectionSetup object
3990         (timeout_handler_destroy_source): -do- for timeout handlers
3991         (io_handler_source_finalized): Don't remove from list since
3992         we now do that in io_handler_destroy_source(). Renamed from
3993         io_handler_source_destroyed
3994         (timeout_handler_source_destroyed): -do- for timeout handlers
3995         (connection_setup_free): It is now safe to iterate over all
3996         IO and timeout handlers as the _destroy_source removes them
3997         from the list synchronously
3998
3999 2005-03-30  Havoc Pennington  <hp@redhat.com>
4000
4001         * configure.in: change check to gtk 2.4
4002
4003         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4004         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4005         to 2.4
4006
4007 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4008
4009         * News: Update 0.32
4010
4011         * HACKING: Fixed realease instructions.  configure.in should be updated to
4012           the next release by the person who made the last release.
4013
4014 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4015
4016         * python/lvalue_cast_post_process.py - removed.  Patch has been
4017           submitted to Pyrex maintainers that fixes gcc4.0 errors
4018
4019         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4020
4021 2005-03-24  Daniel Reed  <n@ml.org>
4022
4023         * tools/Makefile.am: Make print-introspect and
4024         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4025
4026 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4027
4028         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4029
4030         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4031           had in Red Hat packages for a while but for some reason never 
4032           got merged upstream
4033           (_dbus_is_a_number): New checks if a string
4034           can be converted to a number and does the conversion if it can
4035           (_dbus_user_database_lookup): Add check to see if the given username
4036           is a udi.  This allows udi's to be used instead of usernames in the
4037           config file.
4038           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4039           is a gdi.  This allows gdi's to be used instead of groupnames in the
4040           config file.
4041
4042 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4043
4044         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4045           code so that it compiles with gcc4.0
4046
4047         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4048           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4049           results back to dbus_binding.c
4050
4051 2005-03-20  Colin Walters  <walters@verbum.org>
4052
4053         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4054
4055         * configure.in: Require GTK+ 2.6.
4056         
4057 2005-03-20  Colin Walters  <walters@verbum.org>
4058
4059         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4060
4061 2005-03-17  Tom Parker  <palfrey@tevp.net>
4062
4063         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4064         print DBUS_UID_UNSET; instead print passed username.  Also
4065         be sure to actually use gid looked up in cache.
4066         
4067         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4068         for DBUS_GID_UNSET and groupname.
4069
4070 2005-03-17  Colin Walters  <walters@verbum.org>
4071
4072         * bus/print-introspect.c: Move to tools/.
4073         * bus/run-with-tmp-session-bus.sh: Ditto.
4074         
4075         * glib/Makefile.am (dbus-glib-bindings.h): Move
4076         generation to tools/Makefile.am.
4077
4078         * test/glib/run-test.sh: Update to handle move
4079         of run-with-tmp-session-bus.sh.
4080
4081         * test/glib/test-service-glib.c: Update to handle
4082         move of dbus-glib-bindings.h.
4083
4084         * tools/print-introspect.c: Moved here
4085         from bus/, and ported to GLib bindings.
4086
4087         * tools/run-with-tmp-session-bus.sh: Moved here
4088         from bus/.
4089
4090         * tools/Makefile.am: Generate dbus-glib-bindings.h
4091         and dbus-bus-introspect.xml here.
4092
4093         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4094         Update.
4095
4096 2005-03-17  Colin Walters  <walters@verbum.org>
4097
4098         * bus/driver.c (write_args_for_direction): Use
4099         _dbus_string_get_const_data to retrieve string;
4100         _dbus_string_get_const_data_len doesn't actually return
4101         a NULL-terminated substring.
4102
4103         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4104         (main): Change to use org_freedesktop_DBus_request_name
4105         instead of using g_proxy_begin_call/end_call.
4106
4107 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4108
4109         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4110         generating the finalizer.  Fixes from Ben Maurer.
4111
4112 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4113
4114         * mono/BusDriver.cs: Update method names: ListServices
4115         becomes ListNames; GetOwner becomes GetNameOwner.
4116
4117         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4118         onto the eval stack when removing the delegate.
4119
4120 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4121
4122         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4123         LT_CURRENT.  Set it to the autoconf variable.
4124                                                                                 
4125         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4126         classes that disconnects the signal handler delegate from the
4127         service object.  Fixes a big leak of proxy objects on the
4128         client side of things.  Patch from Ben Maurer
4129         <bmaurer@ximian.com>
4130
4131 2005-03-12  Colin Walters  <walters@verbum.org>
4132
4133         * bus/driver.c (write_args_for_direction): New function,
4134         parses a type signature into arguments and outputs to
4135         XML.
4136         (bus_driver_handle_introspect): Use it instead of
4137         hardcoding XML for certain signatures.
4138         
4139         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4140         dependency on dbus-daemon.
4141
4142         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4143         argument, pass it to dbus_binding_tool_output_glib_client.
4144
4145         * glib/dbus-binding-tool-glib.c
4146         (generate_client_glue): Protect against multiple inclusion.
4147         (dbus_binding_tool_output_glib_client): Add
4148         G_BEGIN_DECLS/G_END_DECLS.
4149
4150         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4151         Change to just take iface prefix directly.
4152         (write_formal_parameters): Clarify error message.
4153         (check_supported_parameters): New function; checks to see type
4154         signatures of method parameters are supported.
4155         (generate_client_glue): Handle ignore_unsupported flag.
4156         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4157         parameter.
4158
4159         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4160         --ignore-unsupported by default until glib bindings
4161         support arrays.
4162
4163 2005-03-11  Colin Walters  <walters@verbum.org>
4164
4165         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4166         install it.
4167
4168         * bus/print-introspect.c: New file; prints introspection
4169         data for a given name and object path.
4170
4171         * bus/run-with-tmp-session-bus.sh: New file, refactored
4172         from test/glib/run-test.sh.  Creates a temporary session
4173         bus and runs another program.
4174
4175         * test/glib/run-test.sh: Refactor to invoke
4176         run-with-tmp-session-bus.sh.
4177
4178         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4179         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4180         macros instead of hardcoding.
4181
4182         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4183
4184 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4185
4186         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4187         this unref; it doesn't match up evenly in some codepaths.
4188         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4189         this evenly matches with the ref near the top of this function.
4190
4191 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4192
4193         * dbus/dbus-object-tree.c
4194         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4195         and we try to unregister a path that's not registered, still go
4196         through the process of unlocking and don't just return.
4197
4198 2005-03-09  Colin Walters  <walters@verbum.org>
4199
4200         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4201         to this are generated for client-side wrappers.  Invokes a
4202         D-BUS method and returns reply values.  
4203
4204         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4205         function; writes signature string for argument direction.
4206         (write_args_for_direction): Change to pass input values directly
4207         instead of via address, and fix indentation.
4208         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4209         make generated wrappers inlineable.
4210
4211         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4212         note about using dbus_type_is_fixed.
4213
4214         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4215         dbus/dbus-signature.c as dbus_type_is_fixed.
4216
4217         All callers updated.
4218
4219         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4220         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4221
4222         * dbus/dbus-signature.h: Prototype.
4223
4224         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4225         error printf code.
4226
4227         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4228         appropriate instead of just freeing it.
4229         (main): Free returned strings using g_free.
4230
4231         * test/glib/Makefile.am (test-service-glib-glue.h)
4232         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4233
4234         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4235         simply maps a simple D-BUS type to GType.
4236         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4237         GType.
4238         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4239         initialize the value with it.
4240         (dbus_gvalue_binding_type_from_type): Unused, delete.
4241         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4242         various types instead of unmarshalling to value data directly.
4243         Remove can_convert boolean.
4244         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4245         returning directly instead of using can_convert boolean.
4246         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4247         Stores a GValue in a pointer to a value of its corresponding C
4248         type.
4249
4250         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4251         add dbus_gvalue_store.
4252
4253 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4254
4255         Fix a bunch of lifecycle and memory management problems
4256         in the mono bindings.
4257
4258         * mono/Arguments.cs (Arguments): Implement IDisposable
4259
4260         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4261         strictly a static class.
4262
4263         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4264         delegates into this file.
4265         (Connection): Implement IDisposable.
4266         (Dispose): Disconnect the connection and set the raw connection
4267         pointer to IntPtr.Zero.
4268         (~Connection): Call Dispose().
4269         (RegisterObjectPath): Added.  Manages the registration of object
4270         paths so we can cleanly disconnect them at dispose/finalize time.
4271         (UnregisterObjectPath): Ditto.
4272         (set_RawConnection): Unregister all of the object paths when
4273         changing the underlying DBusConnection.  Add them back onto the
4274         new connection, if any.
4275
4276         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4277         more unmanaged resources anymore, so it's not necessary.  Move all
4278         the DBusObjectPathVTable stuff out of here.
4279         (Handler): Save references to our delegates so that they don't get
4280         finalized.  Call Connection.RegisterObjectPath() instead of
4281         dbus_connection_register_object_path() directly.
4282         (Message_Called): Dispose the message after we're finished with
4283         it.
4284
4285         * mono/Message.cs (Message): Implement IDisposable.
4286         (Dispose): Dispose the Arguments, and set the RawMessage to
4287         IntPtr.Zero.
4288         (SendWithReplyAndBlock): We own the ref to the reply that comes
4289         back from dbus_connection_send_with_reply_and_block() so add a
4290         comment about that and unref it after we've constructed a managed
4291         MethodReturn class around it.  Fixes a big, big leak.
4292
4293         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4294         method.
4295         (BuildSignalHandler): After we've sent the Signal message, dispose
4296         of it.
4297         (BuildMethod): Dispose of the method call and reply messages after
4298         we've sent the message and extracted the data we want from the
4299         reply.
4300
4301         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4302         anymore.
4303         (Service_FilterCalled): Dispose of the message after we're
4304         finished with it.
4305
4306 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4307
4308         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4309         After we attach our pending call to the connection, unref
4310         it.  Fixes a leak.
4311  
4312         * mono/Connection.cs (set_RawConnection): Disconnect our
4313         filter and match callbacks from the old connection and
4314         reconnect them to the new connection, if any.
4315
4316         * mono/DBusType/Array.cs: "Code" is a static member, so
4317         don't use "this" to refer to it.  Fix for stricter checking
4318         in Mono 1.1.4.
4319  
4320         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4321         object path that we pass into unmanaged code.
4322  
4323         * mono/DBusType/String.cs (Append): Don't leak the string
4324         that we pass into unmanged code.
4325
4326 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4327         * NEWS: Update for 0.31
4328
4329         * configure.in: Release 0.31
4330         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4331
4332         * qt/Makefile.am: fixed build
4333
4334         * dbus/Makefile.am: soname bump for libdbus
4335
4336         * glib/Makefile.am: soname bump for libdbus-glib
4337
4338 2005-03-05  Havoc Pennington  <hp@redhat.com>
4339
4340         * dbus/dbus-sysdeps.c:
4341         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4342         value
4343         (_dbus_generate_random_bytes_buffer): fix return value
4344
4345         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4346         checks actually work, from Tom Parker <fdo@tevp.net>
4347
4348 2005-03-01  Colin Walters  <walters@verbum.org>
4349
4350         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4351         functions copied from dbus-glib-tool.c.
4352         (main): Convert lots of error code to use them.
4353         Also add some testing for introspection bits.
4354
4355 2005-03-01  Colin Walters  <walters@verbum.org>
4356         
4357         * doc/TODO: Remove introspection signature TODO.
4358
4359 2005-02-27  Colin Walters  <walters@verbum.org>
4360
4361         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4362         Change return value to const char * instead of int so we can do
4363         full signatures.
4364         (struct PropertyInfo, struct ArgInfo): Store char *.
4365         (property_info_new, arg_info_new): Update parameters, strdup.
4366         (property_info_unref, arg_info_unref): Free.
4367
4368         * glib/dbus-gidl.h: Update prototypes.
4369
4370         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4371         (validate_signature): New function, just validates signature and
4372         sets GError.
4373         (parse_property, parse_arg): Invoke validate_signature.  Store
4374         signature instead of just type code.
4375
4376         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4377         function to return a primary type for a signature, dropping
4378         information about types in container types.
4379         (dbus_gvalue_genmarshal_name_from_type)
4380         (dbus_gvalue_binding_type_from_type)
4381         (dbus_gvalue_ctype_from_type): Update to take full signature
4382          instead of type code.
4383         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4384
4385         * glib/dbus-gvalue.h: Update prototypes for above.
4386
4387         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4388         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4389         (introspect_properties, introspect_signals, write_interface):
4390         Update to handle signatures, and remove usage of
4391         _dbus_gutils_type_to_string.
4392         (handle_introspect): Print out type codes instead of e.g. "string"
4393         in hardcoded introspection XML; also use x_AS_STRING constants
4394         instead of hardcoding in string.
4395
4396         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4397         to string.  Remove usage of _dbus_gutils_type_to_string.
4398
4399         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4400
4401         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4402         deletion.
4403         
4404         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4405         (compute_marshaller_name, generate_glue): Handle signature change
4406         to string.
4407         (write_formal_parameters, write_args_for_direction): Ditto, and
4408         remove FIXME.
4409
4410         * tools/dbus-tree-view.c (type_to_string): Delete.
4411         (info_set_func_text): Update to print full signatures.
4412
4413         * test/glib/test-service-glib.xml: Change types to new
4414         introspection format.
4415
4416 2005-02-26  Havoc Pennington  <hp@redhat.com>
4417
4418         * doc/TODO: remove the "guid" item
4419
4420         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4421         (with_bus_thread_func): use open_private
4422
4423         * dbus/dbus-connection.c (dbus_connection_open_private): new
4424         function that works like the old dbus_connection_open()
4425         (dbus_connection_open): now returns an existing connection if
4426         possible
4427
4428         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4429         through the GUID to the transport
4430
4431         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4432         GUID in hex-encoded form.
4433
4434         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4435         pass GUID argument in to the transport
4436
4437         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4438         guid argument
4439
4440         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4441
4442         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4443
4444 2005-02-25  Havoc Pennington  <hp@redhat.com>
4445
4446         * doc/dbus-specification.xml: document the GUID thing
4447
4448         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4449         globally unique ID for the server, and put a "guid=hexencoded"
4450         field in the address
4451
4452         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4453
4454         * dbus/dbus-message.c: ditto
4455
4456         * dbus/dbus-dataslot.c: ditto
4457
4458         * dbus/dbus-list.c: ditto
4459
4460         * dbus/dbus-internals.h: wait, just include
4461         dbus-threads-internal.h here
4462         
4463         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4464         use in main library
4465
4466         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4467
4468 2005-02-24  Colin Walters  <walters@verbum.org>
4469
4470         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4471
4472 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4473
4474         * glib/Makefile.am: added dbus-gobject.h to sources list
4475         so distcheck doesn't fail
4476         
4477 2005-02-24  Havoc Pennington  <hp@redhat.com>
4478
4479         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4480         you must disconnect before unref, since locking and other things
4481         are screwed up otherwise. Fix assorted other locking stuff.
4482
4483         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4484         fix compilation
4485
4486         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4487         into a private header and don't export from the library
4488
4489         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4490
4491 2005-02-24  Colin Walters  <walters@verbum.org>
4492         
4493         * dbus/dbus-signature.c: New file; implements various functions
4494         related to type signatures.  Includes an interator for parsing,
4495         validation functions.
4496         (dbus_type_is_basic): Moved here from
4497         dbus-marshal-basic.c:_dbus_type_is_basic.
4498         (dbus_type_is_container): Moved here from
4499         dbus-marshal-basic.c:_dbus_type_is_container.
4500
4501         All callers of _dbus_type_is_container and _dbus_type_is_basic
4502         updated, and include dbus-signature.h.
4503
4504         * dbus/dbus-signature.h: New file; prototypes for the above.
4505
4506         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4507         dbus-signature.h.
4508
4509         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4510         function factored out of _dbus_first_type_in_signature.
4511         (_dbus_first_type_in_signature_c_str): New function; returns first
4512         type code for a type signature character.
4513
4514         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4515         handle function moves.
4516
4517         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4518
4519         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4520         function; skips to next complete type in type signature.
4521         Implemented using previous skip_one_complete_type.  Now
4522         skip_one_complete_type just delegates to
4523         _dbus_type_signature_next.
4524
4525         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4526         to dbus-signature.c
4527         (_dbus_type_is_container): Ditto.
4528
4529         * doc/dbus-specification.xml: Update introspection sample to
4530         use real type signatures.
4531
4532         * dbus/dbus-test.h: Prototype signature test.
4533
4534         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4535         signature tests.
4536
4537         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4538
4539 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4540
4541         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4542         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4543
4544 2005-02-21  Colin Walters  <walters@verbum.org>
4545
4546         * dbus/dbus-test-main.c (main): Take optional specific test
4547         argument.
4548
4549         * dbus/dbus-test.c (run_test): New function, runs a test function
4550         with no data directory.
4551         (run_data_test): Like above, but takes data directory.
4552         (dbus_internal_do_not_use_run_tests): Take
4553         specific test argument.  Replace lots of cut n' paste code
4554         with run_test and run_data_test.
4555
4556         * dbus/dbus-test.h: Update prototype for
4557         dbus_internal_do_not_use_run_tests.
4558
4559 2005-02-20  Havoc Pennington  <hp@redhat.com>
4560
4561         Fix bugs reported by Daniel P. Berrange
4562         
4563         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4564         (protected_change_watch): new function
4565         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4566         (_dbus_server_add_watch): change to work like the
4567         dbus-connection.c equivalents; like those, probably kind of
4568         busted, but should at least mostly work for now
4569         (dbus_server_disconnect): drop the lock if we were already
4570         disconnected, patch from Daniel P. Berrange
4571
4572         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4573         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4574         same stuff
4575
4576         * doc/TODO: todo about unscrewing this mess
4577
4578 2005-02-19  Colin Walters  <walters@verbum.org>
4579
4580         * glib/dbus-binding-tool-glib.c
4581         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4582
4583         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4584         as errno.h and sys/stat.h.
4585         (lose): New function, prints error with
4586         newline and exits.
4587         (lose_gerror): Similar, but takes GError for message.
4588         (main): Add --output argument to specify output file to write to,
4589         instead of always printing to stdout.  In this mode, determine
4590         timestamps on source files to see whether any are newer than the
4591         target file.  If not, exit.  Also convert a number of error
4592         messages to use lose (since it's shorter), and switch to using
4593         g_io_channel_shutdown.
4594
4595 2005-02-19  Havoc Pennington  <hp@redhat.com>
4596
4597         * glib/dbus-gobject.c
4598         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4599
4600         * glib/dbus-glib.c: fix doxygen warnings
4601
4602         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4603         is found on an <arg>
4604
4605 2005-02-17  Colin Walters  <walters@verbum.org>
4606
4607         * glib/dbus-gobject.h: Don't export
4608         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4609         
4610         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4611         (invoke_object_method): Handle it.
4612
4613         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4614         Handle rename.
4615         
4616 2005-02-17  Colin Walters  <walters@verbum.org>
4617
4618         * bus/.cvsignore, doc/.cvsignore
4619         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4620         Update.
4621
4622 2005-02-17  Colin Walters  <walters@verbum.org>
4623         
4624         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4625         Rename to DBUS_SERVICE_DBUS.
4626         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4627         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4628         Change the value from "org.freedesktop.Local"
4629         to "org.freedesktop.DBus.Local".
4630         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4631         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4632         DBUS_INTERFACE_INTROSPECTABLE.
4633         Change the value from "org.freedesktop.Introspectable"
4634         to "org.freedesktop.DBus.Introspectable".
4635         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4636         DBUS_INTERFACE_PROPERTIES.
4637         Change the value from "org.freedesktop.Properties"
4638         to "org.freedesktop.DBus.Properties".
4639         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4640         DBUS_INTERFACE_PEER.
4641         Change the value from "org.freedesktop.Peer"
4642         to "org.freedesktop.DBus.Peer".
4643         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4644         DBUS_INTERFACE_LOCAL.
4645         Change the value from "org.freedesktop.Local"
4646         to "org.freedesktop.DBus.Local".
4647
4648         All other users of those constants have been changed.
4649
4650         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4651
4652         * glib/dbus-gobject.c (handle_introspect): Use constants.
4653
4654         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4655
4656 2005-02-17  Colin Walters  <walters@verbum.org>
4657
4658         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4659         (parse_node, parse_interface, parse_method, parse_signal)
4660         (parse_property, parse_annotation): Lose if we're currently in an
4661         annotation.
4662         (parse_annotation): New function.
4663         (parser_start_element, parser_end_element): Handle annotation.
4664         (parse_method, parse_interface): Remove support for c_name attribute,
4665         switch to annotations.
4666
4667         * glib/dbus-gidl.h (interface_info_get_binding_names)
4668         (method_info_get_binding_names)
4669         (interface_info_get_binding_name, method_info_get_binding_name)
4670         (interface_info_set_binding_name, method_info_set_binding_name):
4671         Remove.
4672         (interface_info_get_annotations, method_info_get_annotations)
4673         (interface_info_get_annotation, method_info_get_annotation)
4674         (interface_info_add_annotation, method_info_add_annotation):
4675         Prototype.
4676
4677         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4678         for "bindings".
4679         (struct MethodInfo): Ditto.
4680         Straightfoward conversion of binding methods into annotation methods
4681         as prototyped.
4682
4683         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4684
4685         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4686
4687         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4688         Use new annotation API.
4689
4690         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4691         annotation element.
4692         
4693         * doc/dbus-specification.xml: Discuss introspection annotations,
4694         include list of well-known annotations.
4695
4696         * test/glib/test-service-glib.xml: Make validate against new DTD.
4697
4698 2005-02-17  Colin Walters  <walters@verbum.org>
4699
4700         This patch is based on initial work from
4701         Paul Kuliniewicz <kuliniew@purdue.edu>.
4702
4703         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4704         initialization of GValue from dbus type to here.
4705         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4706         for the "glib-genmarshal" program from a DBus type.
4707         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4708         into the C name for it we use in the glib bindings.
4709         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4710         glib C type (not GValue).
4711         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4712
4713         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4714         from dbus-gobject.c.
4715
4716         * glib/dbus-gutils.h: Prototype it.
4717
4718         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4719         (marshal_dbus_message_to_g_marshaller): Use new shared function
4720         dbus_glib_marshal_dbus_message_to_gvalue_array.
4721
4722         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4723         Will be changed once we have annotations.
4724
4725         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4726         GStaticRWLock.  Callers updated.
4727         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4728         (string_table_next): New function for iterating over zero-terminated
4729         string value array.
4730         (string_table_lookup): New function; retrieves specific entry in
4731         array.
4732         (get_method_data): New function; look up method data in object data chunk.
4733         (object_error_domain_prefix_from_object_info)
4734         (object_error_code_from_object_info): New functions, but not implemented yet.
4735         (method_interface_from_object_info): New function; retrieve interface name.
4736         (method_name_from_object_info): New function; retrieve method name.
4737         (method_arg_info_from_object_info): New function; retrieve argument data.
4738         (arg_iterate): New function; iterates over serialized argument data.
4739         (method_dir_signature_from_object_info): New function; returns a
4740         GString holding type signature for arguments for just one
4741         direction (input or output).
4742         (method_input_signature_from_object_info)
4743         (method_output_signature_from_object_info): New functions.
4744         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4745         converts dbus message arguments into a GValue array.  Used for both
4746         signal handling and method invocation.
4747         (struct DBusGlibWriteIterfaceData): New utility structure.
4748         (write_interface): New function; generate introspection XML for
4749         an interface.
4750         (introspect_interfaces): New function; gathers all interface->methods,
4751         generates introspection XML for them.
4752         (handle_introspect): Invoke introspect_interfaces.
4753         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4754         (lookup_object_and_method): New function; examines an incoming message
4755         and attempts to match it up (via interface, method name, and argument
4756         signature) with a known object and method.
4757         (gerror_domaincode_to_dbus_error_name): New function; converts a
4758         GError domain and code into a DBus error name.  Needs GError data
4759         added to object introspection to work well.
4760         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4761         GError.
4762         (invoke_object_method): New function to invoke an object method
4763         looked up via lookup_object_and_method.  Parses the incoming
4764         message, turns it into a GValue array, then invokes the marshaller
4765         specified in the DBusGMethodInfo.  Creates a new message with
4766         either return values or error message as appropriate.
4767         (gobject_message_function): Invoke lookup_object_and_method and
4768         invoke_object_method.
4769
4770         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4771         (enum DBusBindingOutputMode): New enum for binding output modes.
4772         (pretty_print): Print binding names.
4773         (dbus_binding_tool_error_quark): GError bits.
4774         (version): Fix typo.
4775         (main): Create GIOChannel for output.  Parse new --mode argument,
4776         possible values are "pretty-print", "glib-server", "glib-client".
4777         Use mode to invoke appropriate function.
4778         
4779         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4780
4781         * glib/dbus-glib-tool.h: New header, just includes GError bits
4782         for now.
4783
4784         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4785         maps binding style to name.
4786         (struct MethodInfo): Ditto.
4787         (get_hash_keys, get_hash_key): Utility function, returns keys for
4788         a GHashTable.
4789         (interface_info_new, method_info_new): Initialize bindings.
4790         (interface_info_unref, method_info_unref): Destroy bindings.
4791         (method_info_get_binding_names, method_info_get_binding_name)
4792         (interface_info_get_binding_names, interface_info_get_binding_name):
4793         Functions for retrieving binding names.
4794         (method_info_set_binding_name, interface_info_set_binding_name):
4795         Functions for setting binding names.
4796
4797         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4798         for glib binding generation.
4799
4800         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4801         and client-side glib glue generation.
4802
4803         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4804         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4805         dbus-glib-tool.h.
4806
4807         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4808         of using GClosureMarshal directly.
4809         (struct DBusGObjectInfo): Add n_infos member.
4810
4811         * test/glib/test-service-glib.xml: New file; contains introspection data
4812         for MyTestObject used in test-service-glib.c.
4813
4814         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4815         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4816         (my_object_uppercase, my_object_many_args): New test methods.
4817         (main): Use dbus_g_object_class_install_info to include generated object
4818         info.
4819
4820         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4821         as well as client-side bindings.
4822
4823         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4824         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4825         using both the dbus_gproxy stuff directly as well as the generated bindings.
4826
4827 2005-02-15  Havoc Pennington  <hp@redhat.com>
4828
4829         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4830         complete a pending call, don't run filters first.
4831
4832         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4833         dbus_pending_call_steal_reply
4834
4835         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4836         _dbus_connection_block_pending_call
4837         (dbus_pending_call_get_reply): change to steal_reply and return a
4838         ref
4839
4840         * dbus/dbus-connection.c
4841         (dbus_connection_send_with_reply_and_block): port to work in terms
4842         of DBusPendingCall
4843         (_dbus_connection_block_pending_call): replace block_for_reply
4844         with this
4845
4846 2005-02-14  Havoc Pennington  <hp@redhat.com>
4847
4848         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4849         properly handle looking up group information by name; fix 
4850         from j@bootlab.org
4851
4852 2005-02-13  Havoc Pennington  <hp@redhat.com>
4853
4854         * dbus/dbus-connection.c (dbus_connection_return_message) 
4855         (dbus_connection_borrow_message): hold dispatch lock while message
4856         is outstanding
4857         (_dbus_connection_block_for_reply): hold dispatch lock while we
4858         block for the reply, so nobody steals our reply
4859         (dbus_connection_pop_message): hold the dispatch lock while we
4860         pluck the message
4861
4862 2005-02-13  Havoc Pennington  <hp@redhat.com>
4863
4864         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4865         (_dbus_connection_release_dispatch)
4866         (_dbus_connection_acquire_io_path)
4867         (_dbus_connection_release_io_path): make the mutex and condvar
4868         control access to the "acquired" flag. Drop the connection lock
4869         while waiting on the condvar. Hopefully these are baby steps in
4870         roughly the right direction.
4871
4872 2005-02-13  Havoc Pennington  <hp@redhat.com>
4873
4874         * dbus/dbus-connection.c: use separate mutexes for the condition
4875         variables; this is some kind of baseline for sanity, but the
4876         condition variables still aren't used correctly afaict
4877
4878 2005-02-13  Havoc Pennington  <hp@redhat.com>
4879
4880         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4881         fix a double-unlock
4882
4883         * dbus/dbus-connection.c
4884         (_dbus_connection_detach_pending_call_unlocked): add this
4885
4886         Initial semi-correct pass through to fix thread locking; there are
4887         still some issues with the condition variable paths I'm pretty
4888         sure
4889         
4890         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4891         lock/unlock calls
4892
4893         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4894         rename to add _unlocked
4895         (struct DBusConnection): move "dispatch_acquired" and
4896         "io_path_acquired" to use only one bit each.
4897         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4898         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4899         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4900         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4901         (_dbus_connection_remove_timeout) 
4902         (_dbus_connection_toggle_timeout): drop lock when calling out to
4903         user functions; done in a hacky/bad way.
4904         (_dbus_connection_send_and_unlock): add a missing unlock
4905         (_dbus_connection_block_for_reply): add a missing unlock
4906
4907         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4908         drop lock in a hacky probably unsafe way to call out to user
4909         function
4910
4911 2005-02-12  Havoc Pennington  <hp@redhat.com>
4912
4913         * tools/dbus-tree-view.c (info_set_func_text): display more
4914         details on args
4915
4916         * bus/driver.c (bus_driver_handle_list_services): list the bus
4917         driver
4918
4919         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4920
4921         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4922         (method_info_get_n_args): new function
4923
4924 2005-02-12  Havoc Pennington  <hp@redhat.com>
4925
4926         * bus/driver.c (bus_driver_handle_introspect): add introspection
4927         for bus driver
4928
4929 2005-02-12  Havoc Pennington  <hp@redhat.com>
4930
4931         * bus/driver.c: put the signature of each bus driver method in the
4932         table of handlers and check it on incoming calls; this isn't
4933         really useful, but going to add introspect support in a minute.
4934
4935 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4936
4937         * mono/Connection.cs: The unpredictability of finalizers in mono
4938         prevents us from deterministically disconnecting the filters from
4939         the Service class's finalizer, so move tracking of filters and
4940         matches here.  Add API for that.
4941
4942         * mono/Service.cs: Remove the code, add code which calls the
4943         methods now on the Connection class.
4944
4945 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4946
4947         * python/dbus.py (class Sender): added to support dbus signals better
4948         (Bus::add_signal_receiver): added expand_args parameter which defaults
4949         to True.  When expand args is True the signal handler will pass the 
4950         message arguments as parameters to the signal handler.  If False
4951         revert to previous behavior where the signal handler must get the
4952         argument list from the message.  This is to help port applications
4953         like HAL that have a tendancy to send variable length argument lists.
4954         self._match_rule_to_receivers is now a dict of dicts.
4955         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4956         removing it from a list
4957         (Bus::_signal_func): change signal handlers so that interface,
4958         signal_name, service, path and message are packed into a Sender
4959         object and that is passed to the handler.  If expand_args is True
4960         extract the args list from the message and append it to the parameter
4961         list
4962         
4963         * python/dbus_bindings.pyx.in (class Signature): added to support 
4964         signiature types
4965         (MessageIter::__init__): changed iteration limit to match D-BUS
4966         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4967         STRUCT and VARIENT type support
4968         (MessageIter::python_value_to_dbus_sig): made recursive to support
4969         recursive types
4970         (MessageIter::append*): added Signature, dict, tuple 
4971         support
4972
4973         * python/examples/example-client.py: added examples of getting tuples
4974         and dicts
4975
4976         * python/examples/example-service.py: added examples of sending tuples
4977         and dicts
4978
4979         * python/examples/example-signal-recipient.py: Fixed to handle new
4980         signal callback format
4981
4982 2005-02-10  Havoc Pennington  <hp@redhat.com>
4983
4984         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4985         (call dbus_g_proxy_add_signal)
4986
4987         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4988         escape the hostname
4989         (_dbus_server_new_for_domain_socket): escape the path
4990
4991         * dbus/dbus-address.c (dbus_address_escape_value): new
4992         (dbus_address_unescape_value): new
4993         (dbus_parse_address): unescape values
4994
4995         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4996
4997         * doc/dbus-specification.xml: explain how to escape values in
4998         addresses
4999
5000 2005-02-10  Havoc Pennington  <hp@redhat.com>
5001
5002         * dbus/dbus-message-factory.c (generate_special): modify test to
5003         avoid using a non-basic dict key
5004
5005         * dbus/dbus-marshal-validate-util.c: add test for the below
5006
5007         * doc/dbus-specification.xml: require that dict keys are a basic
5008         type
5009
5010         * dbus/dbus-marshal-validate.c
5011         (_dbus_validate_signature_with_reason): require that dict key is a
5012         basic type
5013
5014 2005-02-10  Havoc Pennington  <hp@redhat.com>
5015
5016         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5017         change to be _and_unlock instead of _unlocked
5018
5019         * dbus/dbus-connection.c
5020         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5021         have no_update so we can find this bug quickly in future
5022
5023 2005-02-10  Havoc Pennington  <hp@redhat.com>
5024
5025         * dbus/dbus-message-util.c (verify_test_message): tests for string
5026         array
5027
5028         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5029         support for arrays of string/signature/path
5030
5031 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5032
5033         * dbus/dbus-connection.c
5034         (_dbus_connection_queue_received_message_link,
5035         _dbus_connection_message_sent): Add the path to
5036         the verbose output.
5037         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5038         _dbus_connection_send_preallocated_unlocked(), updated the
5039         dispatch status, and unlocks.  Fixes a bug where certain
5040         situations (like a broken pipe) could cause a Disconnect message
5041         to not be sent, tricking the bus into thinking a service was still
5042         there when the process had quit.
5043         (_dbus_connection_send_preallocated): Call
5044         _dbus_connection_send_preallocated_and_unlock().
5045         (_dbus_connection_send_and_unlock): Added.  Calls
5046         _dbus_connection_send_preallocated_and_unlock().
5047         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5048         (dbus_connection_send_with_reply): Update the dispatch status and
5049         unlock.
5050
5051         * mono/Service.cs (~Service): Added.  Removes the filter so that
5052         we don't get unmanaged code calling back into a GCed delegate.
5053         (RemoveFilter); Added.
5054
5055 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5056
5057         * dbus/dbus-message.c (dbus_message_iter_open_container):
5058         - Removed check for iterator type being an array because
5059         get_arg_type does not work with writer iterators
5060         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5061
5062 2005-02-07  Havoc Pennington  <hp@redhat.com>
5063
5064         * doc/dbus-specification.xml: some more language cleanups; add
5065         stuff about how to deal with invalid protocol and extension
5066         points; add _ to allowed chars in auth commands; add EXTENSION_
5067         auth command prefix
5068
5069 2005-02-06  Havoc Pennington  <hp@redhat.com>
5070
5071         * s/expected/required/ in a couple places for clarity
5072
5073 2005-02-07  Colin Walters  <walters@verbum.org>
5074
5075         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5076         sender or proposed_recipient.
5077
5078 2005-02-06  Havoc Pennington  <hp@redhat.com>
5079
5080         * dbus/dbus-message-factory.c (generate_special): more tests
5081
5082         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5083         array length that exceeds the maximum
5084
5085 2005-02-05  Havoc Pennington  <hp@redhat.com>
5086
5087         * dbus/dbus-message-factory.c (generate_special): more test cases,
5088         increasing coverage
5089
5090         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5091         reason why a signature was invalid
5092
5093         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5094         skip the length of the string before we look at it in validation
5095
5096         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5097         equal_substring
5098
5099         * dbus/dbus-message.c (_dbus_message_loader_new): default
5100         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5101
5102 2005-02-05  Havoc Pennington  <hp@redhat.com>
5103
5104         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5105         if the signature of a variant was empty
5106         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5107         struct with no element type)
5108
5109         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5110         mangled messages to break things
5111
5112 2005-02-04  Havoc Pennington  <hp@redhat.com>
5113
5114         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5115         g_quark_try_string() so it actually can return 0
5116         (dbus_g_proxy_connect_signal): ditto
5117
5118 2005-02-04  Havoc Pennington  <hp@redhat.com>
5119
5120         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5121         bogus warning
5122         (tristring_from_message): assert cleanly on null path/interface
5123         (should not be possible though I decided later)
5124         (dbus_g_proxy_dispose): move proxy manager unregistration here
5125         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5126         g_return_if_fail() checks
5127
5128 2005-02-04  Havoc Pennington  <hp@redhat.com>
5129
5130         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5131
5132         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5133         (with some minor changes)
5134
5135         * doc/dbus-specification.xml: add deprecated attribute to
5136         introspection format
5137
5138 2005-01-31  Havoc Pennington  <hp@redhat.com>
5139
5140         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5141         think it's sort of right
5142
5143 2005-01-30  Havoc Pennington  <hp@redhat.com>
5144
5145         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5146
5147 2005-01-30  Havoc Pennington  <hp@redhat.com>
5148
5149         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5150
5151         * autogen.sh: change to autotools 1.9
5152
5153         * glib/dbus-gproxy.c: completely change how signals work
5154         (dbus_g_proxy_add_signal): new function to specify signature of a
5155         signal
5156         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5157         and g_warning if the incoming message has the wrong signature.
5158
5159 2005-01-30  Havoc Pennington  <hp@redhat.com>
5160
5161         * tools/dbus-names-model.c (have_names_notify): fix this
5162
5163         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5164         up the string array handling a bit 
5165
5166 2005-01-30  Havoc Pennington  <hp@redhat.com>
5167
5168         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5169         (dbus_g_pending_call_cancel): new function
5170
5171         * dbus/dbus-glib.h: move GType decls for connection/message here;
5172         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5173         here, just kind of rationalizing how we handle all that
5174
5175         * tools/dbus-names-model.c: new file for a tree model listing the
5176         services on a bus
5177
5178         * tools/dbus-tree-view.c (model_new): use proper typing on the
5179         model rows
5180
5181 2005-01-30  Havoc Pennington  <hp@redhat.com>
5182
5183         * glib/dbus-gmain.c: add a custom GSource back that just checks
5184         whether the message queue has anything in it; otherwise, there are 
5185         cases where we won't see messages in the queue since there was no 
5186         IO visible to the glib main loop
5187
5188         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5189         increase default message timeout to 25 seconds
5190
5191 2005-01-30  Havoc Pennington  <hp@redhat.com>
5192
5193         * test/glib/test-profile.c (no_bus_stop_server): remove the
5194         warning about the g_warning that I just fixed
5195
5196         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5197         custom source, seems to be a lot easier to understand and work
5198         better.
5199
5200 2005-01-30  Havoc Pennington  <hp@redhat.com>
5201
5202         I think this main loop thing is conceptually broken, but here are 
5203         some band aids. I'll maybe rewrite it in a minute.
5204         
5205         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5206         custom GSource, so don't pass it in; confusing
5207         (gsource_server_finalize, gsource_connection_finalize): add
5208         finalize handlers that remove all the watches.  
5209
5210 2005-01-30  Havoc Pennington  <hp@redhat.com>
5211
5212         * glib/dbus-gobject.c (introspect_properties): fix the XML
5213         generated
5214
5215         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5216         which effectively detects the use of freed messages
5217
5218         * glib/dbus-gobject.c (handle_introspect): modify and return the
5219         reply message instead of the incoming message
5220
5221         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5222         gee, maybe it should SEND THE XML instead of just making a string
5223         and freeing it again ;-)
5224
5225         * tools/dbus-print-message.c (print_message): improve printing of
5226         messages
5227
5228         * configure.in: add debug-glib.service to the output
5229
5230 2005-01-30  Havoc Pennington  <hp@redhat.com>
5231
5232         dbus-viewer introspected and displayed the bus driver
5233         
5234         * dbus/dbus-object-tree.c 
5235         (object_tree_test_iteration): add tests for a handler registered on "/"
5236
5237         * dbus/dbus-object-tree.c
5238         (_dbus_decompose_path): fix to handle path "/" properly
5239         (run_decompose_tests): add tests for path decomposition
5240         
5241         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5242         properly
5243
5244         * glib/dbus-gobject.c (handle_introspect): fix quotes
5245
5246         * test/glib/run-test.sh: support launching the bus, then running
5247         dbus-viewer
5248
5249         * test/glib/test-service-glib.c (main): put in a trivial gobject
5250         subclass and register it on the connection
5251
5252         * bus/driver.c (bus_driver_handle_introspect): implement
5253         introspection of the bus driver service
5254
5255         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5256         identifiers, doctype decl
5257
5258         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5259         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5260         returning the service unchanged.
5261         (bus_driver_handle_message): remove old check for reply_serial in
5262         method calls, now the message type deals with that
5263         (bus_driver_handle_message): handle NULL interface
5264
5265         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5266
5267         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5268         -1 for len
5269
5270         * tools/dbus-viewer.c: add support for introspecting a service on
5271         a bus
5272
5273         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5274         (dbus_g_pending_call_unref): add
5275
5276 2005-01-29  Havoc Pennington  <hp@redhat.com>
5277
5278         * tools/dbus-tree-view.c: add support for displaying properties.
5279         (run dbus-viewer with an introspect xml file as arg, then resize
5280         the window so the tree elements show up, not sure what that is)
5281
5282         * glib/dbus-gobject.c (handle_introspect): return
5283         org.freedesktop.Properties and org.freedesktop.Introspectable
5284         interfaces when we are introspected.
5285
5286         * doc/dbus-specification.xml: allow empty interface name when 
5287         Get/Set a property
5288
5289 2005-01-29  Havoc Pennington  <hp@redhat.com>
5290
5291         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5292         though it uses glib, it could be extended for any binding in
5293         principle
5294
5295         * glib/dbus-gobject.c (gobject_message_function): change to the
5296         new way properties work
5297
5298         * dbus/dbus-protocol.h: add the new interfaces
5299
5300         * doc/dbus-specification.xml: document the introspection format,
5301         Introspectable interface, and add an org.freedesktop.Properties
5302         interface.
5303
5304         * glib/dbus-gparser.c: add support for a <property> element
5305
5306         * glib/dbus-gidl.c: add PropertyInfo
5307
5308         * glib/dbus-gobject.c (handle_introspect): put the outermost
5309         <node> outside the signal and property descriptions.
5310         (introspect_properties): export properties as <property> rather
5311         than as method calls
5312
5313 2005-01-28  Havoc Pennington  <hp@redhat.com>
5314
5315         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5316         related to authentication protocol
5317
5318 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5319
5320         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5321                 - BUS_ACTIVATION -> BUS_STARTER
5322                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5323                 - class MessageIter (__init__): Added recursion checking 
5324                 so we throw a nice error instead of just disconnecting from the
5325                 bus.
5326                 (get): Added arg_type parameter for recursion.
5327                 Removed the nil type
5328                 Added signiture type placeholder (not implemented)
5329                 Added struct type placeholder (not implemented)
5330                 Added varient type placeholder (not implemented)
5331                 Commented out dict type for now     
5332                 (get_element_type): renamed from get_array_type
5333                 (get_*): changed to use the dbus_message_iter_get_basic API
5334                 (get_*_array): removed in favor of recursive get_array method
5335                 (get_array): new recursive method which calls get to marshal
5336                 the elements of the array
5337                 (value_to_dbus_sig): New method returns the corrasponding
5338                 dbus signiture to a python value
5339                 (append): Comment out dict handling for now
5340                 Handle lists with the new recursive API
5341                 Comment out None handling for now
5342                 (append_nil): removed
5343                 (append_*): changed to use dbus_message_iter_append_basic API
5344                 (append_*_array): removed in favor of recursive append_array 
5345                 method
5346                 (__str__): Make it easier to print out recursive iterators
5347                 for debugging
5348                 - class Message (__str__): moved type inspection to the
5349                 MessageIter class' __str__ method
5350                 (get_iter): Added an append parameter wich defaults to False
5351                 If True use the new API's to create an append iterator
5352
5353         * python/dbus.py: Update to use new bindings API
5354                 - TYPE_ACTIVATION -> TYPE_STARTER
5355                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5356                 - class ActivationBus -> class StarterBus
5357                 - class RemoteObject (__call__): get an append iterator
5358                 - (_dispatch_dbus_method_call): get an append iterator
5359                 - class Object (emit_signal): get an append iterator
5360
5361         * python/examples/: Fixed up the examples to work with the new API
5362                 
5363 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5364
5365         * configure.in: Bump version up to 0.30.
5366
5367         * HACKING: Add a release item to bump the version number up after 
5368         a release.
5369
5370 2005-01-28  Havoc Pennington  <hp@redhat.com>
5371
5372         * doc/dbus-specification.xml: update to describe 16-bit types and
5373         dict entries
5374
5375         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5376         assertion
5377
5378         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5379         type
5380
5381         * dbus/dbus-marshal-recursive.c: implement
5382
5383 2005-01-27  Havoc Pennington  <hp@redhat.com>
5384
5385         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5386
5387         * configure.in: find the right type for 16 and 32 bit ints as well
5388         as 64
5389
5390         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5391         the 16-bit types so people don't have to stuff them in 32-bit or
5392         byte arrays.
5393
5394 2005-01-27  Havoc Pennington  <hp@redhat.com>
5395
5396         * dbus/dbus-message.c: byteswap the message if you init an
5397         iterator to read/write from it
5398         
5399         * dbus/dbus-marshal-byteswap.c: new file implementing 
5400         _dbus_marshal_byteswap()
5401
5402         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5403
5404 2005-01-26  Havoc Pennington  <hp@redhat.com>
5405         
5406         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5407         build, apparently - nobody noticed?)
5408         
5409 2005-01-26  Havoc Pennington  <hp@redhat.com>
5410
5411         * dbus/dbus-marshal-recursive.h: remove todo comment
5412
5413 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5414
5415         * Land the mono binding changes to conform to the new APIs.
5416
5417         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5418         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5419
5420         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5421         type code as a string.
5422         (InitAppending): Rename dbus_message_append_iter_init() to
5423         dbus_message_iter_init_append().
5424
5425         * mono/BusDriver.cs: Rename ServiceEventHandler to
5426         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5427         Rename ServiceOwnerChanged to NameOwnerChanged.
5428
5429         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5430         underlying C call.
5431
5432         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5433
5434         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5435         dbus_bus_acquire_service() to dbus_bus_request_name().
5436
5437         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5438         of Type.UnderlyingSystemType to get the correct element type for
5439         the array.
5440         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5441         dbus_message_get_{element|arg}_type() instead of
5442         dbus_message_iter_init_array_iterator().
5443         (Append): Replace dbus_message_iter_append_array() with
5444         dbus_message_iter_open_container() and
5445         dbus_message_iter_close_container().
5446
5447         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5448         types have been removed.
5449         
5450         * mono/DBusType/*.cs: Replace calls of
5451         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5452         but specify the type in the DllImport extern declaration.  Ditto
5453         for dbus_message_iter_append_[type]() ->
5454         dbus_message_iter_append_basic().
5455
5456         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5457         NameOwnerChangedHandler.
5458
5459 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5460
5461         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5462                 - get_base_service -> get_unique_name
5463                 - bus_get_base_service -> bus_get_unique_name
5464                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5465                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5466                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5467                 - bus_activate_service -> bus_start_service_by_name
5468                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5469                 - bus_acquire_service -> bus_request_name
5470                 - dbus_bus_acquire_service -> dbus_bus_request_name
5471                 - bus_service_exists -> bus_name_has_owner
5472                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5473
5474         * python/dbus.py: Rename of methods
5475                 - activate_service -> start_service_by_name
5476                 - bus_acquire_service -> bus_request_name
5477                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5478                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5479
5480         
5481 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5482
5483         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5484         signature for the method that can't be found.
5485
5486         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5487         the message has any arguments, we need to call
5488         _dbus_type_reader_get_current_type(), not
5489         _dbus_type_reader_has_next().
5490
5491 2005-01-24  Havoc Pennington  <hp@redhat.com>
5492
5493         * dbus/dbus-message-factory.c: more testing of message validation
5494
5495         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5496         header
5497
5498 2005-01-23  Havoc Pennington  <hp@redhat.com>
5499
5500         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5501         get this all working, not many tests in the framework yet though
5502
5503 2005-01-22  Havoc Pennington  <hp@redhat.com>
5504
5505         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5506         tutorial, based on work from David Wheeler.
5507
5508 2005-01-21  Havoc Pennington  <hp@redhat.com>
5509
5510         * dbus/dbus-bus.c: add more return_if_fail checks
5511
5512         * dbus/dbus-message.c (load_message): have the "no validation"
5513         mode (have to edit the code to toggle the mode for now though)
5514
5515         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5516         skips all validation; I want to use this at least for benchmark
5517         baseline, I'm not sure if it should be a publicly-available switch.
5518
5519 2005-01-21  Havoc Pennington  <hp@redhat.com>
5520
5521         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5522         toplevel doxygen group as the low-level API stuff
5523
5524         * dbus/dbus.h: note that libdbus is the low-level API
5525
5526 2005-01-20  Havoc Pennington  <hp@redhat.com>
5527
5528         * update-dbus-docs.sh: script to update docs on the web site, only
5529         works for me though. neener.
5530
5531 2005-01-20  Havoc Pennington  <hp@redhat.com>
5532
5533         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5534         code can reveal bugs in it
5535
5536 2005-01-20  Havoc Pennington  <hp@redhat.com>
5537
5538         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5539         select() version, patches from Tor Lillqvist
5540
5541 2005-01-20  Havoc Pennington  <hp@redhat.com>
5542
5543         * doc/dbus-tutorial.xml: replace > with &gt;
5544
5545         * bus/services.c (bus_registry_acquire_service): validate the name
5546         and return a better error if it's no good.
5547
5548         * doc/dbus-specification.xml: note NO_AUTO_START change
5549
5550         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5551         from AUTO_START, we're toggling the default
5552
5553         * bus/dispatch.c: adapt the tests to change of auto-start default
5554
5555 2005-01-18  Havoc Pennington  <hp@redhat.com>
5556
5557         * rename dbus-daemon-1 to dbus-daemon throughout
5558
5559 2005-01-18  Havoc Pennington  <hp@redhat.com>
5560
5561         * Throughout, grand renaming to strip out the use of "service",
5562         just say "name" instead (or "bus name" when ambiguous).  Did not
5563         change the internal code of the message bus itself, only the
5564         programmer-facing API and messages.
5565         
5566         * doc/dbus-specification.xml: further update the message bus section
5567         
5568         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5569         in error case
5570
5571 2005-01-17  Havoc Pennington  <hp@redhat.com>
5572
5573         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5574         ever
5575
5576         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5577         "invalid name character" not only non-ASCII
5578
5579         * doc/dbus-specification.xml: further update spec, message bus 
5580         parts are still out-of-date but the marshaling etc. stuff is now
5581         accurate-ish
5582
5583 2005-01-17  Havoc Pennington  <hp@redhat.com>
5584
5585         * doc/dbus-specification.xml: partially update spec
5586
5587 2005-01-17  Havoc Pennington  <hp@redhat.com>
5588
5589         * Throughout, align variant bodies according to the contained
5590         type, rather than always to 8. Should save a fair bit of space in
5591         message headers.
5592         
5593         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5594         fix handling of case where p == end
5595
5596         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5597
5598 2005-01-17  Havoc Pennington  <hp@redhat.com>
5599
5600         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5601
5602         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5603         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5604         are marshaling/unmarshaling a boolean.
5605
5606 2005-01-16  Havoc Pennington  <hp@redhat.com>
5607
5608         This is about it on what can be disabled/deleted from libdbus
5609         easily, back below 150K anyhow. Deeper cuts are more work than 
5610         just turning the code off as I've done here.
5611         
5612         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5613         signed int convenience funcs
5614
5615         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5616         verbose mode
5617
5618         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5619         things out of libdbus
5620
5621         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5622         
5623         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5624         tests-enabled-only, though it should probably be deleted)
5625
5626         * dbus/dbus-message-util.c: same stuff
5627
5628         * dbus/dbus-auth-util.c: same stuff
5629
5630 2005-01-16  Havoc Pennington  <hp@redhat.com>
5631
5632         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5633
5634         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5635         way for stripping down dbus-userdb.c stuff included in libdbus.
5636         Rename _dbus_parse_uid for consistency.
5637
5638 2005-01-16  Havoc Pennington  <hp@redhat.com>
5639
5640         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5641         name the assertion failed in
5642
5643         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5644         (_dbus_return_val_if_fail): assert that the name of the function
5645         containing the check doesn't start with '_', since we only want to 
5646         use checks on public functions
5647         
5648         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5649         checks to assertions
5650
5651         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5652         change checks to asserts for private function
5653
5654         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5655         to asserts for private function
5656
5657         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5658         broken assertion that was breaking make check
5659         (_dbus_type_reader_array_is_empty): remove this rather than fix
5660         it, was only used in assertions
5661
5662 2005-01-16  Havoc Pennington  <hp@redhat.com>
5663
5664         * test/unused-code-gc.py: hacky script to find code that's used
5665         only by the bus (not libdbus) or used only by tests or not used at
5666         all. It has some false alarms, but looks like we can clean up a
5667         lot of size from libdbus.
5668
5669         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5670         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5671         
5672 2005-01-16  Havoc Pennington  <hp@redhat.com>
5673
5674         * Add and fix docs according to Doxygen warnings throughout
5675         source.
5676         
5677         * dbus/dbus-marshal-recursive.c
5678         (_dbus_type_reader_array_is_empty): change this to just call
5679         array_reader_get_array_len() and make it static
5680
5681         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5682         from get_array_type
5683         (dbus_message_iter_init_append): rename from append_iter_init
5684
5685         * dbus/dbus-marshal-recursive.c
5686         (_dbus_type_reader_get_element_type): rename from
5687         _dbus_type_reader_get_array_type
5688
5689 2005-01-15  Havoc Pennington  <hp@redhat.com>
5690
5691         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5692
5693         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5694         when DBUS_DISABLE_ASSERT
5695         (_dbus_marshal_set_basic): be sure we align for the string length
5696
5697         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5698         this look faster
5699
5700         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5701         inline macro version
5702         (_dbus_string_set_byte): provide inline macro version
5703
5704 2005-01-15  Havoc Pennington  <hp@redhat.com>
5705
5706         * Land the new message args API and type system.
5707
5708         This patch is huge, but the public API change is not 
5709         really large. The set of D-BUS types has changed somewhat, 
5710         and the arg "getters" are more geared toward language bindings;
5711         they don't make a copy, etc.
5712
5713         There are also some known issues. See these emails for details
5714         on this huge patch:
5715         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5716         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5717         
5718         * dbus/dbus-marshal-*: all the new stuff
5719
5720         * dbus/dbus-message.c: basically rewritten
5721
5722         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5723         freed blocks to be all non-nul bytes so using freed memory is less
5724         likely to work right
5725
5726         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5727         DBUS_FAIL_MALLOC=N environment variable, so you can do
5728         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5729         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5730         thorough.
5731
5732         * qt/message.cpp: port to the new message args API
5733         (operator<<): use str.utf8() rather than str.unicode()
5734         (pretty sure this is right from the Qt docs?)
5735
5736         * glib/dbus-gvalue.c: port to the new message args API
5737
5738         * bus/dispatch.c, bus/driver.c: port to the new message args API
5739
5740         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5741         "locked" flag to TRUE and align_offset to 0; I guess we never
5742         looked at these anyhow, but seems cleaner.
5743
5744         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5745         move allocation padding macro to this header; use it to implement
5746         (_DBUS_STRING_STATIC): ability to declare a static string.
5747
5748         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5749         change to return TRUE if the interface is not set.
5750
5751         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5752         to dbus-marshal-validate.[hc]
5753
5754         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5755         dbus-internals.c
5756
5757         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5758         to dbus-marshal-*.[hc]
5759
5760         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5761         function here from dbus-marshal.c
5762
5763 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5764
5765         * NEWS: Update for 0.23.
5766
5767         * configure.in: Release 0.23.
5768
5769 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5770
5771         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5772         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5773         behind.
5774
5775         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5776         uninstall"
5777
5778         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5779         is an enum, get the enum's underlying type.  Another mono
5780         1.1.3 fix.
5781
5782 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5783
5784         Patch from Sjoerd Simons <sjoerd@luon.net>
5785
5786         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5787         DESTDIR.  It breaks stuff.
5788
5789 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5790
5791         Patch from Tambet Ingo <tambet@ximian.com>
5792
5793         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5794         calling type.GetElementType().  The code previously depended on
5795         broken Mono behavior, which was fixed in Mono 1.1.3.
5796
5797         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5798         Activator.CreateInstance() so that the class's constructor is
5799         called with the right parameters.
5800
5801 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5802
5803         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5804
5805         * dbus/dbus-connection.c
5806         (_dbus_connection_queue_received_message_link): Call
5807         _dbus_connection_remove_timeout() instead of the _locked()
5808         variant, since it's always called from
5809         _dbus_connection_handle_watch(), which handles the locking.
5810         Removed the _locked() variant since it's no longer used.
5811
5812 2005-01-03  Havoc Pennington  <hp@redhat.com>
5813
5814         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5815         return
5816         
5817 2004-12-26  Havoc Pennington  <hp@redhat.com>
5818
5819         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5820
5821 2005-01-03  Havoc Pennington  <hp@redhat.com>
5822
5823         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5824         floating point
5825
5826         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5827
5828 2005-01-02  Havoc Pennington  <hp@redhat.com>
5829
5830         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5831
5832 2005-01-01  Havoc Pennington  <hp@redhat.com>
5833
5834         * configure.in: add -Wfloat-equal
5835
5836 2005-01-01  Havoc Pennington  <hp@redhat.com>
5837
5838         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5839         for a variety of reasons '==' doesn't do this.
5840
5841 2004-12-31  Havoc Pennington  <hp@redhat.com>
5842
5843         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5844         I keep wishing I had
5845
5846 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5847
5848         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5849
5850 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5851
5852         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5853         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5854         dbus-protocol.h.  Because they are defines and not enums they are not
5855         autogenerated.
5856
5857 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5858
5859         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5860         dbus_bus_activate_service
5861
5862         * python/dbus.py (Bus.activate_service): activate a service on the
5863         bus.
5864
5865 2004-12-24  Havoc Pennington  <hp@redhat.com>
5866
5867         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5868         file format has also changed and I haven't adapted to that yet
5869         
5870         * Makefile.am: load .gcno files from latest gcc
5871
5872 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5873         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5874
5875         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5876         lowlevel binding
5877
5878         * python/dbus.py (get_unix_user): Added binding to 
5879         call dbus_bindings.bus_get_unix_user
5880
5881         * python/extract.py: Modified the proto_pat regex to
5882         handle unsigned long
5883
5884 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5885
5886         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5887         better POSIX compliance.
5888
5889 2004-12-19  Havoc Pennington  <hp@redhat.com>
5890
5891         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5892         (_dbus_string_insert_8_aligned): new functions
5893
5894         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5895
5896 2004-12-18  Havoc Pennington  <hp@redhat.com>
5897
5898         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5899         macro
5900
5901         * dbus/dbus-message.c: fix a comment, and add a still-unused
5902         not-implemented function
5903
5904         * dbus/dbus-marshal.h: fix comment
5905
5906         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5907
5908 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5909
5910         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5911         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5912         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5913         Type.UnderlyingSystemType to get the actual system type
5914         underneath.  This code previously depended on the broken Mono
5915         behavior, which was fixed in 1.1.3.
5916
5917 2004-11-27  Havoc Pennington  <hp@redhat.com>
5918
5919         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5920         are disabled
5921         (_dbus_string_get_const_data): inline when asserts are disabled
5922
5923         * dbus/dbus-message.c: record the _dbus_current_generation of
5924         creation so we can complain if dbus_shutdown() is used improperly.
5925         Do this only if checks are enabled.
5926
5927         * dbus/dbus-connection.c: ditto
5928         
5929 2004-11-26  Havoc Pennington  <hp@redhat.com>
5930
5931         * test/glib/test-profile.c: add with_bus mode to profile echoes
5932         that go through the bus.
5933
5934         * test/glib/run-test.sh: add ability to run test-profile
5935
5936         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5937         config file reload.
5938
5939 2004-11-26  Havoc Pennington  <hp@redhat.com>
5940
5941         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5942         thing was implemented
5943
5944 2004-11-26  Havoc Pennington  <hp@redhat.com>
5945
5946         * test/glib/test-profile.c: tweak a bit, add support for some
5947         made-up minimal malloc overhead with plain sockets, since in 
5948         real life some sort of buffers are unavoidable thus we could 
5949         count them in the theoretical best case
5950
5951 2004-11-26  Havoc Pennington  <hp@redhat.com>
5952
5953         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5954         where I was trying to cache one too many messages
5955
5956 2004-11-26  Havoc Pennington  <hp@redhat.com>
5957
5958         * dbus/dbus-message.c: reimplement message cache as an array which 
5959         makes the cache about twice as fast and saves maybe 1.5% overall
5960
5961 2004-11-26  Havoc Pennington  <hp@redhat.com>
5962
5963         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5964         message cache lock here
5965
5966 2004-11-26  Havoc Pennington  <hp@redhat.com>
5967
5968         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5969         the "char byte_order" next to each other to save 4 bytes
5970         (dbus_message_new_empty_header): reduce preallocation, since the
5971         message cache should achieve a similar effect
5972         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5973         message cache that keeps a few DBusMessage around in a pool,
5974         another 8% speedup or so.
5975
5976         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5977
5978 2004-11-25  Havoc Pennington  <hp@redhat.com>
5979
5980         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5981         to write, without reading or blocking, try it before the poll()
5982         and skip the poll() if nothing remains to write. This is about a
5983         3% speedup in the echo client/server
5984
5985 2004-11-25  Havoc Pennington  <hp@redhat.com>
5986
5987         The primary change here is to always write() once before adding
5988         the write watch, which gives us about a 10% performance increase.
5989         
5990         * dbus/dbus-transport-unix.c: a number of modifications to cope
5991         with removing messages_pending
5992         (check_write_watch): properly handle
5993         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5994         messages_pending stuff
5995         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5996         AUTHENTICATED cases
5997         (unix_handle_watch): after writing, see if the write watch can be
5998         removed
5999         (unix_do_iteration): assert that write_watch/read_watch are
6000         non-NULL rather than testing that they aren't, since they 
6001         aren't allowed to be NULL. check_write_watch() at the end so 
6002         we add the watch if we did not finish writing (e.g. got EAGAIN)
6003
6004         * dbus/dbus-transport-protected.h: remove messages_pending call,
6005         since it resulted in too much inefficient watch adding/removing; 
6006         instead we now require that the transport user does an iteration 
6007         after queueing outgoing messages, and after trying the first
6008         write() we add a write watch if we got EAGAIN or exceeded our 
6009         max bytes to write per iteration setting
6010
6011         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6012         function
6013
6014         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6015         freed and then accessed, valgrind flagged this bug, fix it
6016
6017         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6018         as the last valid field plus 1, where really it is equal to the
6019         last valid field. Corrects some message corruption issues.
6020
6021         * dbus/dbus-mainloop.c: verbosity changes
6022
6023         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6024         instead of aborting in one of the test codepaths
6025
6026         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6027         caused not printing the pid ever again if a verbose was missing
6028         the newline at the end
6029         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6030
6031         * dbus/dbus-connection.c: verbosity changes; 
6032         (dbus_connection_has_messages_to_send): new function
6033         (_dbus_connection_message_sent): no longer call transport->messages_pending
6034         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6035         try to write() immediately, so we can avoid the write watch. This
6036         is the core purpose of this patchset
6037         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6038         dump the outgoing message queue, so nobody will get confused
6039         trying to send them or thinking stuff is pending to be sent
6040
6041         * bus/test.c: verbosity changes
6042
6043         * bus/driver.c: verbosity/assertion changes
6044
6045         * bus/dispatch.c: a bunch of little tweaks to get it working again
6046         because this patchset changes when/where you need to block.
6047
6048 2004-11-23  Havoc Pennington  <hp@redhat.com>
6049
6050         * test/glib/test-profile.c: modify to accept a plain_sockets
6051         argument in which case it will bench plain sockets instead of
6052         libdbus, for comparison purposes.
6053
6054 2004-11-22  Havoc Pennington  <hp@redhat.com>
6055
6056         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6057         threads for more time, so sysprof can get a grip on it.
6058
6059         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6060         pointless variable
6061
6062 2004-11-13  Havoc Pennington  <hp@redhat.com>
6063
6064         * test/glib/test-profile.c: fix this thing up a bit
6065
6066         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6067         preallocation sizes by a fair bit; not sure if this will be an
6068         overall performance win or not, but it does reduce reallocs.
6069
6070         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6071         the test hack that forced constant realloc if asserts are
6072         disabled, so we can profile sanely. Sprinkle in some
6073         _DBUS_UNLIKELY() which are probably pointless, but before I
6074         noticed the real performance problem I put them in.
6075         (_dbus_string_validate_utf8): micro-optimize this thing a little
6076         bit, though callgrind says it didn't help; then special-case
6077         ascii, which did help a lot; then be sure we detect nul bytes as
6078         invalid, which is a bugfix.
6079         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6080         superstition; use memset to nul the padding instead of a manual
6081         loop.
6082         (_dbus_string_get_length): inline this as a
6083         macro; it showed up in the profile because it's used for loop
6084         tests and so forth
6085
6086 2004-11-10  Colin Walters  <walters@verbum.org>
6087
6088         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6089         for extra paranoia.
6090
6091 2004-11-09  Colin Walters  <walters@verbum.org>
6092
6093         * dbus/dbus-string.c (_dbus_string_get_length): New
6094         function, writes DBusString to C buffer.
6095
6096         * dbus/dbus-string.h: Prototype it.
6097
6098         * dbus/dbus-message.c (dbus_message_type_to_string): New
6099         function, converts message type into C string.
6100
6101         * dbus/dbus-message.h: Prototype it.
6102
6103         * bus/selinux.c (bus_selinux_check): Take source pid,
6104         target pid, and audit data.  Pass audit data to
6105         avc_has_perm.
6106         (log_audit_callback): New function, appends extra
6107         audit information.
6108         (bus_selinux_allows_acquire_service): Also take
6109         service name, add it to audit data.
6110         (bus_selinux_allows_send): Also take message
6111         type, interface, method member, error name,
6112         and destination, and add them to audit data.
6113         (log_cb): Initialize func_audit.
6114         
6115         * bus/selinux.h (bus_selinux_allows_acquire_service)
6116         (bus_selinux_allows_send): Update prototypes 
6117
6118         * bus/services.c (bus_registry_acquire_service): Pass
6119         service name to bus_selinux_allows_acquire_service.
6120
6121         * bus/bus.c (bus_context_check_security_policy): Pass
6122         additional audit data.  Move assignment of dest
6123         to its own line.
6124
6125 2004-11-07  Colin Walters  <walters@verbum.org>
6126
6127         * dbus/dbus-transport-unix.c (do_authentication): Always
6128         initialize auth_completed.
6129         
6130 2004-11-07  Colin Walters  <walters@verbum.org>
6131
6132         * bus/bus.c (load_config): Break into three
6133         separate functions: process_config_first_time_only,
6134         process_config_every_time, and process_config_postinit.
6135         (process_config_every_time): Move call of
6136         bus_registry_set_service_context_table into
6137         process_config_postinit.
6138         (process_config_postinit): New function, does
6139         any processing that needs to happen late
6140         in initialization (and also on reload).
6141         (bus_context_new): Instead of calling load_config,
6142         open config parser here and call process_config_first_time_only
6143         and process_config_every_time directly.  Later, after
6144         we have forked but before changing UID,
6145         invoke bus_selinux_full_init, and then call
6146         process_config_postinit.
6147         (bus_context_reload_config): As in bus_context_new,
6148         load parse file inside here, and call process_config_every_time
6149         and process_config_postinit.
6150
6151         * bus/services.h, bus/services.c
6152         (bus_registry_set_service_context_table): Rename
6153         from bus_registry_set_sid_table.  Take string hash from config
6154         parser, and convert them here into SIDs.
6155
6156         * bus/config-parser.c (struct BusConfigParser): Have
6157         config parser only store a mapping of service->context
6158         string.
6159         (merge_service_context_hash): New function.
6160         (merge_included): Merge context string hashes instead
6161         of using bus_selinux_id_table_union.
6162         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6163         simply create a new string hash.
6164         (bus_config_parser_unref): Unref it.
6165         (start_selinux_child): Simply insert strings into hash,
6166         don't call bus_selinux_id_table_copy_over.
6167
6168         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6169         (bus_selinux_id_table_copy_over): Delete.
6170
6171 2004-11-03  Colin Walters  <walters@verbum.org>
6172
6173         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6174         variables.
6175         
6176 2004-11-03  Colin Walters  <walters@verbum.org>
6177
6178         * bus/test-main.c (test_pre_hook): Fix test logic,
6179         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6180
6181 2004-11-02  Colin Walters  <walters@redhat.com>
6182
6183         * bus/selinux.c (bus_selinux_init): Split into two functions,
6184         bus_selinux_pre_init and bus_selinux_post_init.
6185         (bus_selinux_pre_init): Just determine whether SELinux is
6186         enabled.
6187         (bus_selinux_post_init): Do everything else.
6188
6189         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6190         config file, and bus_selinux_post_init after.  This ensures that
6191         we don't lose the policyreload notification thread that
6192         bus_selinux_init created before forking previously.
6193         
6194         * bus/test-main.c (test_pre_hook): Update for split.
6195
6196 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6197
6198         Patch from Johan Fischer <linux@fischaz.com>
6199         
6200         * mono/doc/Makefile.am (install-data-local): Added directory
6201         install for DESTDIR
6202
6203 2004-10-29  Colin Walters  <walters@redhat.com>
6204
6205         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6206         parameter for fd to write pid to.       
6207
6208         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6209         
6210         * bus/bus.c (bus_context_new): Pass print_pid_fd
6211         to _dbus_become_daemon (bug #1720)
6212
6213 2004-10-29  Colin Walters  <walters@redhat.com>
6214
6215         Patch from Ed Catmur <ed@catmur.co.uk>
6216
6217         * mono/doc/Makefile.am (install-data-local): Handle
6218         DESTDIR.
6219
6220 2004-10-29  Colin Walters  <walters@redhat.com>
6221
6222         * bus/.cvsignore, qt/.cvsignore: Update.
6223
6224 2004-10-29  Colin Walters  <walters@redhat.com>
6225
6226         Patch from Kristof Vansant <de_lupus@pandora.be>
6227
6228         * configure.in: Detect Slackware.
6229         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6230         * bus/rc.messagebus.in: New file.
6231
6232 2004-10-29  Colin Walters  <walters@redhat.com>
6233
6234         * tools/dbus-monitor.c (filter_func): Return
6235         DBUS_HANDLER_RESULT_HANDLED in filter function
6236         for now.  See:
6237         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6238
6239 2004-10-29  Colin Walters  <walters@redhat.com>
6240
6241         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6242
6243         * bus/services.c (bus_registry_acquire_service): 
6244         Correctly retrieve service name from DBusString
6245         for printing.
6246
6247 2004-10-29  Colin Walters  <walters@redhat.com>
6248
6249         * dbus/dbus-glib.h: Update documentation to not
6250         refer to internal APIs.
6251
6252 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6253
6254         * mono/Arguments.cs (GetDBusTypeConstructor):
6255         type.UnderlyingSystemType will return "System.Byte" if you do it
6256         on "byte[]", which is not what we want.  So check the type.IsArray
6257         property and use System.Array instead.
6258
6259 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6260
6261         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6262         the DBusUserInfo structure since this is passed into the function.
6263         This would cause a double free when the function that allocated
6264         the structure would try to free it when an error occured.
6265
6266         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6267         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6268         for service activation to avoid 32bit/64bit parallel install issues
6269
6270 2004-10-21  Colin Walters  <walters@verbum.org>
6271
6272         * AUTHORS: Fix my email address, the @gnu.org one
6273         has been bouncing for some time.  Also add J5.
6274         
6275 2004-10-21  Colin Walters  <walters@verbum.org>
6276
6277         * dbus/dbus-transport-unix.c (do_authentication): Return
6278         authentication status to callers.
6279         (unix_handle_watch): If we completed authentication this round,
6280         don't do another read.  Instead wait until the next iteration,
6281         after we've read any pending data in the auth buffer.
6282         (unix_do_iteration): Ditto.
6283         (unix_handle_watch): Updated for new do_authentication prototype.
6284
6285 2004-10-18  Colin Walters  <walters@verbum.org>
6286
6287         * bus/selinux.c (bus_selinux_enabled): Handle
6288         --disable-selinux case.
6289         
6290 2004-10-18  Colin Walters  <walters@verbum.org>
6291
6292         * bus/selinux.h: Add bus_selinux_enabled.
6293         
6294         * bus/selinux.c (bus_selinux_enabled): Implement it.
6295         
6296         * bus/config-parser.c (struct include): Add
6297         if_selinux_enabled member.
6298         (start_busconfig_child): Parse if_selinux_enabled
6299         attribute for include.
6300         (bus_config_parser_content): Handle it.
6301
6302         * bus/session.conf.in, bus/system.conf.in: Add
6303         inclusion of context mapping to default config files;
6304         conditional on SELinux being enabled.
6305         
6306         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6307         
6308         * test/data/invalid-config-files/badselinux-1.conf, 
6309         test/data/invalid-config-files/badselinux-2.conf:
6310         Test files for bad syntax.
6311         
6312 2004-10-17  Colin Walters  <walters@verbum.org>
6313
6314         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6315         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6316         format specifier mismatches.
6317
6318 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6319
6320         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6321         format string.
6322
6323         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6324         pointer (bug #1540, Leonardo Boiko).
6325
6326 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6327
6328         * mono/BusDriver.cs: Changed BusDriver struct to remove
6329         the ServiceCreated and ServiceDeleted events and replace them
6330         with the new ServiceOwnerChanged event.
6331
6332         * mono/example/BusListener.cs: Added a new example program,
6333         which listens for and reports any ServiceOwnerChanged events
6334         on the bus driver.
6335
6336         * mono/example/Makefile.am (DESTDIR): Build changes for the
6337         new BusListener.cs example.
6338
6339 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6340
6341         * bus/signals.c (bus_match_rule_parse): validate the components of
6342         match rules (bug #1439).
6343
6344         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6345
6346 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6347
6348         * doc/dbus-specification.xml: document ServiceOwnerChanged
6349         signal.
6350         
6351         * bus/driver.c, bus/driver.h, bus/services.c: Use
6352         ServiceOwnerChanged signal instead of ServiceCreated and
6353         ServiceDeleted.
6354         
6355         * bus/dispatch.c: update testcase for the new signal.
6356
6357 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6358
6359         Patch from Nat Friedman <nat@novell.com>
6360
6361         * mono/Makefile.am: A number of small build fixes to allow "make
6362         distcheck" to succeed.
6363
6364         * mono/example/Makefile.am: "make distcheck" fixes.
6365
6366         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6367         key in @srcdir@.
6368
6369         * test/Makefile.am: "make distcheck" fixes.
6370
6371 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6372
6373         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6374
6375         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6376
6377         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6378         messages after the first one (bug #1389).
6379         
6380         * bus/dispatch.c (check_double_hello_message): add a test case for
6381         the double hello message bug.
6382         (check_existent_service_activation): fix check of spawning error.
6383         
6384 2004-09-16  David Zeuthen  <david@fubar.dk>
6385
6386         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6387
6388 2004-09-12  David Zeuthen  <david@fubar.dk>
6389
6390         Patch from Kay Sievers <kay.sievers@vrfy.org>
6391
6392         * bus/bus.c (bus_context_new):
6393         * bus/bus.h:
6394         * bus/main.c (usage)
6395         (main):
6396         Add commandline option --nofork to override configuration file
6397         setting.
6398
6399 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6400
6401         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6402         compilers don't like it (bug #974).
6403
6404 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6405
6406         * qt/connection.*: Applied patch by Jérôme Lodewyck
6407         <lodewyck@clipper.ens.fr> to integrate an existing
6408         connection into the Qt eventloop
6409
6410 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6411
6412         * mono/BusDriver.cs: Added.  This is a class for interacting with
6413         the org.freedesktop.DBus service.
6414
6415         * mono/Message.cs: Added a mechanism to expose the message that is
6416         currently being dispatched via the static Message.Current
6417         property.  Added Message.Sender and Message.Destination
6418         properties.
6419
6420         * mono/Handler.cs: Expose the dispatched message via
6421         Message.Current when handling method calls.
6422
6423         * mono/Service.cs: Expose the dispatched message via
6424         Message.Current when handling signal emissions.
6425         
6426         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6427         Connection.BaseService property.
6428
6429 2004-08-28  Havoc Pennington  <hp@redhat.com>
6430
6431         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6432
6433         More fixes from Steve Grubb
6434         
6435         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6436         (_dbus_listen_tcp_socket): fix fd leak
6437
6438         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6439         EINTR to a bit lower in the code
6440
6441 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6442
6443         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6444         TRUE if we are inquiring about the existence of the built-in
6445         org.freedesktop.DBus service.
6446
6447 2004-08-25  John Palmieri  <johnp@redhat.com>
6448         * bus/config-parser.c:
6449         (struct PolicyType): Add POLICY_CONSOLE
6450         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6451         (start_busconfig_child): Sets up console element when
6452         <policy at_console=""> is encountered in a policy file
6453         (append_rule_from_element): Convert console elements to console
6454         rules.
6455
6456         * bus/policy.c: 
6457         (bus_policy_create_client_policy): Add console rules to the client
6458         policy based on if the client is at the console
6459         (bus_policy_append_console_rule): New function for adding a
6460         console rule to a policy
6461         (bus_policy_merge): Handle console rule merging
6462
6463         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6464         where we check for console user files
6465         
6466         * dbus/dbus-sysdeps.c:
6467         (_dbus_file_exists): New function which checks if the given
6468         file exists
6469         (_dbus_user_at_console): New function which does the system
6470         specific process of checking if the user is at the console
6471
6472         * dbus/dbus-userdb.c:
6473         (_dbus_is_console_user): New function converts a UID to user name
6474         and then calls the system specific _dbus_user_at_console to 
6475         see if the user is at the console and therefor a console user
6476
6477 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6478
6479         * bus/config-parser.c (set_limit):
6480         * bus/dbus-daemon-1.1.in:
6481         * test/data/valid-config-files/many-rules.conf: set the
6482         max_match_rules_per_connection limt from the config file. 
6483
6484         * doc/busconfig.dtd: update the DTD.
6485
6486         * bus/driver.c: remove some unused variables.
6487
6488 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6489
6490         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6491         it's been replaced by dbus_g_bus_get
6492
6493 2004-08-23  Colin Walters  <walters@redhat.com>
6494
6495         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6496
6497         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6498
6499         * bus/selinux.c: Create a thread for policy reload notification.
6500         (bus_selinux_get_policy_root): Implement.
6501
6502         * bus/config-parser.c (start_busconfig_child)
6503         (bus_config_parser_content): Support SELinux-root relative
6504         inclusion.
6505
6506         * configure.in <HAVE_SELINUX>: Add -lpthread.
6507         
6508         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6509         (test_post_hook): Move memory checking into here.
6510         (test_pre_hook, test_post_hook): Move SELinux checks in
6511         here, but conditional on a DBUS_TEST_SELINUX environment
6512         variable.  Unfortunately we can't run the SELinux checks
6513         as a normal user, since they won't have any permissions
6514         for /selinux.  So this will have to be tested manually
6515         for now, until we have virtualization for most of
6516         libselinux.
6517         
6518 2004-08-23  Havoc Pennington  <hp@redhat.com>
6519
6520         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6521         drop supplementary groups, suggested by Steve Grubb
6522
6523 2004-08-20  Colin Walters  <walters@redhat.com>
6524
6525         * bus/config-parser.c (start_busconfig_child): Remove some unused
6526         variables.
6527         
6528         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6529         warning.
6530
6531 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6532
6533         * configure.in: If --enable-mono is passed in, if we can't find
6534         mono error out.
6535
6536         * mono/Makefile.am: Use /gacutil to install assemblies into the
6537         GAC and not /root.
6538
6539 2004-08-12  Havoc Pennington  <hp@redhat.com>
6540
6541         * NEWS: update for 0.22
6542
6543         * configure.in: release 0.22
6544
6545 2004-08-11  Colin Walters  <walters@redhat.com>
6546
6547         * tools/dbus-send.c (main, usage): Add --reply-timeout
6548         argument.
6549
6550 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6551
6552         * bus/bus.c (process_config_first_time_only): get rid of an unused
6553         DBusError that was causing a memoy leak (bug #989).
6554
6555         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6556         fix compilation on Solaris/Forte C (bug #974)
6557
6558         * bus/main.c (main): plug two minuscule memleaks.
6559
6560 2004-08-10  Havoc Pennington  <hp@redhat.com>
6561
6562         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6563
6564 2004-08-09  Havoc Pennington  <hp@redhat.com>
6565
6566         * COPYING: switch to Academic Free License version 2.1 instead of
6567         2.0, to resolve complaints about patent termination clause.
6568
6569 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6570
6571         * README: added documentation for the --enable-python 
6572         configure switch.
6573
6574 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6575
6576         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6577         _unref in the SELinux support.
6578
6579         * doc/busconfig.dtd: update DTD for SELinux support.
6580
6581         * bus/config-loader-libxml.c: fix error handler and parser
6582         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6583
6584         * configure.in: remove the warning about libxml2.
6585
6586         * dbus/dbus-bus.c: silence doxygen warning.
6587
6588 2004-07-31  Colin Walters  <walters@redhat.com>
6589
6590         * configure.in: Move #error in SELinux check to its own line.
6591
6592 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6593
6594         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6595         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6596         dbus_error_set.
6597
6598         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6599         broken by the change in the _SET_OOM macros.
6600
6601 2004-07-31  Colin Walters  <walters@redhat.com>
6602
6603         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6604         BUS_SET_OOM.
6605
6606 2004-07-31  Colin Walters  <walters@redhat.com>
6607
6608         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6609         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6610         AC_MSG_CHECKING.
6611
6612 2004-07-24  Havoc Pennington  <hp@redhat.com>
6613
6614         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6615
6616         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6617         functionality
6618
6619         * configure.in: add --enable-selinux
6620         
6621         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6622
6623         * bus/main.c (main): initialize and shut down selinux
6624
6625         * bus/connection.c: store SELinux ID on each connection, to avoid 
6626         repeated getting of the string context and converting it into 
6627         an ID
6628
6629         * bus/bus.c (bus_context_get_policy): new accessor, though it
6630         isn't used
6631         (bus_context_check_security_policy): check whether the security
6632         context of sender connection can send to the security context of
6633         recipient connection
6634
6635         * bus/config-parser.c: add parsing for <selinux> and <associate>
6636         
6637         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6638         implement dbus_connection_get_unix_fd()
6639
6640         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6641         function, used by the selinux stuff
6642         
6643 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6644
6645         * bus/config-loader-libxml.c: complete the implementation of
6646         libxml backend for config file loader. Doesn't work with full OOM
6647         test yet. 
6648         
6649         * configure.in: change error when selecting libxml into a warning.
6650         
6651         * test/data/invalid-config-files: add two non-well-formed XML
6652         files. 
6653         
6654         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6655         
6656         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6657         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6658         be necessary to read all the buffer. (bug #894)
6659
6660         * bus/activation.c (bus_activation_activate_service): fix a
6661         potential assertion failure (bug #896). Small optimization in the
6662         case of auto-activation messages.
6663
6664         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6665         add test case for byte-through-vararg bug (#901). patch by Kimmo
6666         Hämäläinen. 
6667
6668 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6669
6670         * python/dbus.py:
6671         * python/dbus_bindings.pyx.in:
6672         Add dbus.init_gthreads (), allow emit_signal to pass
6673         arguments to the signal.
6674         
6675 2004-07-24  Havoc Pennington  <hp@redhat.com>
6676
6677         * AUTHORS: add some people, not really comprehensively, let me
6678         know if I missed you
6679
6680 2004-07-24  Havoc Pennington  <hp@redhat.com>
6681
6682         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6683         Owen
6684
6685         * test/Makefile.am (DIST_SUBDIRS): here also
6686
6687 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6688
6689         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6690         breaking build on Solaris, reported by Farhad Saberi on the ML.
6691
6692         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6693         va_arg invocation to account for integer promotion in the case of
6694         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6695
6696         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6697         _dbus_list_get_first_link, not _dbus_list_get_first.
6698
6699         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6700
6701         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6702         handler functions so that the asserts in _dbus_object_subtree_unref
6703         do not fail.
6704
6705         * dbus/dbus-transport-unix.c (do_reading):
6706         _dbus_transport_queue_messages return value is of type
6707         dbus_bool_t, not DBusDispatchStatus.
6708         
6709 2004-07-19  David Zeuthen  <david@fubar.dk>
6710
6711         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6712
6713         * bus/dispatch.c:
6714         (check_get_connection_unix_user): Debug says GetProperty; but the
6715         method is called GetConnectionUnixUser
6716         (check_get_connection_unix_process_id): New function
6717         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6718         also call check_get_connection_unix_process_id()
6719         
6720         * bus/driver.c:
6721         (bus_driver_handle_get_connection_unix_process_id): New function,
6722         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6723         interface
6724         
6725         * dbus/dbus-auth.c:
6726         (handle_server_data_external_mech): Set pid from the credentials
6727         obtained from the socket
6728         
6729         * dbus/dbus-connection.c:
6730         (dbus_connection_get_unix_process_id): New function
6731         
6732         * dbus/dbus-connection.h: 
6733         Add prototype for dbus_connection_get_unix_process_id
6734         
6735         * dbus/dbus-transport.c:
6736         (_dbus_transport_get_unix_process_id): New function
6737         
6738         * dbus/dbus-transport.h:
6739         Add prototype for _dbus_transport_get_unix_process_id
6740         
6741 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6742
6743         * dbus/dbus-message.c: Message counter fix, patch by Christian
6744         Hammond <chipx86@gnupdate.org>
6745
6746 2004-07-18  Seth Nickell  <seth@gnome.org>
6747
6748         * python/dbus.py:
6749         * python/dbus_bindings.pyx.in:
6750         * python/tests/test-client.py:
6751
6752         Add dbus.ByteArray and dbus_bindings.ByteArray
6753         types so that byte streams can be passed back.
6754
6755         Give jdahlin the heaps of credit that are so
6756         rightfully his.
6757         
6758 2004-07-12  Seth Nickell  <seth@gnome.org>
6759
6760         * python/dbus.py:
6761
6762         Add message argument to the default object_method_handler
6763         function.
6764         
6765         * python/dbus_bindings.pyx.in:
6766
6767         Automatically return NIL when passed an empty list
6768         (we can't pass back a list since lists are typed
6769         and we don't have any idea what type the the client
6770         intended the list to be... :-( )
6771         
6772 2004-07-10  Seth Nickell  <seth@gnome.org>
6773
6774         * python/examples/Makefile.am:
6775
6776         Fix distcheck breakage caused by new examples.
6777
6778 2004-07-10  Seth Nickell  <seth@gnome.org>
6779
6780         * python/dbus.py:
6781
6782         Add "message" argument to service-side dbus.Object
6783         methods. This will break existing services written
6784         using the python bindings, but will allow extraction
6785         of all the message information (e.g. who its from).
6786
6787         Add improved "object oriented" signal handling/emission.
6788         
6789         * python/examples/example-service.py:
6790
6791         Nix this example.
6792         
6793         * python/examples/example-signal-emitter.py:
6794         * python/examples/example-signal-recipient.py:
6795
6796         Two new examples that show how to emit and receive
6797         signals using the new APIs.
6798         
6799         * python/examples/example-signals.py:
6800         * python/examples/gconf-proxy-service.py:
6801         * python/examples/gconf-proxy-service2.py:
6802
6803         Add "message" argument to service methods.
6804
6805 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6806
6807         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6808         * dbus/bus.c (dbus_bus_get_unix_user)
6809         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6810         method of org.freedesktop.DBus interface.
6811
6812         * bus/dispatch.c: test case
6813
6814 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6815
6816         * python/Makefile.am: switched include directory from glib/ to dbus/
6817         since dbus-glib.h moved
6818  
6819 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6820
6821         * configure.in: prevent building the gcj stuff and libxml loader
6822         since they are broken.
6823
6824 2004-06-20  Havoc Pennington  <hp@redhat.com>
6825
6826         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6827         codes from the dbus error names
6828         
6829         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6830         as dbus/dbus-glib.h and that breakage is now visible due to 
6831         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6832         
6833         * glib/dbus-glib.h: s/gproxy/g_proxy/
6834
6835         * dbus/dbus-shared.h: new header to hold stuff shared with
6836         binding APIs
6837         
6838         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6839         than dbus-errors.h
6840
6841         * glib/dbus-glib.h (dbus_set_g_error): move to
6842         dbus-glib-lowlevel.h
6843
6844         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6845         of stuff to enable this
6846
6847         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6848
6849         * a bunch of other changes with the same basic "separate glib 
6850         bindings from dbus.h" theme
6851         
6852 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6853
6854         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6855
6856         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6857
6858 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6859
6860         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6861         the reply value of the ServiceExists message.
6862
6863 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6864
6865         * python/dbus_bindings.pyx.in: No longer need to parse path
6866         elements and pass them as arrays of strings.  The C API now
6867         accepts plain path strings.
6868         (_build_parsed_path): removed 
6869
6870 2004-06-07  Havoc Pennington  <hp@redhat.com>
6871
6872         * doc/TODO: remove auto-activation item since it's done; sort
6873         items by importance/milestone
6874
6875 2004-06-07  Havoc Pennington  <hp@redhat.com>
6876
6877         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6878         random signature when using REQUIRED_FIELDS (this hack won't work
6879         in the long term)
6880
6881         * dbus/dbus-message.c: change the signature to be a header field,
6882         instead of message->signature special-case string. Incremental
6883         step forward. Then we can fix up code to send the signature in the
6884         message, then fix up code to validate said signature, then fix up
6885         code to not put the typecodes inline, etc.
6886         (load_one_message): don't make up the signature after the fact
6887         (decode_header_data): require signature field for the known
6888         message types
6889
6890         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6891
6892         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6893
6894 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6895
6896         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6897
6898         * mono/Handler.cs: Updated to follow new path argument for
6899         (un-)registering objects.
6900
6901         * mono/example/Makefile.am:
6902         * mono/Makefile.am:
6903         * configure.in: Bumped required version for mono and use new -pkg
6904         syntax for deps
6905
6906 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6907
6908         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6909         registration functions take the path argument as char* instead of
6910         char**.
6911
6912         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6913         split off the path decompostion part of
6914         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6915         warnings. 
6916
6917         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6918         
6919 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6920  
6921         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6922         machine approach.  A state is implemented as a function that
6923         handles incoming events as specified for that state.
6924         
6925         * doc/dbus-specification.xml: Update auth protocol state machine
6926         specification to match implementation.  Remove some leftover
6927         base64 examples.
6928
6929 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6930
6931         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6932         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6933         quiet doxygen.
6934
6935         * Doxyfile.in: remove deprecated options.
6936
6937         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6938         glib/test-thread.h, glib/test-thread-client.c,
6939         glib/test-thread-server.c, glib/test-profile.c,
6940         glib/test-dbus-glib.c: remove these unused files.
6941
6942 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6943
6944         * dbus/dbus-object-tree.c
6945         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6946         non-fallback handlers (bug #684).
6947         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6948         (find_subtree_recurse): report wether the returned subtree is an
6949         exact match or a "fallback" match higher up in the tree.
6950         (object_tree_test_iteration): update test case.
6951
6952 2004-06-01  Seth Nickell  <seth@gnome.org>
6953
6954         * python/dbus_bindings.pyx.in:
6955         * python/tests/test-client.py:
6956
6957         Round off basic type support. Add dicts (yay!), and 
6958         remaining array types.
6959
6960         Make MessageIter more general so it works for dicts too.
6961
6962         Mark all loop variables as C integers.
6963         
6964 2004-05-31  Havoc Pennington  <hp@redhat.com>
6965
6966         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6967         "in" before "out"
6968
6969         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6970
6971         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6972         option that runs the tests, and start filling in some code
6973         including for starters just dumping the interfaces to stdout
6974
6975         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6976
6977         * test/data/valid-introspection-files/lots-of-types.xml: test of
6978         an example introspection file
6979
6980         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6981         "node" (I think...)
6982
6983 2004-05-31  Seth Nickell  <seth@gnome.org>
6984
6985         * python/dbus_bindings.pyx.in:
6986         * python/tests/test-client.py:
6987
6988         Test Suite: 1
6989         Python Bindings: 0
6990
6991         Fix string array memory trashing bug... oops...
6992
6993 2004-05-30  Seth Nickell  <seth@gnome.org>
6994
6995         * python/dbus.py:
6996
6997         Add a nicer-but-less-flexible alternate API for handling 
6998         calls to virtual objects in dbus.ObjectTree.
6999
7000         Screw up the argument order to the dbus.Object constructor
7001         for consistency with dbus.ObjectTree (and to make dbus_methods
7002         optional for future extension)
7003         
7004         * python/examples/Makefile.am:
7005         * python/examples/gconf-proxy-service.py:
7006         * python/examples/gconf-proxy-service2.py:
7007
7008         Alternate implementation of gconf-proxy-service using the
7009         nicer dbus.ObjectTree API.
7010         
7011         * python/examples/example-service.py:
7012         * python/tests/test-server.py
7013
7014         Reverse the argument order to deal with dbus.Object constructor
7015         changes.
7016         
7017 2004-05-30  Seth Nickell  <seth@gnome.org>
7018
7019         * python/examples/example-client.py:
7020         * python/examples/example-service.py:
7021
7022         Take it back. Lists seem to work but they're broken
7023         in the test suite. Make the base examples use
7024         lists (works fine).
7025
7026 2004-05-30  Seth Nickell  <seth@gnome.org>
7027
7028         * python/dbus_bindings.pyx.in:
7029         * python/tests/test-client.py:
7030
7031         Add some more tests and fix errors that crop up.
7032         Unfortunately, currently it seems like marshalling
7033         and unmarshalling of lists is completely broken :-(
7034
7035 2004-05-30  Seth Nickell  <seth@gnome.org>
7036
7037         * python/dbus_bindings.pyx.in:
7038
7039         Add support for ObjectPath type.
7040
7041         * python/dbus.py:
7042
7043         Refactor message handling code to a common function.
7044         
7045         * python/tests/test-client.py:
7046         * python/tests/test-server.py:
7047
7048         Add tests that check to make sure values of all types
7049         can be echoed from a service w/o mangling.
7050         
7051 2004-05-29  Seth Nickell  <seth@gnome.org>
7052
7053         * python/dbus.py:
7054
7055         Add ObjectTree class which allows implementation
7056         of trees of "virtual" objects. Basically the python
7057         wrapper for "register_fallback".
7058         
7059         * python/examples/Makefile.am
7060         * python/examples/gconf-proxy-client.py:
7061         * python/examples/gconf-proxy-service.py:
7062
7063         Implement a simple GConf proxy service that supports
7064         get/set on string and int GConf keys using the ObjectTree.
7065         
7066 2004-05-29  Seth Nickell  <seth@gnome.org>
7067
7068         * python/dbus.py:
7069         * python/examples/example-client.py:
7070         * python/examples/example-service.py:
7071         * python/examples/list-system-services.py:
7072
7073         Add SessionBus, SystemBus and ActivationBus classes
7074         so you don't need to know the special little BUS_TYPE
7075         flag.
7076         
7077 2004-05-29  Havoc Pennington  <hp@redhat.com>
7078
7079         * bus/config-parser.c (process_test_valid_subdir): temporarily
7080         stop testing config parser OOM handling, since expat has issues
7081         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7082
7083         * bus/dbus-daemon-1.1.in: change requested_reply to
7084         send_requested_reply/receive_requested_reply so we can send the
7085         replies, not just receive them.
7086
7087         * bus/config-parser.c: parse the new
7088         send_requested_reply/receive_requested_reply
7089
7090         * bus/policy.c (bus_client_policy_check_can_send): add
7091         requested_reply argument and use it
7092
7093         * bus/bus.c (bus_context_check_security_policy): pass through
7094         requested_reply status to message send check
7095
7096         * bus/system.conf.in: adapt to requested_reply change
7097         
7098 2004-05-28  Havoc Pennington  <hp@redhat.com>
7099
7100         * test/glib/test-service-glib.c (main): remove unused variable
7101
7102         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7103
7104         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7105         from the enum, no longer in use.
7106
7107         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7108         works right.
7109
7110         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7111         whether error_name passed in is a valid error name.
7112
7113 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7114
7115         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7116         OBJECT_PATH and OBJECT_PATH_ARRAY
7117
7118 2004-05-28  Seth Nickell  <seth@gnome.org>
7119
7120         * python/examples/Makefile.am:
7121
7122         Forget to add Makefile.am. Do not pass go.
7123
7124 2004-05-28  Michael Meeks  <michael@ximian.com>
7125
7126         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7127         fix no int64 case.
7128
7129         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7130
7131         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7132         (_dbus_message_iter_get_basic_type_array): impl.
7133         drastically simplify ~all relevant _get methods to use these.
7134         (_dbus_message_iter_append_basic_array),
7135         (dbus_message_iter_append_basic): impl
7136         drastically simplify ~all relevant _append methods to use these.
7137
7138         * dbus/dbus-message-builder.c (parse_basic_type) 
7139         (parse_basic_array, lookup_basic_type): impl.
7140         (_dbus_message_data_load): prune scads of duplicate /
7141         cut & paste coding.
7142
7143         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7144         (_dbus_demarshal_basic_type): implement,
7145         (demarshal_and_validate_len/arg): beef up debug.
7146         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7147
7148 2004-05-27  Seth Nickell  <seth@gnome.org>
7149
7150         * configure.in:
7151         * python/Makefile.am:
7152
7153         Include the example python apps in the tarball.
7154         
7155         * python/examples/list-system-services.py
7156
7157         Add a python new example that fetches the list of services
7158         from the system bus.
7159         
7160 2004-05-27  Seth Nickell  <seth@gnome.org>
7161
7162         * python/dbus.py:
7163         * python/dbus_bindings.pyx.in:
7164
7165         Fix failure to notify that a signal was not handled,
7166         resulted in hung functions.
7167         
7168 2004-05-25  Colin Walters  <walters@redhat.com>
7169
7170         * tools/dbus-monitor.c (main): Monitor all types of messages.
7171
7172 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7173
7174         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7175         which unregisters the object path and disposes the handler.
7176
7177 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7178  
7179         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7180          
7181         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7182         operands to && so we call dbus_message_iter_next () for the last
7183         argument also.
7184
7185 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7186
7187         * dbus/dbus-object-tree.c
7188         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7189         children even if the requested path isn't registered.
7190         (object_tree_test_iteration): test object_tree_list_registered.
7191
7192         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7193         it to 0.
7194         
7195 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7196
7197         * doc/TODO: Remove resolved items.
7198
7199         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7200         field.
7201         
7202         * bus/connection.c (bus_connections_expect_reply): Enforce the
7203         per-connection limit on pending replies.
7204         
7205         Patch from Jon Trowbridge <trow@ximian.com>:
7206  
7207         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7208         up a watch that triggers a config reload when one end of the pipe
7209         becomes readable.
7210         (signal_handler): Instead of doing the config reload in our SIGHUP
7211         handler, just write to the reload pipe and let the associated
7212         watch handle the reload when control returns to the main loop.
7213  
7214         * bus/driver.c (bus_driver_handle_reload_config): Added.
7215         Implements a ReloadConfig method for requesting a configuration
7216         file reload via the bus driver.
7217  
7218 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7219
7220         * HACKING: Updated release instructions concerning the wiki page.
7221
7222 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7223
7224         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7225         filter against auth->allowed_mechs; we only add allowed mechs in
7226         record_mechanisms().
7227  
7228         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7229         ALLOWED_MECHS to auth-script format so we can set the list of
7230         allowed mechanisms.
7231  
7232         * data/auth/client-out-of-mechanisms.auth-script: New test to
7233         check client disconnects when it is out of mechanisms to try.
7234  
7235         * dbus/dbus-auth.c (process_command): Remove check for lines
7236         longer that 1 MB; we only buffer up maximum 16 kB.
7237  
7238         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7239         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7240         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7241         assume there might be unused bytes.
7242  
7243         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7244         client-out-of-mechs, it is handled in process_reject(). Move check
7245         for max failures to send_rejected(), as it's a server-only thing.
7246
7247         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7248         send_auth(), send_data(), send_rejected(), send_error(),
7249         send_ok(), send_begin() and send_cancel().
7250
7251 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7252
7253         Remove base64 encoding, replace with hex encoding. Original patch
7254         from trow@ximian.com, added error handling.
7255
7256         * dbus/dbus-string.c (_dbus_string_base64_encode)
7257         (_dbus_string_base64_decode): Remove.
7258         (_dbus_string_hex_decode): Add end_return argument so we can
7259         distinguish between OOM and invalid hex encoding.
7260         (_dbus_string_test): Remove base64 tests and add test case for
7261         invalid hex.
7262
7263         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7264         Replace base64 with hex.
7265
7266         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7267         for invalid hex encoded data in auth protocol.
7268
7269 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7270
7271         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7272         leak.
7273
7274 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7275
7276         * mono/dbus-sharp.dll.config.in: Added for GAC
7277         * mono/dbus-sharp.snk: Added for GAC
7278         * mono/Assembly.cs.in: Added for GAC
7279         * mono/Makefile.am: Changes for GAC installation        
7280         * configure.in: Added refs for dbus-sharp.dll.config.in and
7281         Assembly.cs.in. More fixes for mono testing
7282         * mono/example/Makefile.am: Changed var to CSC
7283         * Makefile.am: Changed flag name to DBUS_USE_CSC
7284
7285 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7286
7287         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7288         * mono/doc/*: Added documentation framework
7289         * configure.in: Added monodoc check
7290         * README: Added description of mono configure flags
7291
7292 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7293
7294         * doc/dbus-specification.xml: Added a "Required" column to the 
7295         header fields table and changed the "zero or more" verbage in
7296         the above paragraph to read "The header must contain the required 
7297         named header fields and zero or more of the optional named header 
7298         fields".
7299         * test/data/invalid-messages/*.message: Added the required PATH 
7300         named header field to the tests so that they don't fail on 
7301         'Missing path field'
7302
7303 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7304
7305         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7306         the stack by implicitly defining variable and parameter types and
7307         removing the hack of defining C pointers as python objects and later
7308         casting them.
7309
7310 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7311
7312         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7313
7314 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7315
7316         * mono/DBusType/Dict.cs: Handle empty dicts
7317         * mono/DBusType/Array.cs: Handle empty arrays
7318         * mono/Arguments.cs: Handle empty arguments
7319
7320 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7321
7322         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7323         field
7324
7325 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7326
7327         * test/data/valid-messages/standard-*.message: Update message
7328         test scripts to new header field names.
7329
7330 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7331
7332         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7333         overflow to times_we_did_each_thing array which would chop off the
7334         first character of the failure_dir string. Increased the size of
7335         the array to 7 to reflect the number of random mutation functions
7336         we have.
7337
7338 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7339
7340         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7341         unix_server->watch here, it is unreffed in disconnect.
7342         (_dbus_server_new_for_tcp_socket): convert NULL host to
7343         "localhost" here so we don't append NULL to address.
7344         
7345         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7346         various addresses, including tcp with no explicit host.
7347
7348 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7349
7350         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7351         fix incorrect setting of .name_offset in the HeaderField (it was
7352         off by two bytes, positioned right after the name and typecode)
7353
7354         * bus/bus.c (bus_context_new, bus_context_unref): test before
7355         calling dbus_server_free_data_slot and _dbus_user_database_unref
7356         in case of an error.
7357
7358         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7359         by libdbus-gtool.
7360
7361 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7362
7363         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7364         _dbus_poll() instead of select().
7365
7366 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7367
7368         * bus/main.c (signal_handler): Reload the configuration files
7369         on SIGHUP.
7370         (main): Set up our SIGHUP handler.
7371
7372         * bus/bus.c (struct BusContext): Store the config file, user and
7373         fork flag in the BusContext.
7374         (process_config_first_time_only): Added.  Contains the code
7375         (previously in bus_context_new) for setting up the BusContext from
7376         the BusConfigParser that should only be run the first time the
7377         config files are read.
7378         (process_config_every_time): Added.  Contains the code (previously
7379         in bus_context_new) for setting up the BusContext from the
7380         BusConfigParser that should be run every time the config files are
7381         read.
7382         (load_config): Added.  Builds a BusConfigParser from the config
7383         files and passes the resulting structure off to
7384         process_config_first_time_only (assuming this is the first time)
7385         and process_config_every_time.
7386         (bus_context_new): All of the config-related code has been moved
7387         to process_config_first_time_only and process_config_every_time.
7388         Now this function just does the non-config-related initializations
7389         and calls load_config.
7390         (bus_context_reload_config): Added.
7391
7392 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7393
7394         * bus/driver.c (bus_driver_handle_get_service_owner):
7395         implement a GetServiceOwner method.
7396         * doc/dbus-specification.xml: document it.
7397         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7398         
7399         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7400         implement, using the bus GetServiceOwner method.
7401
7402         * test/glib/test-dbus-glib.c:
7403         use dbus_gproxy_new_for_service_owner so that we can receive the
7404         signal. 
7405
7406 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7407
7408         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7409         dbus/dbus-message.c, dbus/dbus-protocol.h
7410         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7411
7412         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7413         dbus/dbus-message.c, dbus/dbus-protocol.h
7414         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7415
7416         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7417         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7418         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7419
7420         * doc/dbus-specification.xml (Header Fields Table):
7421         s/SERVICE/DESTINATION
7422         s/SENDER_SERVICE/SENDER
7423
7424
7425 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7426
7427         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7428         a few seconds.
7429
7430 2004-04-13  Michael Meeks  <michael@ximian.com>
7431
7432         * glib/dbus-gobject.c (handle_introspect): split out
7433         (introspect_properties): this.
7434         (handle_introspect): implement this.
7435
7436         * test/glib/Makefile.am: use the absolute path so the bus
7437         daemon's chdir ("/") doesn't kill us dead.
7438
7439         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7440
7441 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7442
7443         * bus/config-parser.c (struct BusConfigParser): Added
7444         included_files field.
7445         (seen_include): Added.  Checks whether or not a file has already
7446         been included by any parent BusConfigParser.
7447         (bus_config_parser_new): Copy the parent's included_files.
7448         (include_file): Track which files have been included, and fail on
7449         circular inclusions.
7450         (process_test_valid_subdir): Changed printf to report if we are
7451         testing valid or invalid conf files.
7452         (all_are_equiv): Changed printf to be a bit clearer about
7453         what we are actually doing.
7454         (bus_config_parser_test): Test invalid configuration files.
7455
7456 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7457
7458         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7459         argument.  If non-null, the newly-constructed BusConfigParser will
7460         be initialized with the parent's BusLimits instead of the default
7461         values.
7462         (include_file): When including a config file, pass in
7463         the current parser as the parent and then copy the BusLimits
7464         from the included BusConfigParser pack to the current parser.
7465         (process_test_valid_subdir): Renamed from process_test_subdir.
7466         (process_test_equiv_subdir): Added.  Walks through a directory,
7467         descending into each subdirectory and loading the config files
7468         it finds there.  If any subdirectory contains two config files
7469         that don't produce identical BusConfigParser structs, fail.
7470         For now, the BusConfigParser's BusPolicies are not compared.
7471         (bus_config_parser_test): Call both process_test_valid_subdir and
7472         process_test_equiv_subdir.
7473
7474         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7475         argument and pass it along to the call to bus_config_parser_new.
7476         Also made a few small changes to allow this code to compile.
7477
7478         * bus/config-loader-expat.c (bus_config_load): Take a parent
7479         argument and pass it along to the call to bus_config_parser_new.
7480
7481         * bus/bus.c (bus_context_new): Load the config file
7482         with a NULL parent argument.
7483
7484 2004-03-29  Michael Meeks  <michael@ximian.com>
7485
7486         * glib/dbus-gobject.c (introspect_properties): split
7487         out, fix mangled 'while' flow control.
7488         (introspect_signals): implement.
7489         (handle_introspect): update.
7490
7491 2004-03-29  Michael Meeks  <michael@ximian.com>
7492
7493         * glib/dbus-gobject.c (set_object_property): split out / 
7494         re-work, use the property type, and not the message type(!)
7495         (get_object_property): ditto.
7496
7497         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7498         (dbus_gvalue_marshal): make this code re-usable, needed
7499         for signals too, also on both proxy and server side.
7500         Re-write for more efficiency / readability.
7501
7502 2004-03-29  Michael Meeks  <michael@ximian.com>
7503
7504         * dbus/dbus-message.c
7505         (dbus_message_new_error_printf): impl.
7506
7507         * dbus/dbus-connection.c
7508         (dbus_connection_unregister_object_path): fix warning.
7509
7510         * configure.in: fix no-mono-installed situation.
7511
7512 2004-03-27  Havoc Pennington  <hp@redhat.com>
7513
7514         Patch from Timo Teräs:
7515         
7516         * tools/dbus-send.c (main): if --print-reply, assume type is
7517         method call; support boolean type args
7518         
7519         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7520         bunch of memleak and logic bugs
7521         
7522 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7523
7524         * mono/Arguments.cs:
7525         * mono/Introspector.cs:
7526         * mono/Handler.cs:
7527         * mono/InterfaceProxy.cs:
7528         * mono/Message.cs
7529         * mono/ProxyBuilder.cs:
7530         * mono/Service.cs:
7531         Added InterfaceProxy class to avoid building proxies for every
7532         object.
7533
7534         * dbus-message.h:
7535         * dbus-message.c (dbus_message_append_args_valist)
7536         (dbus_message_iter_get_object_path)
7537         (dbus_message_iter_get_object_path_array)
7538         (dbus_message_iter_append_object_path)
7539         (dbus_message_iter_append_object_path_array):
7540         Added object_path iter functions to handle OBJECT_PATH arguments
7541         
7542 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7543
7544         First checkin of mono bindings.
7545         * configure.in:
7546         * Makefile.am:
7547         Build stuff for the bindings
7548         * dbus-sharp.pc.in: Added for pkgconfig
7549         
7550 2004-03-21  Havoc Pennington  <hp@redhat.com>
7551
7552         * test/test-service.c (main): remove debug spew
7553
7554 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7555
7556         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7557         arrays
7558
7559         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7560         (dbus_message_iter_init_array_iterator)
7561         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7562         indicate whether the iterator is empty
7563
7564         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7565         warnings
7566
7567 2004-03-19  Havoc Pennington  <hp@redhat.com>
7568
7569         * NEWS: 0.21 updates
7570
7571         * configure.in: 0.21
7572
7573         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7574         
7575         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7576         you don't need pyrex to make dist
7577
7578         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7579         sources; run moc
7580         
7581 2004-03-18  Richard Hult  <richard@imendio.com>
7582
7583         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7584         (dbus_message_set_auto_activation): Add doxygen docs.
7585
7586 2004-03-16  Richard Hult  <richard@imendio.com>
7587
7588         * bus/activation.c: (bus_activation_service_created),
7589         (bus_activation_send_pending_auto_activation_messages),
7590         (bus_activation_activate_service):
7591         * bus/activation.h:
7592         * bus/dispatch.c: (bus_dispatch),
7593         (check_nonexistent_service_auto_activation),
7594         (check_service_auto_activated),
7595         (check_segfault_service_auto_activation),
7596         (check_existent_service_auto_activation), (bus_dispatch_test):
7597         * bus/driver.c: (bus_driver_handle_activate_service):
7598         * bus/services.c: (bus_registry_acquire_service):
7599         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7600         (dbus_message_get_auto_activation):
7601         * dbus/dbus-message.h:
7602         * dbus/dbus-protocol.h: Implement auto-activation.
7603         
7604         * doc/dbus-specification.xml: Add auto-activation to the spec.
7605
7606 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7607
7608         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7609         fix a bug with CUSTOM types.
7610
7611         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7612         a unit test for this bug (used to fail).
7613
7614 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7615
7616         * bus/activation.c:
7617         (babysitter_watch_callback): notify all pending activations waiting for
7618           the same exec that the activation failed.
7619         (bus_activation_activate_service): shortcut the activation if we 
7620           already waiting for the same executable to start up.
7621
7622 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7623
7624         * bus/activation.c: 
7625         - Added service file reloading. 
7626           Each service files directory is kept in an hash table in 
7627           BusActivation and each BusActivationEntry knows what .service-file it
7628           was read from. So when you try to activate a service the bus will 
7629           check if it's been updated, removed or if new .service-files has 
7630           been installed.
7631         - Test code at the bottom for the service file reloading.
7632         * bus/test-main.c: (main):
7633         * bus/test.h:
7634         - added service reloading test.
7635         * dbus/dbus-sysdeps.c: 
7636         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7637
7638 2004-03-08  Michael Meeks  <michael@ximian.com>
7639
7640         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7641         bail immediately if disconnected, to avoid busy loop.
7642
7643         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7644         cleanup cut/paste/inefficiency.
7645
7646 2004-03-01  David Zeuthen  <david@fubar.dk>
7647
7648         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7649         bug where args were used twice. This bug resulted in a segfault
7650         on a Debian/PPC system when starting the messagebus daemon. Include
7651         dbus-sysdeps.h for DBUS_VA_COPY
7652
7653         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7654
7655         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7656         appropriate va_copy implementation. From GLib
7657         
7658 2004-02-24  Joe Shaw  <joe@ximian.com>
7659
7660         * bus/services.c (bus_registry_acquire_service): We need to pass
7661         in the service name to dbus_set_error() to prevent a crash.
7662
7663 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7664
7665         * AUTHORS: Reveal my True identity.
7666
7667 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7668
7669         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7670         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7671
7672 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7673
7674         * doc/TODO: Added not about better error check of configuration files.
7675
7676 2003-12-02  Richard Hult  <richard@imendio.com>
7677
7678         * Update AFL version to 2.0 throughout the source files to reflect
7679         the update that was done a while ago.
7680
7681 2003-12-02  Richard Hult  <richard@imendio.com>
7682
7683         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7684         wrote_dict_key to FALSE on the iter that the dict is appended to,
7685         just like when appending other types. Fixes a bug where a dict
7686         couldn't be put inside a dict.
7687         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7688         (message_iter_test, _dbus_message_test): Add test case for dict
7689         inside dict.
7690
7691 2003-12-01  David Zeuthen  <david@fubar.dk>
7692
7693         * python/dbus.py: Add the actual message when calling the reciever
7694         of a signal such that parameters can be inspected. Add the method
7695         remove_signal_receiver
7696         
7697 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7698
7699         * bus/*.[ch]:
7700         * dbus/*.[ch]:
7701         * glib/*.[ch]: Made ref functions return the pointer
7702
7703 2003-11-25  Zack Rusin  <zack@kde.org>
7704
7705         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7706
7707         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7708         wrappers,
7709
7710         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7711         the Integrator and to better fit with the server,
7712
7713 2003-11-24  Zack Rusin  <zack@kde.org>
7714
7715         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7716         the integrator handles it now
7717
7718         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7719         since QTimer wasn't really meant to be used the way DBusTimeout is
7720
7721 2003-11-24  Zack Rusin  <zack@kde.org>
7722
7723         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7724         Integrator class which integrates D-BUS with the Qt event loop,
7725
7726         * qt/connection.h, qt/connection.cpp: Move all the code which
7727         was dealing with D-BUS integration to the Integrator class,
7728         and start using Integrator,
7729
7730 2003-11-23  Zack Rusin  <zack@kde.org>
7731
7732         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7733         wrapper
7734
7735         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7736         switching namespaces to DBusQt, reworking the class,
7737
7738         * Makefile.cvs: switching dependencies so that it matches KDE 
7739         schematics,
7740         
7741         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7742         the library
7743
7744 2003-11-19  Havoc Pennington  <hp@redhat.com>
7745
7746         * NEWS: update
7747
7748         * configure.in: bump version to 0.20
7749
7750         * configure.in (have_qt): add yet another place to look for qt
7751         (someone hand trolltech a .pc file...)
7752
7753 2003-11-01  Havoc Pennington  <hp@redhat.com>
7754
7755         * doc/dbus-specification.xml: add state machine docs on the auth
7756         protocol; just a first draft, I'm sure it's wrong.      
7757
7758 2003-10-28  David Zeuthen  <david@fubar.dk>
7759
7760         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7761         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7762         
7763 2003-10-28  Havoc Pennington  <hp@redhat.com>
7764
7765         * dbus/dbus-message.c (get_next_field): delete unused function
7766
7767 2003-10-28  Havoc Pennington  <hp@redhat.com>
7768
7769         * bus/expirelist.c (do_expiration_with_current_time): detect
7770         failure of the expire_func due to OOM
7771
7772         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7773
7774         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7775         NoReply error that's now created by the bus when the service exits
7776
7777 2003-10-28  Havoc Pennington  <hp@redhat.com>
7778
7779         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7780         tests for set_path, set_interface, set_member, etc.
7781
7782         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7783
7784         * dbus/dbus-message.c (set_string_field): always just delete and
7785         re-append the field; accept NULL for deletion
7786         (re_align_fields_recurse): reimplement
7787         
7788 2003-10-26  Havoc Pennington  <hp@redhat.com>
7789
7790         * dbus/dbus-connection.c: fix docs to properly describe the
7791         disconnected message
7792         (_dbus_connection_notify_disconnected): remove this function; 
7793         we can't synchronously add the disconnected message, we have to 
7794         do it after we've queued any remaining real messages
7795         (_dbus_connection_get_dispatch_status_unlocked): queue the
7796         disconnect message only if the transport has finished queueing all
7797         its real messages and is disconnected.
7798         (dbus_connection_disconnect): update the dispatch status here
7799
7800 2003-10-22  Havoc Pennington  <hp@redhat.com>
7801
7802         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7803
7804         * bus/connection.c (bus_transaction_send_from_driver): set the
7805         destination to the connection's base service
7806
7807 2003-10-20  Havoc Pennington  <hp@redhat.com>
7808
7809         hmm, make check is currently not passing.
7810         
7811         * doc/dbus-specification.xml: add requirement that custom type
7812         names follow the same rules as interface names.
7813
7814         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7815         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7816         'map'
7817
7818         * doc/dbus-specification.xml: update type codes to match
7819         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7820         CUSTOM. Add type OBJECT_PATH to the spec.
7821
7822 2003-10-17  Havoc Pennington  <hp@redhat.com>
7823
7824         * bus/driver.c (create_unique_client_name): use "." as separator
7825         in base service names instead of '-'
7826
7827         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7828         byte at the end of the string
7829
7830         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7831         optimization macros since string validation seems to be a slow
7832         point.
7833         
7834         * doc/dbus-specification.xml: restrict valid
7835         service/interface/member/error names. Add test suite code for the
7836         name validation.
7837
7838         * dbus/dbus-string.c: limit service/interface/member/error names 
7839         to [0-9][A-Z][a-z]_
7840
7841         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7842         format arg to verbose spew
7843
7844         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7845         memory, return instead of g_error
7846
7847         * test/test-service.c (path_message_func): support emitting a
7848         signal on request
7849
7850         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7851         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7852         assuming the activation bus was the session bus so that services
7853         started manually will still register.
7854         (init_connections_unlocked): fix so that in OOM situation we get
7855         the same semantics when retrying the function
7856         
7857         * test/test-service.c (main): change to use path registration, to
7858         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7859         than DBUS_BUS_SESSION
7860
7861 2003-10-16  Havoc Pennington  <hp@redhat.com>
7862
7863         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7864
7865         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7866         coverage of the tests
7867         (coverage-report.txt): don't move the .da and .bbg files around
7868
7869 2003-10-16  Havoc Pennington  <hp@redhat.com>
7870
7871         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7872         to put there
7873
7874 2003-10-16  Havoc Pennington  <hp@redhat.com>
7875
7876         * bus/connection.c (bus_pending_reply_expired): either cancel or
7877         execute, not both
7878         (bus_connections_check_reply): use unlink, not remove_link, as we
7879         don't want to free the link; fixes double free mess
7880
7881         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7882         where no reply was received
7883
7884         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7885         fix a refcount leak
7886
7887         * bus/signals.c (match_rule_matches): add special cases for the
7888         bus driver, so you can match on sender/destination for it.
7889
7890         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7891         DBUS_PRINT_BACKTRACE is set
7892
7893         * dbus/dbus-internals.c: add pid to assertion failure messages
7894
7895         * dbus/dbus-connection.c: add message type code to the debug spew
7896
7897         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7898         sender=foo not service=foo
7899
7900         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7901         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7902         DBUS_ACTIVATION_ADDRESS instead
7903
7904         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7905         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7906
7907         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7908         context struct
7909
7910         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7911         (dbus_message_iter_get_object_path_array): new function (half
7912         finished, disabled for the moment)
7913         
7914         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7915         DBUS_MESSAGE_TYPE_ERROR
7916
7917         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7918         avoid redirecting stderr to /dev/null
7919         (babysit): close stdin if not doing the "exit_with_session" thing
7920
7921         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7922         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7923         stdout/stdin, so things don't get confused
7924         
7925         * bus/system.conf.in: fix to allow replies, I modified .conf
7926         instead of .conf.in again.
7927
7928 2003-10-14  David Zeuthen  <david@fubar.dk>
7929
7930         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7931         argtype to arg_type when raising unknown arg type exception.
7932         Changed type list to reflect the changes in dbus-protocol.h so 
7933         the bindings actually work.
7934
7935 2003-10-14  Havoc Pennington  <hp@redhat.com>
7936
7937         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7938         to have a bug keeping it from outputting the .da files sometimes
7939         (string_get_string): don't append garbage nul bytes to the string.
7940
7941 2003-10-15  Seth Nickell  <seth@gnome.org>
7942
7943         * python/Makefile.am:
7944
7945         Include dbus_h_wrapper.h in the dist tarball.
7946
7947 2003-10-14  Havoc Pennington  <hp@redhat.com>
7948
7949         * bus/bus.c (bus_context_check_security_policy): revamp this to
7950         work more sanely with new policy-based requested reply setup
7951
7952         * bus/connection.c (bus_transaction_send_from_driver): set bus
7953         driver messages as no reply
7954
7955         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7956         requested_reply attribute on allow/deny rules
7957
7958         * bus/system.conf: add <allow requested_reply="true"/>
7959
7960         * bus/driver.c (bus_driver_handle_message): fix check for replies
7961         sent to the bus driver, which was backward. How did this ever work
7962         at all though? I think I'm missing something.
7963
7964         * dbus/dbus-message.c (decode_header_data): require error and
7965         method return messages to have a reply serial field to be valid
7966         (_dbus_message_loader_queue_messages): break up this function;
7967         validate that reply serial and plain serial are nonzero; 
7968         clean up the OOM/error handling.
7969         (get_uint_field): don't return -1 from this
7970         (dbus_message_create_header): fix signed/unsigned bug
7971
7972         * bus/connection.c (bus_connections_expect_reply): save serial of
7973         the incoming message, not reply serial
7974
7975 2003-10-14  Havoc Pennington  <hp@redhat.com>
7976
7977         * bus/connection.c: implement pending reply tracking using
7978         BusExpireList
7979
7980         * bus/bus.c (bus_context_check_security_policy): verify that a
7981         reply is pending in order to allow a reply to be sent. Deny 
7982         messages of unknown type.
7983
7984         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7985
7986         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7987         (bus_context_get_reply_timeout): new
7988
7989 2003-10-13  Seth Nickell  <seth@gnome.org>
7990
7991         * python/Makefile.am:
7992
7993         Pass "make distcheck": remove a couple files from DIST_FILES
7994         that weren't included in the final version.
7995
7996 2003-10-12  Havoc Pennington  <hp@pobox.com>
7997
7998         Added test code that 1) starts an actual bus daemon and 2) uses
7999         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8000         more testing possible, but this is the basic framework.
8001         
8002         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8003         empty proxy lists from the proxy list hash
8004
8005         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8006         couple of return_if_fail checks
8007
8008         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8009         to allocate, so everything is cleared to NULL as it should be.
8010
8011         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8012         source as data to dbus_connection_set_timeout_functions() as the 
8013         timeout functions expected
8014
8015         * test/glib/run-test.sh: add a little script to start up a message
8016         bus and run tests using it
8017
8018         * tools/dbus-launch.1: updates
8019
8020         * tools/dbus-launch.c (main): add --config-file option
8021
8022         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8023         that could never be reached.
8024
8025         * dbus/dbus-message.c (dbus_message_new_method_return) 
8026         (dbus_message_new_error, dbus_message_new_signal): set the
8027         no-reply-expected flag on all these. Redundant, but may
8028         as well be consistent.
8029
8030 2003-10-11  Havoc Pennington  <hp@pobox.com>
8031
8032         * test/decode-gcov.c (function_solve_graph): make broken block
8033         graph a nonfatal error since it seems to be broken. Need to debug
8034         this.
8035
8036         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8037         can't just check type > INVALID < LAST anymore
8038
8039         * dbus/dbus-message.c (dbus_message_get_signature): new function
8040         (dbus_message_has_signature): new function
8041         (struct DBusMessage): add signature field (right now it isn't sent
8042         over the wire, just generated on the fly)
8043         (dbus_message_copy): copy the signature, and init strings to
8044         proper length to avoid some reallocs
8045         (dbus_message_iter_init_array_iterator): return void, since it
8046         can't fail
8047         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8048         (_dbus_message_loader_queue_messages): add silly temporary hack to
8049         fill in message->signature on load
8050
8051         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8052         characters, so they are relatively human-readable.
8053
8054 2003-10-11  Havoc Pennington  <hp@pobox.com>
8055
8056         * dbus/dbus-message.c (_dbus_message_test): add more test
8057         coverage, but #if 0 for now since they uncover a bug 
8058         not fixed yet; I think in re_align_field_recurse()
8059         (re_align_field_recurse): add FIXME about broken assertion
8060
8061         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8062
8063         * bus/connection.c: share a couple code bits with expirelist.c
8064
8065         * bus/expirelist.h, bus/expirelist.c: implement a generic
8066         expire-items-after-N-seconds facility, was going to share between
8067         expiring connections and replies, decided not to use for expiring
8068         connections for now.
8069
8070         * COPYING: include AFL 2.0 (still need to change all the file headers)
8071
8072 2003-10-09  Havoc Pennington  <hp@redhat.com>
8073
8074         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8075         gcc 3.3. Not that we do anything about it yet.
8076
8077         * bus/signals.c (bus_match_rule_parse): impose max length on the
8078         match rule text
8079
8080         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8081
8082 2003-10-09  Havoc Pennington  <hp@redhat.com>
8083
8084         Make matching rules theoretically work (add parser).
8085         
8086         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8087         the case where destination is explicitly specified as bus driver
8088         and someone else is eavesdropping.
8089         
8090         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8091         definition of eavesdropping and assertion
8092
8093         * tools/dbus-send.c (main): use dbus_message_type_from_string
8094
8095         * bus/signals.c (bus_match_rule_parse): implement
8096
8097         * dbus/dbus-message.c (dbus_message_type_from_string): new
8098
8099         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8100
8101 2003-10-02  Havoc Pennington  <hp@pobox.com>
8102
8103         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8104         dbus_gproxy_oneway_call
8105
8106         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8107         (dbus_server_setup_with_g_main): fix to allow calling them more
8108         than once on the same args
8109         (dbus_bus_get_with_g_main): new function
8110
8111 2003-10-02  Havoc Pennington  <hp@redhat.com>
8112
8113         * doc/dbus-tutorial.xml: write some stuff
8114
8115 2003-09-29  Havoc Pennington  <hp@pobox.com>
8116
8117         * configure.in: split checks for Doxygen from XML docs, check for
8118         xmlto
8119
8120         * doc/Makefile.am: XML-ify all the docs, and add a blank
8121         dbus-tutorial.xml
8122
8123 2003-09-29  Havoc Pennington  <hp@pobox.com>
8124
8125         * Merge dbus-object-names branch. To see the entire patch 
8126         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8127         it's huuuuge though.
8128         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8129         
8130 2003-09-28  Havoc Pennington  <hp@pobox.com>
8131
8132         * HACKING: update to reflect new server
8133
8134 2003-09-26  Seth Nickell  <seth@gnome.org>
8135
8136         * python/dbus.py:
8137         * python/examples/example-signals.py:
8138
8139         Start implementing some notions of signals. The API
8140         is really terrible, but they sort of work (with the
8141         exception of being able to filter by service, and to
8142         transmit signals *as* a particular service). Need to
8143         figure out how to make messages come from the service
8144         we registered :-(
8145         
8146         * python/dbus_bindings.pyx.in:
8147
8148         Removed duplicate message_handler callbacks.
8149         
8150 2003-09-25  Havoc Pennington  <hp@redhat.com>
8151
8152         * bus/session.conf.in: fix my mess
8153
8154 2003-09-25  Havoc Pennington  <hp@pobox.com>
8155
8156         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8157
8158 2003-09-25  Seth Nickell  <seth@gnome.org>
8159
8160         * python/examples/example-service.py:
8161
8162         Johan notices complete wrong code in example-service, but
8163         completely wrong in a way that works exactly the same (!).
8164         Johan is confused, how could this possibly work? Example
8165         code fails to serve purpose of making things clear.
8166         Seth fixes.
8167
8168 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8169
8170         * doc/dbus-specification.sgml: don't require header fields
8171         to be 4-byte aligned and specify that fields should be
8172         distinguished from padding by the fact that zero is not
8173         a valid field name.
8174         
8175         * doc/TODO: remove re-alignment item and add item to doc
8176         the OBJECT_PATH type.
8177         
8178         * dbus/dbus-message.c:
8179         (HeaderField): rename the original member to value_offset
8180         and introduce a name_offset member to keep track of where
8181         the field actually begins.
8182         (adjust_field_offsets): remove.
8183         (append_int_field), (append_uint_field),
8184         (append_string_field): don't align the start of the header
8185         field to a 4-byte boundary.
8186         (get_next_field): impl finding the next marhsalled field
8187         after a given field.
8188         (re_align_field_recurse): impl re-aligning a number of
8189         already marshalled fields.
8190         (delete_field): impl deleting a field of any type and
8191         re-aligning any following fields.
8192         (delete_int_or_uint_field), (delete_string_field): remove.
8193         (set_int_field), (set_uint_field): no need to re-check
8194         that we have the correct type for the field.
8195         (set_string_field): ditto and impl re-aligning any
8196         following fields.
8197         (decode_header_data): update to take into account that
8198         the fields aren't 4-byte aligned any more and the new
8199         way to distinguish padding from header fields. Also,
8200         don't exit when there is too much header padding.
8201         (process_test_subdir): print the directory.
8202         (_dbus_message_test): add test to make sure a following
8203         field is re-aligned correctly after field deletion.
8204         
8205         * dbus/dbus-string.[ch]:
8206         (_dbus_string_insert_bytes): rename from insert_byte and
8207         allow the insert of multiple bytes.
8208         (_dbus_string_test): test inserting multiple bytes.
8209
8210         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8211         warning note to docs about having to re-align any
8212         marshalled values following the string.
8213         
8214         * dbus/dbus-message-builder.c:
8215         (append_string_field), (_dbus_message_data_load):
8216         don't align the header field.
8217         
8218         * dbus/dbus-auth.c: (process_test_subdir): print the
8219         directory.
8220         
8221         * test/break-loader.c: (randomly_add_one_byte): upd. for
8222         insert_byte change.
8223         
8224         * test/data/invalid-messages/bad-header-field-alignment.message:
8225         new test case.
8226         
8227         * test/data/valid-messages/unknown-header-field.message: shove
8228         a dict in the unknown field.
8229
8230 2003-09-25  Seth Nickell  <seth@gnome.org>
8231
8232         * python/dbus.py:
8233         * python/dbus_bindings.pyx.in:
8234
8235         Handle return values.
8236         
8237         * python/examples/example-client.py:
8238         * python/examples/example-service.py:
8239
8240         Pass back return values from the service to the client.
8241         
8242 2003-09-24  Seth Nickell  <seth@gnome.org>
8243
8244         * python/dbus.py:
8245
8246         Connect Object methods (when you are sharing an object) up... pass
8247         in a list of methods to be shared. Sharing all the methods just
8248         worked out too weird. You can now create nice Services over the
8249         DBus in Python. :-)
8250         
8251         * python/dbus_bindings.pyx.in:
8252
8253         Keep references to user_data tuples passed into C functions so 
8254         Python doesn't garbage collect on us.
8255
8256         Implement MethodReturn and Error subclasses of Message for creating
8257         DBusMessage's of those types.
8258         
8259         * python/examples/example-client.py:
8260         * python/examples/example-service.py:
8261
8262         Simple example code showing both how create DBus services and objects,
8263         and how to use them.
8264
8265 2003-09-23  Havoc Pennington  <hp@pobox.com>
8266
8267         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8268
8269 2003-09-23  Havoc Pennington  <hp@redhat.com>
8270
8271         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8272         (dbus_gproxy_disconnect_signal): implement
8273         (dbus_gproxy_manager_remove_signal_match): implement
8274         (dbus_gproxy_manager_add_signal_match): implement
8275         (dbus_gproxy_oneway_call): implement
8276
8277 2003-09-23  Havoc Pennington  <hp@pobox.com>
8278
8279         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8280         subclass. This means dropping the transparent thread safety of the
8281         proxy; you now need a separate proxy per-thread, or your own
8282         locking on the proxy. Probably right anyway.
8283         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8284
8285 2003-09-22  Havoc Pennington  <hp@redhat.com>
8286
8287         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8288
8289 2003-09-21  Seth Nickell  <seth@gnome.org>
8290
8291         First checkin of the Python bindings.
8292         
8293         * python/.cvsignore:
8294         * python/Makefile.am:
8295         * python/dbus_bindings.pyx.in:
8296         * python/dbus_h_wrapper.h:
8297
8298         Pieces for Pyrex to operate on, building a dbus_bindings.so
8299         python module for low-level access to the DBus APIs.
8300         
8301         * python/dbus.py:
8302
8303         High-level Python module for accessing DBus objects.
8304
8305         * configure.in:
8306         * Makefile.am:
8307
8308         Build stuff for the python bindings.
8309
8310         * acinclude.m4:
8311
8312         Extra macro needed for finding the Python C header files.
8313
8314 2003-09-21  Havoc Pennington  <hp@pobox.com>
8315
8316         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8317         implementing the proxy manager, didn't get very far.
8318
8319         * dbus/dbus-bus.c (dbus_bus_add_match): new
8320         (dbus_bus_remove_match): new
8321
8322         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8323         path_name argument; adjust the other not-yet-implemented 
8324         gproxy constructors to be what I think they should be.
8325
8326 2003-09-21  Havoc Pennington  <hp@pobox.com>
8327
8328         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8329         by default for message bus connections.
8330
8331         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8332         exit_on_disconnect flag is set and we process the disconnected
8333         signal.
8334         (dbus_connection_set_exit_on_disconnect): new function
8335
8336 2003-09-21  Havoc Pennington  <hp@pobox.com>
8337
8338         Get matching rules mostly working in the bus; only actually
8339         parsing the rule text remains. However, the client side of
8340         "signal connections" hasn't been started, this patch is only the
8341         bus side.
8342         
8343         * dbus/dispatch.c: fix for the matching rules changes
8344         
8345         * bus/driver.c (bus_driver_handle_remove_match)
8346         (bus_driver_handle_add_match): send an ack reply from these
8347         method calls
8348
8349         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8350         arguments, reported by Seth Nickell
8351
8352         * bus/config-parser.c (append_rule_from_element): support
8353         eavesdrop=true|false attribute on policies so match rules 
8354         can be prevented from snooping on the system bus.
8355
8356         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8357         and "destination" in attribute names; fix some docs bugs; 
8358         add eavesdrop=true|false attribute
8359
8360         * bus/driver.c (bus_driver_handle_add_match)
8361         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8362         messages
8363
8364         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8365         rid of broadcast service concept, signals are just always broadcast
8366
8367         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8368         mostly implement matching rules stuff (currently only exposed as signal
8369         connections)
8370
8371 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8372
8373         * doc/dbus-specification.sgml: Change the header field name
8374         to be an enum and update the rest of the spec to reference
8375         the fields using the conventinal name.
8376
8377         * dbus/dbus-protocol.h: update to reflect the spec.
8378
8379         * doc/TODO: add item to remove the 4 byte alignment requirement.
8380         
8381         * dbus/dbus-message.c: Remove the code to generalise the
8382         header/body length and serial number header fields as named
8383         header fields so we can reference field names using the 
8384         protocol values.
8385         (append_int_field), (append_uint_field), (append_string_field):
8386         Append the field name as a byte rather than four chars.
8387         (delete_int_or_uint_field), (delete_string_field): reflect the
8388         fact that the field name and typecode now occupy 4 bytes instead
8389         of 8.
8390         (decode_string_field), (decode_header_data): update to reflect
8391         protocol changes and move the field specific encoding from
8392         decode_string_field() back into decode_header_data().
8393         
8394         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8395         Add utility to aid debugging.
8396         
8397         * dbus/dbus-message-builder.c:
8398         (append_string_field), (_dbus_message_data_load): Update to
8399         reflect protocol changes; Change the FIELD_NAME directive
8400         to HEADER_FIELD and allow it to take the field's conventional
8401         name rather than the actual value.
8402         
8403         * test/data/*/*.message: Update to use HEADER_FIELD instead
8404         of FIELD_NAME; Always align the header on an 8 byte boundary
8405         *before* updating the header length.
8406
8407 2003-09-15  Havoc Pennington  <hp@pobox.com>
8408
8409         * dbus/dbus-pending-call.c: add the get/set object data
8410         boilerplate as for DBusConnection, etc. Use generic object data
8411         for the notify callback.
8412
8413         * glib/dbus-gparser.c (parse_node): parse child nodes
8414
8415         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8416         
8417         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8418         contain functions shared between the convenience lib and the
8419         installed lib
8420
8421         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8422         -export-symbols-regex to the GLib library
8423
8424         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8425         fix the locking in here, and add a default handler for
8426         Introspect() that just returns sub-nodes.
8427
8428 2003-09-14  Havoc Pennington  <hp@pobox.com>
8429
8430         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8431         rather than gfoo consistent
8432
8433         * glib/dbus-gproxy.h: delete for now, move contents to
8434         dbus-glib.h, because the include files don't work right since we
8435         aren't in the dbus/ subdir.
8436         
8437         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8438         (dbus_gproxy_end_call): finish
8439         (dbus_gproxy_begin_call): finish
8440
8441         * glib/dbus-gmain.c (dbus_set_g_error): new
8442
8443         * glib/dbus-gobject.c (handle_introspect): include information
8444         about child nodes in the introspection
8445
8446         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8447         function to help in implementation of introspection
8448
8449         * dbus/dbus-object-tree.c
8450         (_dbus_object_tree_list_registered_and_unlock): new function
8451
8452 2003-09-12  Havoc Pennington  <hp@pobox.com>
8453
8454         * glib/dbus-gidl.h: add common base class for all the foo_info
8455         types
8456
8457         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8458         similar to kdcop
8459
8460         * test/Makefile.am: try test srcdir -ef . in addition to test
8461         srcdir = ., one of them should work (yeah lame)
8462         
8463         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8464         library
8465         
8466         * glib/dbus-gparser.h: make description_load routines return
8467         NodeInfo* not Parser*
8468
8469         * Makefile.am (SUBDIRS): build test dir after all library dirs
8470
8471         * configure.in: add GTK+ detection
8472
8473 2003-09-07  Havoc Pennington  <hp@pobox.com>
8474
8475         * Make Doxygen contented.
8476
8477 2003-09-07  Havoc Pennington  <hp@pobox.com>
8478
8479         * doc/dbus-specification.sgml: more updates
8480
8481 2003-09-06  Havoc Pennington  <hp@pobox.com>
8482
8483         * doc/dbus-specification.sgml: partial updates
8484
8485         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8486         zillionth time; hopefully I edited the right file this time.
8487
8488         * bus/config-parser.c (append_rule_from_element): support
8489         send_type, send_path, receive_type, receive_path
8490
8491         * bus/policy.c: add message type and path to the list of things
8492         that can be "firewalled"
8493
8494 2003-09-06  Havoc Pennington  <hp@pobox.com>
8495
8496         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8497         (dbus_connection_register_object_path): make this not handle
8498         messages to paths below the given path
8499
8500 2003-09-03  Havoc Pennington  <hp@pobox.com>
8501
8502         * test/glib/Makefile.am: add this with random glib-linked test
8503         programs
8504
8505         * glib/Makefile.am: remove the random test programs from here,
8506         leave only the unit tests
8507
8508         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8509         uscore/javacaps conversion, and fix     
8510         (get_object_property, set_object_property): change to .NET
8511         convention for mapping props to methods, set_FooBar/get_FooBar, 
8512         since one language has such a convention we may as well copy it. 
8513         Plus real methods in either getFooBar or get_foo_bar style won't 
8514         collide with this convention.
8515
8516 2003-09-01  Havoc Pennington  <hp@pobox.com>
8517
8518         * glib/dbus-gparser.c: implement
8519
8520         * glib/dbus-gobject.c: start implementing skeletons support
8521
8522         * configure.in: when disabling checks/assert, also define
8523         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8524
8525 2003-09-01  Havoc Pennington  <hp@pobox.com>
8526
8527         * glib/Makefile.am: rearrange a bunch of files and get "make
8528         check" framework set up
8529
8530 2003-08-31  Havoc Pennington  <hp@pobox.com>
8531
8532         * fix build with --disable-tests
8533
8534 2003-08-30  Havoc Pennington  <hp@pobox.com>
8535
8536         * dbus/dbus-connection.c: purge DBusMessageHandler
8537
8538         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8539         use callbacks everywhere
8540
8541 2003-08-30  Havoc Pennington  <hp@pobox.com>
8542
8543         * test/data/valid-config-files/system.d/test.conf: change to 
8544         root for the user so warnings don't get printed
8545
8546         * dbus/dbus-message.c: add dbus_message_get_path,
8547         dbus_message_set_path
8548         
8549         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8550         dispatching to a path
8551
8552         * dbus/dbus-string.c (_dbus_string_validate_path): add
8553
8554         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8555         (_dbus_marshal_object_path): implement
8556
8557         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8558         to contain the path to the target object
8559         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8560         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8561
8562 2003-08-30  Havoc Pennington  <hp@pobox.com>
8563
8564         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8565
8566 2003-08-29  Havoc Pennington  <hp@pobox.com>
8567
8568         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8569         registered
8570         (struct DBusObjectSubtree): shrink this
8571         a lot, since we may have a lot of them
8572         (_dbus_object_tree_free_all_unlocked): implement
8573         (_dbus_object_tree_dispatch_and_unlock): implement
8574
8575 2003-08-29  Havoc Pennington  <hp@pobox.com>
8576
8577         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8578
8579 2003-08-28  Havoc Pennington  <hp@pobox.com>
8580
8581         purge DBusObjectID
8582         
8583         * dbus/dbus-connection.c: port to no ObjectID, create a
8584         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8585
8586         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8587         everything except UnregisterFunction and MessageFunction
8588         
8589         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8590         add DBUS_TYPE_OBJECT_PATH
8591         
8592         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8593         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8594         path-based object IDs
8595
8596 2003-08-25  Havoc Pennington  <hp@pobox.com>
8597
8598         Just noticed that dbus_message_test is hosed, I wonder when I
8599         broke that. I thought make check was passing earlier...
8600         
8601         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8602         container tree, will replace most of dbus-object-registry
8603
8604         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8605         screwup
8606
8607 2003-08-19  Havoc Pennington  <hp@pobox.com>
8608
8609         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8610         (dbus_message_is_error): fix this function
8611
8612         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8613         match
8614
8615         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8616         reflect clarified man page
8617         (bus_client_policy_check_can_send): ditto
8618         
8619         * bus/session.conf.in: fixup
8620
8621         * bus/system.conf.in: fixup
8622
8623 2003-08-18  Havoc Pennington  <hp@redhat.com>
8624
8625         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8626
8627         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8628         dumb bug created earlier (wrong order of args to
8629         decode_header_data())
8630         
8631         * tools/dbus-send.c: port
8632
8633         * tools/dbus-print-message.c (print_message): port
8634
8635         * test/data/*messages: port all messages over
8636         
8637         * dbus/dbus-message-builder.c: support including 
8638         message type
8639         
8640         * bus/driver.c: port over
8641         
8642         * bus/dispatch.c: port over to new stuff
8643
8644         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8645         rename disconnect signal to "Disconnected"
8646
8647 2003-08-17  Havoc Pennington  <hp@pobox.com>
8648
8649         This doesn't compile yet, but syncing up so I can hack on it from
8650         work. What are branches for if not broken code? ;-)
8651         
8652         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8653         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8654         DBUS_HEADER_FIELD_ERROR_NAME
8655         
8656         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8657         for the interface+member pairs
8658         (string_hash): change to use g_str_hash algorithm
8659         (find_direct_function, find_string_function): refactor these to
8660         share most code.
8661         
8662         * dbus/dbus-message.c: port all of this over to support 
8663         interface/member fields instead of name field
8664
8665         * dbus/dbus-object-registry.c: port over
8666         
8667         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8668         from _dbus_string_validate_name
8669
8670         * bus/dbus-daemon-1.1: change file format for the 
8671         <deny>/<allow> stuff to match new message naming scheme
8672
8673         * bus/policy.c: port over
8674
8675         * bus/config-parser.c: parse new format
8676         
8677 2003-08-16  Havoc Pennington  <hp@pobox.com>
8678
8679         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8680         broken assertion
8681
8682         * glib/dbus-gproxy.c: some hacking
8683
8684 2003-08-15  Havoc Pennington  <hp@redhat.com>
8685
8686         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8687
8688         * dbus/dbus-connection.c
8689         (dbus_connection_send_with_reply_and_block): factor out internals;
8690         change to convert any error replies to DBusError instead of 
8691         returning them as a message
8692
8693 2003-08-15  Havoc Pennington  <hp@pobox.com>
8694
8695         * dbus/dbus-connection.c, 
8696         dbus/dbus-pending-call.c: Finish the pending call stuff
8697
8698 2003-08-14  Havoc Pennington  <hp@redhat.com>
8699
8700         * dbus/dbus-pending-call.c: start on new object that will replace
8701         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8702         replies
8703
8704         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8705         with remote interfaces
8706
8707         * dbus/dbus-gidl.c: do the boring boilerplate in here
8708         
8709 2003-08-12  Havoc Pennington  <hp@pobox.com>
8710
8711         * bus/dispatch.c (bus_dispatch): make this return proper 
8712         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8713
8714         * dbus/dbus-errors.c (dbus_set_error): use
8715         _dbus_string_append_printf_valist
8716
8717         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8718         (_dbus_string_append_printf): new
8719
8720         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8721         UNKNOWN_METHOD
8722
8723         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8724         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8725         message is unhandled.
8726
8727 2003-08-11  Havoc Pennington  <hp@pobox.com>
8728
8729         * bus/test.c (client_disconnect_handler): change to return
8730         HANDLED (would have been REMOVE_MESSAGE)
8731
8732         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8733         HANDLED/NOT_YET_HANDLED instead of
8734         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8735         should be used.
8736
8737 2003-08-10  Havoc Pennington  <hp@pobox.com>
8738
8739         * tools/dbus-send.c (main): add --type argument, for now
8740         supporting only method_call and signal types.
8741
8742         * tools/dbus-print-message.c: print message type
8743
8744         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8745         init connection->objects
8746
8747         * doc/dbus-specification.sgml: fix sgml
8748
8749         * bus/*.c: port over to object-instance API changes
8750
8751         * test/test-service.c: ditto
8752         
8753         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8754         name, we will have to fix up the rest of the code to also handle
8755         this
8756         (dbus_message_new): generic message-creation call
8757         (set_string_field): allow appending name field
8758
8759 2003-08-06  Havoc Pennington  <hp@pobox.com>
8760
8761         * dbus/dbus-object-registry.c: implement signal connection 
8762         and dispatch
8763
8764         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8765
8766         * dbus/dbus-internals.c (_dbus_memdup): new function
8767
8768 2003-08-02  Havoc Pennington  <hp@pobox.com>
8769
8770         * dbus/dbus-message.c (dbus_message_get_no_reply)
8771         (dbus_message_set_no_reply): add these and remove
8772         set_is_error/get_is_error
8773
8774         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8775         remove the ERROR flag, since there's now an ERROR type
8776
8777 2003-08-01  Havoc Pennington  <hp@pobox.com>
8778
8779         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8780         implement
8781
8782         * dbus/dbus-message.c (dbus_message_get_type): new function
8783
8784         * doc/dbus-specification.sgml: add "type" byte to messages
8785
8786 2003-08-01  Havoc Pennington  <hp@pobox.com>
8787
8788         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8789         a message type enum to distinguish kinds of message
8790         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8791         that need not be replied to
8792
8793 2003-08-01  Havoc Pennington  <hp@pobox.com>
8794
8795         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8796         (unpack_8_octets): fix no-64-bit-int bug
8797
8798         * dbus/dbus-object-registry.c (validate_id): validate the 
8799         connection ID bits, not just the instance ID.
8800
8801         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8802         the connection-global 33 bits of the object ID
8803
8804         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8805         object ID in the new way
8806
8807         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8808         define server/client/instance bits.
8809
8810 2003-07-30  Havoc Pennington  <hp@pobox.com>
8811
8812         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8813         build
8814
8815 2003-07-13  Havoc Pennington  <hp@pobox.com>
8816
8817         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8818         fields to DBusObjectVTable and DBusObjectInfo
8819
8820 2003-07-12  Havoc Pennington  <hp@pobox.com>
8821
8822         * dbus/dbus-object-registry.c: implement unit test,
8823         fix bugs discovered in process
8824
8825         * dbus/dbus-connection.c: remove handler_table and
8826         register_handler(), add DBusObjectRegistry usage
8827
8828         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8829         (dbus_object_id_set_null): new functions
8830
8831 2003-07-08  Havoc Pennington  <hp@pobox.com>
8832
8833         * dbus/dbus-object.c: implement some of this
8834
8835         * dbus/dbus-object-registry.c
8836         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8837         param
8838         (_dbus_object_registry_new): handle OOM
8839
8840 2003-07-08  Havoc Pennington  <hp@pobox.com>
8841
8842         * dbus/dbus-object.h: sketch out an API for registering objects
8843         with a connection, that allows us to use as little as 24 bytes
8844         per object and lets application code represent an object in 
8845         any conceivable way.
8846
8847         * dbus/dbus-object-registry.c: implement the hard bits of the
8848         DBusConnection aspect of object API. Not yet wired up.
8849         
8850 2003-07-06  Havoc Pennington  <hp@pobox.com>
8851
8852         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8853         (_dbus_marshal_object_id): new
8854         (_dbus_demarshal_object_id): new
8855         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8856         consolidate identical switch cases. Don't conditionalize handling
8857         of DBUS_TYPE_UINT64, need to handle the type always.
8858         (_dbus_marshal_validate_arg): consolidate identical cases, and
8859         handle DBUS_TYPE_OBJECT_ID
8860
8861         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8862
8863         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8864
8865 2003-09-28  Havoc Pennington  <hp@pobox.com>
8866
8867         * real 0.13 release
8868
8869 2003-09-28  Havoc Pennington  <hp@pobox.com>
8870
8871         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8872         to work with Debian db2html
8873
8874 2003-09-28  Havoc Pennington  <hp@pobox.com>
8875
8876         * configure.in: 0.13
8877
8878         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8879         stylesheet-images for benefit of Debian
8880         
8881         Change back to using filesystem-linked sockets for the system
8882         bus, so only root can create the default system bus address.
8883         
8884         * bus/system.conf.in: change to use
8885         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8886
8887         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8888         from here.
8889
8890         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8891         here, and AC_DEFINE DBUS_SYSTEM_PATH
8892
8893 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8894
8895         * doc/TODO:
8896         * doc/busconfig.dtd:
8897         Add busconfig DTD.
8898         
8899 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8900
8901         * doc/dbus-specification.sgml:
8902         Add activation reply values.
8903         
8904 2003-08-05  Havoc Pennington  <hp@redhat.com>
8905
8906         * configure.in: 0.12
8907
8908 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8909
8910         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8911         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8912         (add_watch), (remove_watch), (create_source):
8913         Refcount fds, fixes some reentrancy issues.
8914         
8915 2003-07-30  Havoc Pennington  <hp@redhat.com>
8916
8917         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8918         bus address to be abstract if we have abstract sockets
8919
8920         * NEWS: update
8921
8922 2003-07-28  Havoc Pennington  <hp@redhat.com>
8923
8924         * bus/messagebus.in: fix to avoid processname/servicename 
8925         confusion, from Michael Kearey
8926         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8927         
8928 2003-07-23  Havoc Pennington  <hp@pobox.com>
8929
8930         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8931         fix from Andy Hanton to remove broken "+1"
8932
8933 2003-07-16  Havoc Pennington  <hp@pobox.com>
8934
8935         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8936         babysitter process, as suggested by Thomas Leonard, so 
8937         an "eval `dbus-launch --exit-with-session`" will actually 
8938         return
8939
8940 2003-07-16  Havoc Pennington  <hp@pobox.com>
8941
8942         * configure.in: print out EXPANDED_* variables in the summary at
8943         the end; clean up the code that computes EXPANDED_ variables and
8944         get the ones using exec_prefix right. Should make things work
8945         when you build without --prefix
8946
8947 2003-06-29  Havoc Pennington  <hp@pobox.com>
8948
8949         * mono/Test.cs (class Test): fire up a main loop and run it
8950
8951         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8952         done once, the app has to do it
8953
8954 2003-06-26  Havoc Pennington  <hp@pobox.com>
8955
8956         * mono/Connection.cs: set up connection with the glib main loop
8957
8958 2003-07-01  Havoc Pennington  <hp@redhat.com>
8959
8960         * doc/dbus-specification.sgml: clarify the format of a type code,
8961         change suggested by Jim Blandy
8962
8963 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8964
8965         * doc/Makefile.am:
8966         * tools/Makefile.am: Don't assume srcdir == builddir.
8967
8968         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8969         the allocated block.
8970         (_dbus_memory_test): New function.
8971         * dbus/dbus-test.h: Add _dbus_memory_test ().
8972         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8973
8974         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8975         of %c%c%c%c.
8976         (dbus_message_new): Remove obsolete @todo.
8977
8978         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8979         (_dbus_marshal_set_uint64): Fix comment.
8980
8981         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8982         hardcode FIELD_REPLY_SERIAL.
8983
8984         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8985         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8986
8987         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8988         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8989
8990 2003-06-24  Havoc Pennington  <hp@pobox.com>
8991
8992         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8993
8994 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8995
8996         * configure.in:
8997         * gcj/.cvsignore:
8998         * gcj/Hello.java:
8999         * gcj/Makefile.am:
9000         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9001         * gcj/org/.cvsignore:
9002         * gcj/org/Makefile.am:
9003         * gcj/org/freedesktop/.cvsignore:
9004         * gcj/org/freedesktop/Makefile.am:
9005         * gcj/org/freedesktop/dbus/.cvsignore:
9006         * gcj/org/freedesktop/dbus/Makefile.am:
9007         * gcj/org/freedesktop/dbus/Message.java: (Message),
9008         (Message.Message):
9009         * gcj/org/freedesktop/dbus/natMessage.cc:
9010         Fix the build system.
9011
9012 2003-06-22  Havoc Pennington  <hp@pobox.com>
9013
9014         * mono/Connection.cs: add more bindings
9015
9016         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9017         more than once.
9018
9019 2003-06-22  Havoc Pennington  <hp@pobox.com>
9020
9021         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9022         Start wrapping more stuff.
9023
9024 2003-06-22  Havoc Pennington  <hp@pobox.com>
9025
9026         * mono/Message.cs: implement Message.Wrap() that ensures we only
9027         have a single C# wrapper per DBusMessage, assuming it works which
9028         it probably doesn't.
9029
9030         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9031         (dbus_message_free_data_slot): new
9032         (dbus_message_set_data): new
9033         (dbus_message_get_data): new
9034
9035 2003-06-22  Havoc Pennington  <hp@pobox.com>
9036
9037         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9038         (_dbus_data_slot_allocator_alloc): rework these to keep a
9039         reference count on each slot and automatically manage a global
9040         slot ID variable passed in by address
9041
9042         * bus/bus.c: convert to new dataslot API
9043
9044         * dbus/dbus-bus.c: convert to new dataslot API
9045
9046         * dbus/dbus-connection.c: convert to new dataslot API
9047
9048         * dbus/dbus-server.c: convert to new dataslot API
9049
9050         * glib/dbus-gmain.c: ditto
9051
9052         * bus/test.c: ditto
9053
9054         * bus/connection.c: ditto
9055
9056 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9057
9058         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9059         after the gcj checks so that the correct configuration tags
9060         will be added to libtool.
9061
9062         * dbus-glib-1.pc.in: No need to specify any includes since
9063         dbus-1.pc.in has those.
9064
9065 2003-06-22  Havoc Pennington  <hp@pobox.com>
9066
9067         * mono/*, gcj/*, configure.in, Makefile.am:
9068         Check in makefiles and subdirs for mono and gcj bindings.
9069         Neither binding actually exists, just trying to get through
9070         all the build and other boring bits.
9071
9072 2003-06-21  Philip Blundell  <philb@gnu.org>
9073
9074         * tools/dbus-monitor.1: Updated.
9075
9076         * tools/dbus-send.1: Likewise.
9077
9078 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9079
9080         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9081         for hangup and error after checking read so we won't discard
9082         pending data if both hangup and read are set.
9083
9084 2003-06-19  Philip Blundell  <philb@gnu.org>
9085
9086         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9087
9088         * tools/dbus-send.c: Accept both --system and --session.
9089
9090         * tools/dbus-monitor.c: Same here.
9091
9092 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9093
9094         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9095         from C++ (Patch by Miloslav Trmac).
9096
9097 2003-06-15  Joe Shaw  <joe@assbarn.com>
9098
9099         * configure.in: Check for socklen_t.
9100
9101         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9102
9103         * test/test-segfault.c: Add #include <sys/time.h>
9104
9105         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9106         dbus-launch needs it.
9107
9108 2003-06-09  Havoc Pennington  <hp@redhat.com>
9109
9110         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9111         SUN_LEN, it breaks abstract socket usage
9112
9113         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9114         starts of lines.
9115
9116 2003-06-04  Havoc Pennington  <hp@pobox.com>
9117
9118         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9119         using unix:abstract=/foo, and when listening in a tmpdir
9120         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9121
9122         * dbus/dbus-transport.c (_dbus_transport_open): support
9123         unix:abstract=/foo
9124
9125         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9126         support abstract sockets
9127
9128         * dbus/dbus-transport-unix.c
9129         (_dbus_transport_new_for_domain_socket): support abstract sockets
9130
9131         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9132         toggle as an argument, implement abstract namespace support
9133         (_dbus_listen_unix_socket): ditto
9134
9135         * configure.in: add --enable-abstract-sockets and implement
9136         a configure check for autodetection of the right value.
9137
9138 2003-06-01  Havoc Pennington  <hp@pobox.com>
9139
9140         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9141         in /tmp (though on Linux this will end up being useless,
9142         when we add abstract namespace support)
9143
9144         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9145         subst'ing it
9146
9147 2003-05-28  Colin Walters  <walters@verbum.org>
9148
9149         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9150
9151 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9152
9153         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9154
9155 2003-05-17  Colin Walters  <walters@gnu.org>
9156
9157         * tools/dbus-send.c: Don't exit with an error code if --help was
9158         passed.  Default to using the session bus instead of the system
9159         one.
9160
9161         * tools/dbus-launch.c: Ditto.
9162
9163         * tools/dbus-monitor.c: Ditto.
9164
9165         * tools/dbus-send.1: Update with new arguments.
9166
9167         * tools/dbus-launch.c: Emit code to export variables.  New
9168         arguments -s and -c to specify shell syntax, and a bit of code to
9169         autodetect syntax.  Also, allow specifying a program to run.
9170
9171         * tools/dbus-launch.1: Update with new arguments.
9172
9173         * tools/dbus-send.1: Ditto.
9174
9175         * tools/dbus-monitor.1: Ditto.
9176
9177 2003-05-17  Havoc Pennington  <hp@pobox.com>
9178
9179         * bus/config-parser.c (merge_included): merge in policies from
9180         child configuration file.
9181
9182         * bus/policy.c (bus_policy_merge): function to merge two policies
9183         together
9184
9185 2003-05-16  Havoc Pennington  <hp@redhat.com>
9186
9187         * dbus/dbus-connection.c: disable verbose lock spew
9188
9189         * tools/dbus-send.c: add --print-reply command line option
9190
9191         * tools/dbus-print-message.h (print_message): new util function
9192         shared by dbus-send and dbus-monitor
9193
9194         * tools/dbus-monitor.c (handler_func): exit on disconnect
9195
9196         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9197         disconnected, don't try to use the read_watch
9198
9199         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9200         so we can find this bug more easily
9201
9202 2003-05-16  Havoc Pennington  <hp@redhat.com>
9203
9204         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9205         NULL as DBusHashTable is annoyingly likely to do.
9206
9207 2003-05-16  Colin Walters  <walters@verbum.org>
9208
9209         * tools/dbus-monitor.c: Add --session argument and usage()
9210         function.
9211
9212         * tools/dbus-monitor.1: Update with new --session arg.
9213
9214         * bus/Makefile.am (install-data-hook): Create
9215         $(libdir)/dbus-1.0/services so that the session bus is happy.
9216
9217 2003-05-15  Havoc Pennington  <hp@redhat.com>
9218
9219         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9220         on non-x86. ifdef's are evil.
9221
9222 2003-05-15  Havoc Pennington  <hp@redhat.com>
9223
9224         * configure.in: 0.11
9225
9226         * NEWS: update
9227
9228         * bus/Makefile.am (initddir): apparently we are supposed to put
9229         init scripts in /etc/rc.d/init.d not /etc/init.d
9230
9231         * bus/Makefile.am: remove the "you must --enable-tests to make
9232         check" as it broke distcheck
9233
9234         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9235
9236 2003-05-13  James Willcox  <jwillcox@gnome.org>
9237
9238         * configure.in:
9239         * bus/activation.c: (bus_activation_service_created),
9240         (bus_activation_activate_service):
9241         * bus/driver.c: (bus_driver_send_service_deleted),
9242         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9243         (bus_driver_send_service_acquired),
9244         (bus_driver_send_welcome_message),
9245         (bus_driver_handle_list_services):
9246         * bus/session.conf.in:
9247         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9248         (dbus_bus_service_exists), (dbus_bus_activate_service):
9249         * dbus/dbus-bus.h:
9250
9251         Add some convenience API which lets you activate a service, and did a
9252         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9253         and dbus_message_get_args()
9254
9255 2003-05-11  Havoc Pennington  <hp@pobox.com>
9256
9257         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9258         calling _dbus_marshal_validate_arg() for every byte in a byte
9259         array, etc.
9260
9261         * dbus/dbus-message-handler.c: use atomic reference counting to
9262         reduce number of locks slightly; the global lock in here sucks
9263
9264         * dbus/dbus-connection.c
9265         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9266         update_dispatch_status that can be called with lock held; then use
9267         in a couple places to reduce locking/unlocking
9268         (dbus_connection_send): hold the lock over the whole function
9269         instead of acquiring it twice.
9270
9271         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9272
9273         * bus/connection.c (bus_connections_setup_connection): fix access
9274         to already-freed memory.
9275
9276         * dbus/dbus-connection.c: keep a little cache of linked list
9277         nodes, to avoid using the global linked list alloc lock in the
9278         normal send-message case. Instead we just use the connection lock
9279         that we already have to take.
9280
9281         * dbus/dbus-list.c (_dbus_list_find_last): new function
9282
9283         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9284         change to use a struct for the atomic type; fix docs,
9285         they return value before increment, not after increment.
9286
9287         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9288         (_dbus_string_append_8_aligned): new functions to try to
9289         microoptimize this operation.
9290         (reallocate_for_length): break this out of set_length(), to
9291         improve profile info, and also so we can consider inlining the
9292         set_length() part.
9293
9294         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9295         strings with some preallocation, cuts down on our calls to realloc
9296         a fair bit. Though if we can get the "move entire string to empty
9297         string" optimization below to kick in here, it would be better.
9298
9299         * dbus/dbus-string.c (_dbus_string_move): just call
9300         _dbus_string_move_len
9301         (_dbus_string_move_len): add a special case for moving
9302         an entire string into an empty string; we can just
9303         swap the string data instead of doing any reallocs.
9304         (_dbus_string_init_preallocated): new function
9305
9306 2003-05-11  Havoc Pennington  <hp@pobox.com>
9307
9308         Write a "test-profile" that does echo client-server with threads;
9309         profile reveals lock contention, memcpy/realloc of buffers, and
9310         UTF-8 validation as hot spots. 20% of lock contention eliminated
9311         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9312         contention is global mempool locks for GList and DBusList.
9313
9314         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9315         x86 implementation
9316
9317         * dbus/dbus-connection.c (struct DBusConnection): use
9318         dbus_atomic_t for the reference count
9319
9320         * dbus/dbus-message.c (struct DBusMessage): declare
9321         dbus_atomic_t values as volatile
9322
9323         * configure.in: code to detect ability to use atomic integer
9324         operations in assembly, from GLib patch
9325
9326         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9327         time, tired of it being wrong in threads and forked processes
9328
9329         * glib/test-profile.c: a little program to bounce messages back
9330         and forth between threads and eat CPU
9331
9332         * dbus/dbus-connection.c: add debug spew macros for debugging
9333         thread locks; include config.h at top; fix deadlock in
9334         dbus_connection_flush()
9335
9336 2003-05-08  Havoc Pennington  <hp@pobox.com>
9337
9338         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9339         data from getting written, and there wasn't a good reason to
9340         use _exit really.
9341
9342         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9343         dbus_verbose lines in test coverage
9344         (main): add list of functions sorted by # of untested blocks
9345         to the coverage report
9346
9347         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9348
9349         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9350
9351         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9352         extend test coverage
9353
9354         * test/data/auth/cancel.auth-script: test canceling an
9355         authentication
9356
9357         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9358         aren't used. in CVS history if we end up needing them.
9359
9360 2003-05-04  Havoc Pennington  <hp@pobox.com>
9361
9362         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9363         unit test
9364
9365         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9366         function, which assumed length was in # of strings, not bytes
9367
9368         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9369         missing coverage
9370
9371         * dbus/dbus-connection.c
9372         (_dbus_connection_queue_received_message): disable function for
9373         now, we are only using it in test mode
9374
9375         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9376         remove a mistaken FIXME
9377
9378 2003-05-04  Havoc Pennington  <hp@pobox.com>
9379
9380         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9381         unlock mutex on successful return, patch from Anders Gustafsson
9382
9383 2003-05-04  Havoc Pennington  <hp@pobox.com>
9384
9385         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9386         Anders Gustafsson
9387
9388 2003-05-04  Havoc Pennington  <hp@pobox.com>
9389
9390         * tools/dbus-launch.c: implement
9391
9392         * bus/main.c (main), bus/bus.c (bus_context_new):
9393         implement --print-pid and --fork
9394
9395 2003-05-03  Havoc Pennington  <hp@redhat.com>
9396
9397         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9398         the address had no value, and add to test suite. Fix and
9399         regression test from Miloslav Trmac
9400
9401 2003-05-03  Havoc Pennington  <hp@pobox.com>
9402
9403         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9404         watch is invalid when handled
9405
9406         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9407         dbus-launch utility to launch the bus from a shell script.  Didn't
9408         actually implement dbus-launch yet, it's just a placeholder still.
9409
9410 2003-05-03  Havoc Pennington  <hp@pobox.com>
9411
9412         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9413         daemon; also documents daemon config file, so replaces
9414         doc/config-file.txt. Corrected some stuff from config-file.txt in
9415         the process of moving it.
9416
9417 2003-05-03  Havoc Pennington  <hp@pobox.com>
9418
9419         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9420         add some man pages
9421
9422 2003-05-03  Colin Walters  <walters@verbum.org>
9423
9424         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9425         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9426
9427         * Makefile.am: Update to use new .pc versioning scheme.
9428
9429 2003-05-02  Havoc Pennington  <hp@redhat.com>
9430
9431         * bus/system.conf.in: allow send/receive to/from message bus
9432         service
9433
9434 2003-04-30  Havoc Pennington  <hp@redhat.com>
9435
9436         * configure.in: print a note when building with unit tests and
9437         without assertions
9438
9439 2003-04-30  Havoc Pennington  <hp@redhat.com>
9440
9441         * Makefile.am: add a check-local that complains if you didn't
9442         configure with --enable-tests
9443
9444 2003-04-29  Havoc Pennington  <hp@redhat.com>
9445
9446         * glib/dbus-gmain.c: docs cleanups
9447
9448         * dbus/dbus-types.h: add docs on int64 types
9449
9450         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9451         public API docs section
9452
9453 2003-04-29  Havoc Pennington  <hp@redhat.com>
9454
9455         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9456         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9457         parallel install API version, not with the D-BUS package version.
9458
9459         * HACKING: move some of README over here
9460
9461         * README: updates, and document API/ABI policy
9462
9463         * configure.in: reindentation
9464
9465 2003-04-29  Havoc Pennington  <hp@redhat.com>
9466
9467         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9468         to use this library" to be sure people have the right
9469         expectations.
9470
9471 2003-04-28  Havoc Pennington  <hp@redhat.com>
9472
9473         * configure.in: add --enable-docs which by default is auto yes if
9474         doxygen and db2html found, no otherwise; but can be forced on/off
9475
9476         * doc/Makefile.am: conditionalize whether to build docs on
9477         --enable-docs
9478
9479 2003-04-28  Havoc Pennington  <hp@redhat.com>
9480
9481         * configure.in: 0.10
9482
9483         * NEWS: update
9484
9485         * bus/system.conf.in: add <includedir>system.d</includedir>
9486
9487         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9488         username was provided but not uid
9489
9490         * bus/config-parser.c (struct BusConfigParser): keep track of
9491         whether the parser is toplevel or was included; change some
9492         of the error handling if it's included.
9493
9494 2003-04-27  Havoc Pennington  <hp@pobox.com>
9495
9496         Unbreak my code...
9497
9498         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9499         report correct status if we finish processing authentication
9500         inside this function.
9501
9502         * bus/activation.c (try_send_activation_failure): use
9503         bus_transaction_send_error_reply
9504
9505         * bus/connection.c (bus_connection_get_groups): return an error
9506         explaining the problem
9507
9508         * bus/bus.c (bus_context_check_security_policy): implement
9509         restriction here that inactive connections can only send the
9510         hello message. Also, allow bus driver to send anything to
9511         any recipient.
9512
9513         * bus/connection.c (bus_connection_complete): create the
9514         BusClientPolicy here instead of on-demand.
9515         (bus_connection_get_policy): don't return an error
9516
9517         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9518         sender field in message being replied to
9519
9520         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9521         causing it to return FALSE always
9522
9523         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9524         we checked sender rather than destination
9525
9526 2003-04-25  Havoc Pennington  <hp@redhat.com>
9527
9528         test suite is slightly hosed at the moment, will fix soon
9529
9530         * bus/connection.c (bus_connections_expire_incomplete): fix to
9531         properly disable the timeout when required
9532         (bus_connection_set_name): check whether we can remove incomplete
9533         connections timeout after we complete each connection.
9534
9535         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9536         probably still broken.
9537
9538         * bus/services.c (bus_registry_acquire_service): implement max
9539         number of services owned, and honor allow/deny rules on which
9540         services a connection can own.
9541
9542         * bus/connection.c (bus_connection_get_policy): report errors here
9543
9544         * bus/activation.c: implement limit on number of pending
9545         activations
9546
9547 2003-04-25  Havoc Pennington  <hp@redhat.com>
9548
9549         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9550         where we used >= 0 instead of != DBUS_UID_UNSET.
9551
9552 2003-04-25  Havoc Pennington  <hp@redhat.com>
9553
9554         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9555         were toggled without add/remove, fix from Anders Gustafsson
9556
9557 2003-04-24  Havoc Pennington  <hp@redhat.com>
9558
9559         * test/data/valid-config-files/basic.conf: add <limit> tags to
9560         this test
9561
9562         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9563         <limit> tag in configuration file.
9564
9565 2003-04-24  Havoc Pennington  <hp@redhat.com>
9566
9567         * bus/dispatch.c: somehow missed some name_is
9568
9569         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9570         (_dbus_timeout_set_interval): new
9571
9572         * bus/connection.c (bus_connections_setup_connection): record time
9573         when each connection is first set up, and expire them after the
9574         auth timeout passes.
9575
9576 2003-04-24  Havoc Pennington  <hp@redhat.com>
9577
9578         * dbus/dbus-message.c (dbus_message_name_is): rename
9579         (dbus_message_service_is): rename
9580         (dbus_message_sender_is): rename
9581         (dbus_message_get_service): rename
9582
9583 2003-04-24  Havoc Pennington  <hp@redhat.com>
9584
9585         * configure.in: add --enable-checks
9586
9587         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9588
9589         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9590         to use thread locks.
9591         (_dbus_connection_handler_destroyed_locked): move some private
9592         functions into proper docs group
9593
9594         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9595         _dbus_return_val_if_fail
9596
9597         Throughout: use dbus_return_if_fail
9598
9599 2003-04-23  James Willcox  <jwillcox@gnome.org>
9600
9601         * glib/dbus-glib.h:
9602         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9603         (dbus_connection_setup_with_g_main),
9604         (dbus_server_setup_with_g_main):
9605         * glib/test-dbus-glib.c: (main):
9606         * glib/test-thread-client.c: (main):
9607         * glib/test-thread-server.c: (new_connection_callback), (main):
9608         * tools/dbus-monitor.c: (main):
9609
9610         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9611         and dbus_server_setup_with_g_main().
9612
9613 2003-04-20  Havoc Pennington  <hp@pobox.com>
9614
9615         * doc/dbus-specification.sgml: document the restrictions on
9616         message and service names
9617
9618 2003-04-22  Havoc Pennington  <hp@redhat.com>
9619
9620         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9621         support, and do some code cleanups to share more code and
9622         speed up array marshal/demarshal.
9623
9624         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9625
9626         * configure.in: generate dbus-arch-deps.h
9627
9628         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9629         64-bit typecodes
9630
9631 2003-04-22  Havoc Pennington  <hp@redhat.com>
9632
9633         * test/data/valid-messages/opposite-endian.message: fix test
9634         to use proper type for rply field
9635
9636         * test/data/invalid-messages: add tests for below validation
9637
9638         * dbus/dbus-message.c (decode_header_data): validate field types,
9639         and validate that named fields are valid names
9640         (decode_name_field): consider messages in the
9641         org.freedesktop.Local. namespace to be invalid.
9642
9643         * dbus/dbus-string.c (_dbus_string_validate_name): new
9644
9645 2003-04-19  Havoc Pennington  <hp@pobox.com>
9646
9647         * bus/driver.c (bus_driver_handle_hello): check limits and
9648         return an error if they are exceeded.
9649
9650         * bus/connection.c: maintain separate lists of active and inactive
9651         connections, and a count of each. Maintain count of completed
9652         connections per user. Implement code to check connection limits.
9653
9654         * dbus/dbus-list.c (_dbus_list_unlink): export
9655
9656         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9657         number of bytes in the message queue for a connection
9658
9659 2003-04-18  Havoc Pennington  <hp@pobox.com>
9660
9661         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9662
9663         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9664         memleaks
9665
9666         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9667         on realloc be sure to update the pointer in the keyring
9668
9669         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9670         offset to avoid writing to unallocated memory
9671
9672         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9673         try the next mechanism, so we properly handle OOM
9674
9675         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9676         on OOM.
9677         (_dbus_keyring_new): fix OOM bug
9678         (_dbus_keyring_new_homedir): always set error; impose a maximum
9679         number of keys we'll load from the file, mostly to speed up the
9680         test suite and make its OOM checks more useful, but also for
9681         general sanity.
9682
9683         * dbus/dbus-auth.c (process_error_server): reject authentication
9684         if we get an error from the client
9685         (process_cancel): on cancel, send REJECTED, per the spec
9686         (process_error_client): send CANCEL if we get an error from the
9687         server.
9688
9689 2003-04-18  Havoc Pennington  <hp@pobox.com>
9690
9691         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9692         debug spew
9693
9694         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9695         handling problem
9696
9697         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9698         about DBUS_TEST_HOMEDIR once
9699
9700         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9701         the environment
9702
9703         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9704         config file so we test the right thing
9705
9706         Throughout: assorted docs improvements
9707
9708 2003-04-18  Havoc Pennington  <hp@pobox.com>
9709
9710         * glib/dbus-gmain.c: adapt to watch changes
9711
9712         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9713
9714         * dbus/dbus-server.h: remove dbus_server_handle_watch
9715
9716         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9717
9718         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9719         like DBusTimeout, so we don't need dbus_connection_handle_watch
9720         etc.
9721
9722 2003-04-17  Havoc Pennington  <hp@redhat.com>
9723
9724         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9725         database usage so it all goes via the DBusUserDatabase cache.
9726
9727 2003-04-17  Havoc Pennington  <hp@redhat.com>
9728
9729         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9730         there was an OOM watch we skipped, we always return TRUE so we
9731         iterate again to have a look at it again. Fixes test suite hang.
9732         Code rearrangement also lets us lose some memset and only iterate
9733         over callbacks once.
9734
9735         * bus/driver.c (bus_driver_handle_message): sense of test for
9736         reply was backward
9737
9738 2003-04-16  Havoc Pennington  <hp@pobox.com>
9739
9740         * doc/dbus-specification.sgml: make spec say serials are unsigned
9741
9742         * dbus/dbus-message.h: change message serials to unsigned
9743
9744         * dbus/dbus-connection.c: adapt to message serials being unsigned
9745
9746 2003-04-15  Havoc Pennington  <hp@pobox.com>
9747
9748         * bus/bus.c: create and keep around a shared DBusUserDatabase
9749         object.
9750
9751         * bus/connection.c (bus_connection_get_groups): don't cache
9752         groups for user in the connection object, since user database
9753         object now does that.
9754
9755 2003-04-16  Havoc Pennington  <hp@redhat.com>
9756
9757         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9758         list of size counters
9759         (_dbus_message_loader_putback_message_link): put back a popped link
9760
9761         * dbus/dbus-connection.c
9762         (dbus_connection_set_max_live_messages_size): rename
9763         max_received_size
9764         (dbus_connection_get_outgoing_size): get size of outgoing
9765         queue
9766         (_dbus_connection_set_connection_counter): remove this cruft
9767
9768 2003-04-14  Havoc Pennington  <hp@redhat.com>
9769
9770         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9771         caching, but at some point we might want to be able to use a
9772         different database.
9773
9774         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9775         SHA1 conf file to test the sha1 auth mechanism, since the regular
9776         test always uses EXTERNAL when available.
9777
9778         * configure.in,
9779         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9780         add conf file that requires use of sha1 auth
9781
9782 2003-04-13  Havoc Pennington  <hp@pobox.com>
9783
9784         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9785         from Philip Blundell to send messages and monitor them.
9786
9787 2003-04-13  Havoc Pennington  <hp@pobox.com>
9788
9789         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9790         callbacks
9791
9792         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9793         users
9794
9795         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9796         fix to only recover unused bytes if we're already authenticated
9797         (_dbus_transport_get_is_authenticated): fix to still mark us
9798         authenticated if there are unused bytes.
9799
9800         * bus/dispatch.c: implement security policy checking
9801
9802         * bus/connection.c (bus_transaction_send_from_driver): new
9803
9804         * bus/bus.c (bus_context_check_security_policy): new
9805
9806         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9807         now we just set the DBusError and it gets converted to an error
9808         reply.
9809
9810         * bus/connection.c (allow_user_function): enable code using actual
9811         data from the config file
9812
9813         * bus/policy.c (list_allows_user): handle wildcard rules for
9814         user/group connection perms
9815
9816 2003-04-13  Havoc Pennington  <hp@pobox.com>
9817
9818         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9819
9820         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9821
9822         * bus/policy.c (bus_policy_append_mandatory_rule)
9823         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9824         (bus_policy_append_group_rule): new functions
9825
9826 2003-04-12  Havoc Pennington  <hp@pobox.com>
9827
9828         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9829
9830         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9831         the pid/gid/uid, just for paranoia.
9832
9833         * test/break-loader.c (randomly_do_n_things): find a byte
9834         containing a type code, and randomly change it to a different
9835         type code.
9836
9837 2003-04-12  Havoc Pennington  <hp@pobox.com>
9838
9839         * bus/policy.h: change BusPolicy to be the thing from the config
9840         file, and rename old BusPolicy to BusClientPolicy
9841
9842         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9843         match change in how policy works
9844
9845         * dbus/dbus-internals.h: mark assert_not_reached as
9846         __attribute((noreturn))__
9847
9848 2003-04-11  Havoc Pennington  <hp@redhat.com>
9849
9850         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9851         the broadcast service. Use boolean return for ServiceExists.
9852
9853 2003-04-11  Havoc Pennington  <hp@redhat.com>
9854
9855         * configure.in: add another directory to look for qt in.
9856
9857 2003-04-11  Havoc Pennington  <hp@redhat.com>
9858
9859         * AUTHORS: add Colin Walters
9860
9861 2003-04-11  Havoc Pennington  <hp@redhat.com>
9862
9863         * NEWS: update
9864
9865         * configure.in: 0.9
9866
9867 2003-04-11  Havoc Pennington  <hp@redhat.com>
9868
9869         * bus/messagebus.in: remove pid file when stopping the
9870         message bus, since the bus won't have privileges to remove it
9871         itself.
9872
9873 2003-04-11  Havoc Pennington  <hp@redhat.com>
9874
9875         * bus/bus.c (bus_context_new): move credentials change after
9876         creating pidfile
9877
9878 2003-04-11  Havoc Pennington  <hp@pobox.com>
9879
9880         * test/decode-gcov.c: add "below average functions" to the
9881         coverage report, and change how some of the code works.
9882
9883         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9884         not in the coverage stats.
9885
9886         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9887         couple places so running the test suite doesn't result in megaspam.
9888
9889 2003-04-11  Havoc Pennington  <hp@pobox.com>
9890
9891         * bus/dispatch.c (check_existent_service_activation): accept a no
9892         memory error in a place we didn't before
9893
9894         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9895         in case the first one failed," since the test suite is less
9896         broken now.
9897
9898 2003-04-10  Havoc Pennington  <hp@pobox.com>
9899
9900         * bus/dispatch.c (check_segfault_service_activation): add test
9901         for launching an executable that just crashes.
9902
9903         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9904         don't leave a million cores. We'll see how portable this is.
9905
9906 2003-04-10  Havoc Pennington  <hp@pobox.com>
9907
9908         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9909         the possible parent failures before we fork, so that we don't
9910         fail to create a babysitter after creating the child.
9911
9912         * bus/activation.c (bus_activation_activate_service): kill child
9913         if we don't successfully complete the activation.
9914
9915 2003-04-10  Havoc Pennington  <hp@redhat.com>
9916
9917         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9918         the connection if it's disconnected
9919
9920         * bus/activation.c (bus_activation_service_created): use new
9921         transaction features to roll back removal of pending activation if
9922         we don't successfully create the service after all. Don't remove
9923         pending activation if the function fails.
9924
9925         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9926         (_dbus_list_insert_after_link): new code to facilitate
9927         services.c fixes
9928
9929         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9930         new functionality, so we can preallocate the ability to insert
9931         into a hash table.
9932
9933         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9934         allowing us to put custom hooks in a transaction to be used for
9935         cancelling said transaction
9936
9937         * doc/dbus-specification.sgml: add some discussion of secondary
9938         service owners, and disallow zero-length service names
9939
9940         * bus/services.c (bus_registry_acquire_service): new function,
9941         splits out part of bus_driver_handle_acquire_service() and fixes
9942         a bug where we didn't remove the service doing the acquiring
9943         from the secondary queue if we failed to remove the current owner
9944         from the front of the queue.
9945
9946 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9947
9948         * doc/dbus-specification.sgml:
9949         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9950
9951 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9952
9953         * bus/.cvsignore:
9954         * glib/.cvsignore:
9955         * test/.cvsignore:
9956         Added files to cvsignore
9957
9958         * dbus/dbus-message.h:
9959         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9960         Make get_named() take two out argument and return a boolean.
9961         (dbus_message_iter_get_args_valist):
9962         Update usage of get_named().
9963         (dbus_message_iter_append_byte):
9964         Fix typo
9965         (dbus_message_iter_append_named)
9966         Fix typo
9967         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9968         More tests.
9969
9970 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9971
9972         * dbus/dbus-marshal.[ch]:
9973         Add array_type_pos argument to _dbus_marshal_validate_arg.
9974         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9975
9976         * dbus/dbus-message.[ch]:
9977         Multi-dimensional arrays have full type specification in the
9978         outermost array. Iter code re-arranged to handle this.
9979         Added some more iter tests.
9980
9981         * doc/dbus-specification.sgml:
9982         Add me to authors.
9983         Remove old FIXME.
9984         Update new array encoding description.
9985         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9986
9987         * test/data/invalid-messages/array-with-mixed-types.message:
9988         * test/data/valid-messages/array-of-array-of-uint32.message:
9989         Change to the new array format.
9990
9991         * test/data/invalid-messages/too-short-dict.message:
9992         Fix bug in test.
9993
9994         * test/data/valid-messages/recursive-types.message:
9995         Fix up and extend test.
9996
9997 2003-04-10  Havoc Pennington  <hp@pobox.com>
9998
9999         * bus/dispatch.c: lots of fixes
10000
10001         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10002         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10003         that was crack, broke the test service.
10004
10005         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10006         handling to avoid piling up errors if we get a failure on the
10007         first address.
10008
10009         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10010         pid in assertion failures.
10011
10012         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10013         to some fixed size of file descriptor array. Don't return TRUE
10014         anytime a timeout exists, that led to lots of busy loop silliness
10015         in the tests.
10016
10017 2003-04-09  Havoc Pennington  <hp@redhat.com>
10018
10019         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10020         I'd checked this in earlier but hadn't.
10021
10022 2003-04-09  Havoc Pennington  <hp@redhat.com>
10023
10024         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10025         the activation test (man this is getting old!)
10026
10027 2003-04-09  Havoc Pennington  <hp@redhat.com>
10028
10029         * test/test-utils.c: use dispatch status function to fix this up
10030
10031         * bus/connection.c (connection_watch_callback): don't dispatch
10032         from here
10033         (connection_timeout_callback): don't dispatch from here
10034         (bus_connections_setup_connection): set the dispatch status function
10035         (bus_connection_disconnected): unset it
10036
10037         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10038         used to add a connection to be dispatched
10039         (_dbus_loop_iterate): do the dispatching at the end of each
10040         iteration
10041
10042         * dbus/dbus-connection.c
10043         (dbus_connection_set_dispatch_status_function): new function
10044         allowing us to fix up main loop usage
10045         (_dbus_connection_last_unref): free all the various function
10046         user data
10047         (dbus_connection_dispatch): call the DispatchStatusFunction
10048         whenever this function returns
10049         (dbus_connection_handle_watch): call DispatchStatusFunction
10050         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10051         (reply_handler_timeout): call DispatchStatusFunction
10052         (dbus_connection_flush): call DispatchStatusFunction
10053
10054 2003-04-09  Havoc Pennington  <hp@redhat.com>
10055
10056         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10057         a memory leak
10058
10059         * bus/dispatch.c (check_service_activated): fix bug in test
10060
10061         * dbus/dbus-mainloop.c (check_timeout): fix this up
10062
10063         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10064         verbose output so we can sort out output from different processes,
10065         e.g. in the activation case.
10066
10067 2003-04-08  Colin Walters  <walters@gnu.org>
10068
10069         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10070         the pid file.
10071         (bus_context_new): Set it.
10072         (bus_context_unref): Use it to delete the pid file.
10073
10074 2003-04-08  Havoc Pennington  <hp@redhat.com>
10075
10076         * test/data/invalid-messages/array-with-mixed-types.message:
10077         regression test that fails for the moment
10078
10079         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10080         tests for convenience
10081
10082         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10083         array of nil, it broke things.
10084
10085         * test/data/invalid-messages/array-of-nil.message: regression test
10086
10087         * test/data/valid-messages/array-of-array-of-uint32.message:
10088         happened to write this so added it to suite
10089
10090 2003-04-08  Havoc Pennington  <hp@redhat.com>
10091
10092         * bus/driver.c (bus_driver_handle_acquire_service): init
10093         retval/reply before checking name
10094
10095         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10096         recursion depth argument
10097
10098         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10099         in the public struct for future extension
10100
10101         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10102         typo
10103
10104         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10105         message
10106
10107         * doc/dbus-specification.sgml: fix typo
10108
10109 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10110
10111         Implemented recursive types, named types and new-style iters
10112
10113         * bus/driver.c:
10114         * glib/test-thread-client.c: (thread_func):
10115         * glib/test-thread-server.c: (handle_test_message):
10116         * test/test-service.c: (handle_echo):
10117         Update to new api
10118
10119         * dbus/Makefile.am:
10120         * dbus/dbus-dict.c:
10121         * dbus/dbus-dict.h:
10122         * dbus/dbus.h
10123         Remove DBusDict
10124
10125         * dbus/dbus-internals.c: (_dbus_type_to_string):
10126         Update for new types.
10127
10128         * dbus/dbus-marshal.[ch]:
10129         Implement recursive types and the new marshalling format.
10130         Remove hardcoded dict marshalling.
10131         Marshal named types.
10132
10133         * dbus/dbus-message-builder.c:
10134         Add BYTE_ARRAY.
10135         Remove references to old types
10136
10137         * dbus/dbus-message.[ch]:
10138         New non-refcounted iter API that supports recursive iters.
10139         Use iters for appending, including support for recursive
10140         iters.
10141         Add byte and named type support.
10142         Update everything to new marshalling formats.
10143         Add tests for new API.
10144
10145         * dbus/dbus-protocol.h:
10146         Remove old array types.
10147         Add types: BYTE, ARRAY, DICT, NAMED
10148
10149         * dbus/dbus-string.c:
10150         * dbus/dbus-sysdeps.c:
10151         Make parse_double locale safe.
10152
10153         * dbus/dbus-test-main.c:
10154         Call setlocale.
10155
10156         * dbus/dbus-test.c:
10157         Kill dict test
10158
10159         * doc/dbus-specification.sgml:
10160         Update spec
10161
10162         * test/data/incomplete-messages/missing-body.message:
10163         * test/data/invalid-messages/bad-boolean.message:
10164         * test/data/invalid-messages/bad-boolean-array.message:
10165         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10166         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10167         * test/data/invalid-messages/too-short-dict.message:
10168         * test/data/valid-messages/dict-simple.message:
10169         * test/data/valid-messages/dict.message:
10170         * test/data/valid-messages/emptiness.message:
10171         * test/data/valid-messages/lots-of-arguments.message:
10172         * test/data/valid-messages/no-padding.message:
10173         * test/data/valid-messages/recursive-types.message:
10174         Add missing NAME fields
10175         Fix up dicts & arrays
10176
10177         * test/data/invalid-messages/dict-with-nil-value.message:
10178         Removed, this is not invalid anymore.
10179
10180         * test/data/valid-messages/recursive-types.message:
10181         Add new test for deeply recursive types.
10182
10183 2003-04-07  Havoc Pennington  <hp@pobox.com>
10184
10185         * bus/driver.c (bus_driver_handle_acquire_service): return an
10186         error if you try to acquire a service that starts with ':'
10187
10188 2003-04-07  Havoc Pennington  <hp@redhat.com>
10189
10190         * doc/dbus-specification.sgml: require that base service names
10191         start with ':' and that the base service is created/deleted
10192         as first and last things a connection does on the bus
10193
10194         * bus/dispatch.c (check_existent_service_activation): lots more
10195         work on the activation test; it doesn't fully pass yet...
10196
10197         * test/test-service.c (main): fix so we don't memleak the
10198         connection to the message bus
10199         (filter_func): accept a message asking us to exit
10200
10201 2003-04-06  Havoc Pennington  <hp@pobox.com>
10202
10203         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10204         from Colin Walters
10205
10206         * configure.in: fixes to Qt detection from Colin Walters
10207
10208         * doc/Makefile.am: Only remove generated docbook dirs if they
10209         exist, from Colin Walters
10210
10211         * dbus/dbus-bus.c: change how we set well-known connections to
10212         NULL, so that it works if a single connection is stored in
10213         two well-known array slots.
10214
10215         * test/Makefile.am: remove a lot of stuff that isn't immediately
10216         useful, it's in CVS history if we want it.
10217
10218         * test/test-service.c: use dbus-mainloop instead of that
10219         watch.[hc] crack
10220
10221 2003-04-06  Havoc Pennington  <hp@pobox.com>
10222
10223         * dbus/Makefile.am: split lists of sources into stuff that goes in
10224         the library, util functions that go in the lib and are also used
10225         elsewhere, and util functions that are used in tests/daemon but
10226         don't go in the lib.
10227
10228         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10229         here so it can be used in test binaries also
10230
10231 2003-04-06  Havoc Pennington  <hp@pobox.com>
10232
10233         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10234         here in the parent process, so we can return an error if it
10235         fails. Also, move some of the code into the child so the parent
10236         is less hosed if we fail midway through.
10237
10238         * bus/bus.c (bus_context_new): move pidfile detection further up
10239         in the function, before we start overwriting sockets and such.
10240
10241         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10242
10243         * configure.in: add --with-system-pid-file and --with-system-socket
10244
10245 2003-04-06  Colin Walters  <walters@verbum.org>
10246
10247         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10248
10249         * bus/system.conf.in: Declare a pidfile.
10250
10251         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10252         create one (if appropriate).
10253
10254         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10255         (struct BusConfigParser) [pidfile]: New.
10256         (element_type_to_name, merge_included, start_busconfig_child)
10257         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10258         (bus_config_parser_unref): Free it.
10259         (bus_config_parser_get_pidfile): New function.
10260
10261         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10262
10263         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10264
10265         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10266
10267         * dbus/dbus-sysdeps.h: Prototype it.
10268
10269 2003-04-06  Havoc Pennington  <hp@pobox.com>
10270
10271         * bus/bus.c (bus_context_new): print the address in here, rather
10272         than in main(), because we need to do it before forking the daemon
10273
10274         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10275         on the service nonexistent error
10276
10277         * bus/driver.c (bus_driver_handle_acquire_service): set the
10278         sender on the AcquireService reply
10279
10280         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10281         server also listen on a UNIX socket so services can connect to it.
10282
10283 2003-04-06  Havoc Pennington  <hp@pobox.com>
10284
10285         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10286         so it detects deadlocks and also we actually init threads when
10287         debugging.
10288
10289 2003-04-06  Havoc Pennington  <hp@pobox.com>
10290
10291         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10292         save the domain socket name, and unlink it when we disconnect the
10293         server. Means that at least when we exit normally, we won't leave
10294         a bunch of junk in /tmp
10295
10296         * dbus/dbus-transport-unix.c
10297         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10298         memory management). (I was making a real change here but then
10299         didn't)
10300
10301 2003-04-06  Havoc Pennington  <hp@pobox.com>
10302
10303         * bus/bus.c (bus_context_new): fix wrong handling of
10304         server_data_slot_unref() in the error case.
10305
10306         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10307         "(condition) != 0" to _dbus_real_assert so that
10308         "_dbus_assert (pointer)" doesn't cause a warning
10309
10310         * bus/main.c (main): accept --print-address option to print out
10311         the message bus address
10312
10313         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10314
10315         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10316         "tmpdir" option to unix: address on client side
10317
10318         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10319         to unix: address
10320
10321         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10322         we can use to create sockets in the test suite.
10323
10324         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10325         cleanly. To be used for testing.
10326
10327         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10328
10329         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10330
10331         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10332         handle trying to call this when there's no servers active
10333
10334 2003-04-05  Havoc Pennington  <hp@pobox.com>
10335
10336         * NEWS: update
10337
10338         * configure.in: 0.8
10339
10340 2003-04-05  Havoc Pennington  <hp@pobox.com>
10341
10342         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10343         crash on startup. Need to get "try starting the daemon"
10344         in the test suite I guess. ;-)
10345
10346         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10347         tracked the number of open connections; it's better done in
10348         application-specific code as you want it to span all servers etc.
10349
10350 2003-04-05  Havoc Pennington  <hp@pobox.com>
10351
10352         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10353         patch from Colin Walters
10354
10355 2003-04-05  Havoc Pennington  <hp@pobox.com>
10356
10357         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10358         reality; in fact multiple mechanisms are allowed.
10359
10360         * dbus/dbus-internals.c (_dbus_real_assert)
10361         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10362         _dbus_assert_not_reached() into functions, so that they don't show
10363         up in basic block counts for test coverage, and don't use up as
10364         much disk space. Does mean slower execution speed though, so
10365         assumes --disable-asserts is the normal production case.
10366
10367 2003-04-05  Havoc Pennington  <hp@pobox.com>
10368
10369         * test/Makefile.am (dist-hook): also dist *.in files
10370
10371         * NEWS: update
10372
10373         * configure.in: 0.7
10374
10375 2003-04-05  Havoc Pennington  <hp@pobox.com>
10376
10377         * dbus/dbus-string.c: docs warning
10378
10379         * dbus/dbus-spawn.c: missing docs
10380
10381         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10382
10383 2003-04-05  Havoc Pennington  <hp@pobox.com>
10384
10385         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10386         magic from GLib
10387
10388         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10389         to -1 once we've reaped the babysitter
10390         (_dbus_babysitter_handle_watch): do as much work as we can, not
10391         just one go of it
10392
10393         * bus/activation.c: add code using DBusBabysitter so that we
10394         handle it when a service fails to start up properly.
10395         (bus_activation_service_created): don't remove the activation
10396         entries as we go, just let them get removed when we free the pending
10397         activation. Unref reply messages after sending them.
10398
10399 2003-04-05  Havoc Pennington  <hp@pobox.com>
10400
10401         * test/decode-gcov.c (main): print per-directory stats in the report
10402
10403         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10404
10405 2003-04-05  Havoc Pennington  <hp@pobox.com>
10406
10407         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10408
10409         * test/decode-gcov.c: hack up a little program to suck data
10410         out of gcov files. Yes this is sort of silly.
10411
10412         * configure.in: define something in config.h and do an
10413         AM_CONDITIONAL when gcov is enabled
10414
10415 2003-04-04  Havoc Pennington  <hp@redhat.com>
10416
10417         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10418         return a "babysitter" object that is used to monitor the status of
10419         the spawned process and reap it when required.
10420
10421         * test/test-segfault.c, test/test-exit.c,
10422         test/test-sleep-forever.c: binaries that do various lame things,
10423         used in the test suite.
10424
10425         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10426
10427 2003-04-03  Havoc Pennington  <hp@pobox.com>
10428
10429         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10430         in preparation for modifying it, dbus-sysdeps is getting
10431         a bit unmanageable.
10432
10433 2003-04-03  Havoc Pennington  <hp@redhat.com>
10434
10435         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10436         have multiple ones
10437
10438         * bus/*.[hc]: adapt to mainloop change
10439
10440 2003-04-03  Havoc Pennington  <hp@redhat.com>
10441
10442         * bus/activation.c (load_directory): fix up memleaks
10443         (bus_activation_entry_free): free the entry
10444
10445         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10446         we get one from the message bus; fix memleaks.
10447
10448         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10449
10450 2003-04-03  Havoc Pennington  <hp@pobox.com>
10451
10452         * bus/config-parser.c (bus_config_parser_unref): free
10453         list of mechanisms, bug discovered by test suite enhancements
10454         (putting system.conf and session.conf into suite)
10455
10456         * test/Makefile.am, test/test-service.c: add placeholder for a
10457         test service that we'll activate as part of test suite. Doesn't
10458         do anything yet.
10459
10460         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10461         setting NULL value, and use system malloc not dbus_malloc()
10462         when we have unavoidable memleakage.
10463
10464         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10465         didn't work, and support DBUS_BUS_ACTIVATION.
10466
10467         * bus/activation.c (child_setup): pass our well-known bus type to
10468         the child
10469
10470         * bus/config-parser.c: support <type> to specify well-known type
10471
10472         * doc/dbus-specification.sgml: document the env variables to
10473         locate well-known buses and find service activator
10474
10475 2003-04-02  Havoc Pennington  <hp@redhat.com>
10476
10477         * test/Makefile.am (all-local): add a rule to copy tests to
10478         builddir, so we can have generated tests. Use this to remove the
10479         silly hack for testing system.conf and session.conf. Will use this
10480         shortly to generate .service files pointing to test binaries.
10481
10482 2003-04-02  Havoc Pennington  <hp@redhat.com>
10483
10484         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10485         current alloc and needed new length, not max of the doubled
10486         allocation and needed new length. Also, when building tests,
10487         don't do the double-allocation stuff, just realloc every time.
10488
10489 2003-04-02  Havoc Pennington  <hp@redhat.com>
10490
10491         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10492         in error messages
10493         (_dbus_string_get_dirname): new
10494         (_dbus_sysdeps_test): new
10495         (_dbus_directory_open): include dirnames in error messages
10496
10497         * bus/config-parser.c: interpret <include> and <includedir> and
10498         <servicedir> relative to config file location if the given
10499         filename is not absolute.
10500
10501         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10502
10503 2003-04-02  Havoc Pennington  <hp@redhat.com>
10504
10505         * bus/connection.c (bus_transaction_send_error_reply): set sender
10506         service for the error, and unref the reply on success
10507
10508         * bus/activation.c: convert to use BusTransaction so OOM can be
10509         handled correctly
10510         (bus_activation_service_created): set sender of the message
10511
10512 2003-04-01  Havoc Pennington  <hp@redhat.com>
10513
10514         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10515         <includedir> (at least mostly)
10516
10517         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10518         first, then the user ID
10519
10520 2003-04-01  Havoc Pennington  <hp@pobox.com>
10521
10522         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10523         function
10524
10525         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10526
10527         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10528
10529         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10530         socket 0777, and unlink any existing socket.
10531
10532         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10533         the configuration file so specifies; set up auth mechanism
10534         restrictions
10535
10536         * bus/config-parser.c (bus_config_parser_content): add support
10537         for <fork> option and fill in code for <auth>
10538
10539         * bus/system.conf.in: add <fork/> to default configuration,
10540         and limit auth mechanisms to EXTERNAL
10541
10542         * doc/config-file.txt (Elements): add <fork>
10543
10544         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10545         (_dbus_change_identity): new function
10546
10547 2003-03-31  Havoc Pennington  <hp@redhat.com>
10548
10549         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10550         (_dbus_listen_unix_socket): fix off-by-one error in null
10551         termination spotted by Nalin
10552
10553 2003-03-31  Havoc Pennington  <hp@redhat.com>
10554
10555         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10556         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10557         having a real home directory available.
10558
10559 2003-03-31  Havoc Pennington  <hp@redhat.com>
10560
10561         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10562
10563         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10564
10565         * configure.in: add support for specifying a style of init script
10566         to install
10567
10568 2003-03-31  Havoc Pennington  <hp@redhat.com>
10569
10570         Fix some annoying DBusString API and fix all affected code.
10571
10572         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10573         max_length argument
10574         (_dbus_string_get_data): change to return string instead of using
10575         an out param
10576         (_dbus_string_get_const_data): ditto
10577         (_dbus_string_get_data_len): ditto
10578         (_dbus_string_get_const_data_len): ditto
10579
10580 2003-03-31  Havoc Pennington  <hp@redhat.com>
10581
10582         * bus/main.c (main): fix up the command line arguments to be nicer
10583
10584 2003-03-31  Havoc Pennington  <hp@redhat.com>
10585
10586         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10587         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10588         final location that lands in the config file
10589
10590         * bus/config-loader-expat.c (bus_config_load): fix type of
10591         XML_Parser variable
10592
10593         * doc/TODO: remove TODO item for dbus_bus_get()
10594
10595         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10596
10597 2003-03-31  Havoc Pennington  <hp@pobox.com>
10598
10599         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10600         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10601         argument since they are always client side
10602
10603         * dbus/dbus-server.c (dbus_server_get_address): new function
10604
10605         * bus/main.c (main): take the configuration file as an argument.
10606
10607         * test/data/valid-config-files/debug-allow-all.conf: new file to
10608         use with dispatch.c tests for example
10609
10610         * bus/test-main.c (main): require test data dir
10611
10612         * bus/bus.c (bus_context_new): change this to take a
10613         configuration file name as argument
10614
10615         * doc/config-file.txt (Elements): add <servicedir>
10616
10617         * bus/system.conf, bus/session.conf: new files
10618
10619         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10620         well-known socket if none set
10621
10622         * configure.in: create system.conf and session.conf
10623
10624 2003-03-30  Havoc Pennington  <hp@pobox.com>
10625
10626         * bus/config-parser.c: hacking
10627
10628         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10629         to shut down, since it could cause weirdness with the DBusList
10630         lock
10631
10632         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10633         link-oriented stack routines
10634         (alloc_link): free the mempool if the first alloc from it fails
10635
10636         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10637
10638         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10639         from GLib
10640         (_dbus_string_skip_white): new
10641
10642         * doc/config-file.txt (Elements): add <includedir>
10643
10644 2003-03-28  Havoc Pennington  <hp@pobox.com>
10645
10646         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10647         (_dbus_string_copy_data): new functions
10648
10649 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10650
10651         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10652         * dbus/dbus-bus.h:
10653         Add dbus_bus_get.
10654
10655         * dbus/dbus-memory.c:
10656         Fix a doc comment.
10657
10658 2003-03-28  Havoc Pennington  <hp@pobox.com>
10659
10660         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10661         I think it may have just been superstition. Not sure.
10662
10663         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10664         failures that were not being handled.
10665
10666         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10667
10668         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10669         row that will fail on out-of-memory.
10670
10671         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10672         function for testing out-of-memory handling.
10673
10674         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10675         allocation functions, they do map exactly to the expat ones.
10676
10677 2003-03-27  Havoc Pennington  <hp@redhat.com>
10678
10679         * bus/config-loader-libxml.c (bus_config_load): add another error
10680         check
10681
10682 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10683
10684         * doc/TODO:
10685         Add note about automatic service activation.
10686
10687         * doc/dbus-specification.sgml:
10688         Rename the specification and clarify a few things.
10689
10690 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10691
10692         * Doxyfile.in:
10693         * dbus/dbus-address.c:
10694         * dbus/dbus-dict.c:
10695         * dbus/dbus-marshal.c:
10696         * dbus/dbus-server-debug-pipe.c:
10697         * dbus/dbus-transport-unix.c:
10698         Fix documentation warnings.
10699
10700 2003-03-26  Havoc Pennington  <hp@pobox.com>
10701
10702         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10703         after every test so it's quick and easy to see which leaked, and
10704         so we test multiple dbus_shutdown() calls
10705
10706         * configure.in: change configure.in XML stuff to also support
10707         expat
10708
10709         * config-loader-libxml.c: some hacking
10710
10711         * config-loader-expat.c: some hacking
10712
10713         * config-parser.c: some hacking, plus tests
10714
10715 2003-03-25  Havoc Pennington  <hp@redhat.com>
10716
10717         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10718
10719         * configure.in: add --with-xml option to specify XML library,
10720         right now only libxml is supported.
10721
10722         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10723         nonworking code between home and work, still just stubs
10724
10725 2003-03-24  Havoc Pennington  <hp@redhat.com>
10726
10727         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10728         file
10729
10730         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10731         NULL argument for "message" if the error is a well-known one,
10732         fill in a generic message in this case.
10733
10734         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10735         favor of DBusError
10736
10737         * bus/test.c (bus_test_flush_bus): add
10738
10739         * bus/policy.c (bus_policy_test): test code stub
10740
10741 2003-03-24  Havoc Pennington  <hp@pobox.com>
10742
10743         * bus/connection.c (bus_connections_setup_connection): set up
10744         the "can this user connect" function, but it always returns
10745         TRUE until we have a config file parser so we can have a config
10746         file that allows connections.
10747
10748 2003-03-23  Havoc Pennington  <hp@pobox.com>
10749
10750         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10751         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10752         the mutex, so we can check for proper memory management
10753         and OOM handling.
10754
10755         * dbus/dbus-dataslot.c: remove the mutex from
10756         DBusDataSlotAllocator and lock it manually when using it,
10757         to simplify fitting it into the global slots framework.
10758
10759         * dbus/dbus-threads.c (init_static_locks): rework how we're
10760         handling global locks so they are easily shut down.
10761
10762         * bus/policy.c (bus_policy_append_rule): fix
10763
10764         * bus/test-main.c (main): check for memleaks
10765
10766         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10767         test suite check for memleaks
10768
10769         * dbus/dbus-memory.c: add support in test mode for tracking
10770         number of outstanding blocks
10771
10772 2003-03-23  Havoc Pennington  <hp@pobox.com>
10773
10774         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10775         policies code
10776
10777         * dbus/dbus-hash.h: add ULONG hash keys
10778
10779         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10780         (_dbus_get_group_id): new function
10781
10782 2003-03-20  Havoc Pennington  <hp@redhat.com>
10783
10784         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10785         new function
10786         (dbus_connection_get_unix_user): new function
10787
10788 2003-03-20  Havoc Pennington  <hp@pobox.com>
10789
10790         * bus/connection.c (bus_connection_send_oom_error): assert that
10791         message has a sender
10792         (connection_execute_transaction): ditto
10793         (bus_connection_preallocate_oom_error): fix to set the sender, and
10794         set recipient to the destination service, not the bus driver
10795
10796         * bus/policy.c: hacking
10797
10798         * dbus/dbus-message.c (dbus_message_service_is): new function
10799         (dbus_message_sender_is): new
10800
10801 2003-03-19  Havoc Pennington  <hp@redhat.com>
10802
10803         * bus/policy.c: start sketching code for policy restrictions on
10804         what connections can do.
10805
10806 2003-03-18  Havoc Pennington  <hp@redhat.com>
10807
10808         * doc/TODO: some notes on high-level todo items. Little nitpick
10809         stuff is all in @todo, so no need to add it here.
10810
10811         * doc/config-file.txt: some notes on how config file might look
10812
10813 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10814
10815         * configure.in: 0.6
10816
10817         * NEWS: Update.
10818
10819 2003-03-17  Havoc Pennington  <hp@redhat.com>
10820
10821         * dbus/dbus-internals.h: add gcc attributes so that
10822         our printf-style functions warn on bad arguments to
10823         format
10824
10825         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10826         format bug
10827
10828         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10829         printf format bug
10830
10831 2003-03-17  Havoc Pennington  <hp@redhat.com>
10832
10833         * bus/test-main.c (main): make it print something as it runs
10834         so make check doesn't look stuck
10835
10836         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10837         from CVS, now obsolete
10838
10839 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10840
10841         * bus/dispatch.c: (bus_dispatch):
10842         Refetch the service name since it may have been reallocated
10843         when dbus_message_set_sender was called.
10844
10845         * dbus/dbus-sysdeps.c: (_dbus_accept):
10846         Add address and address length variables and use them to stop
10847         valgrind from complaining.
10848
10849 2003-03-17  Havoc Pennington  <hp@pobox.com>
10850
10851         All tests pass, no memleaks, no valgrind complaints.
10852
10853         * bus/test.c: refcount handler_slot
10854
10855         * bus/connection.c (bus_connections_new): refcount
10856         connection_data_slot
10857
10858         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10859         bytes so that auth scripts pass.
10860
10861         * bus/dispatch.c: init message_handler_slot so it gets allocated
10862         properly
10863
10864         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10865
10866         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10867         dealloc server_pipe_hash when no longer used for benefit of
10868         leak checking
10869
10870         * dbus/dbus-auth.c (process_command): memleak fix
10871
10872         * bus/dispatch.c (check_hello_message): memleak fix
10873
10874 2003-03-16  Havoc Pennington  <hp@pobox.com>
10875
10876         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10877
10878 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10879
10880         * bus/activation.c (bus_activation_activate_service): Append
10881         the pending activation entry to the list of pending activations.
10882
10883 2003-03-16  Havoc Pennington  <hp@pobox.com>
10884
10885         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10886         connections
10887
10888         * dbus/dbus-address.c (create_entry): fix OOM handling when
10889         failing to alloc entry->method
10890
10891 2003-03-16  Havoc Pennington  <hp@pobox.com>
10892
10893         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10894         the watch
10895
10896         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10897         add some missing dbus_set_result
10898
10899         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10900         alloc the DBusMessageHandler
10901
10902         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10903         the transport here, since we call this from the finalizer; it
10904         resulted in a double-finalize.
10905
10906         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10907         where we tried to use transport->connection that was NULL,
10908         happened when transport was disconnected early on due to OOM
10909
10910         * bus/*.c: adapt to handle OOM for watches/timeouts
10911
10912         * dbus/dbus-transport-unix.c: port to handle OOM during
10913         watch handling
10914
10915         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10916         reference to unused bytes instead of a copy
10917
10918         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10919         out of memory
10920
10921         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10922         FALSE on OOM
10923
10924         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10925         of memory
10926
10927 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10928
10929         * doc/dbus-specification.sgml:
10930         Document reply message for ActivateService.
10931
10932 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10933
10934         * bus/activation.c: (bus_pending_activation_entry_free),
10935         (bus_pending_activation_free), (bus_activation_new),
10936         (bus_activation_unref), (bus_activation_service_created),
10937         (bus_activation_activate_service):
10938         * bus/activation.h:
10939         * bus/bus.c: (bus_context_new):
10940         * bus/desktop-file.c: (new_section):
10941         * bus/driver.c: (bus_driver_send_service_deleted),
10942         (bus_driver_handle_activate_service):
10943         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10944         * bus/services.h:
10945         * dbus/dbus-connection.c:
10946         (dbus_connection_send_with_reply_and_block):
10947         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10948         * dbus/dbus-protocol.h:
10949         Make activation work better. Now pending activations will be queued
10950         and the daemon won't try to activate services that are already registered.
10951
10952 2003-03-16  Havoc Pennington  <hp@pobox.com>
10953
10954         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10955         connection data
10956
10957         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10958         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10959
10960 2003-03-16  Havoc Pennington  <hp@pobox.com>
10961
10962         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10963         this. always run the test suite before commit...
10964
10965         * bus/*: adapt to DBusConnection API changes
10966
10967         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10968         requires renaming stuff to avoid dbus_connection_dispatch name
10969         conflict.
10970
10971         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10972         function
10973
10974         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10975         separate from _dbus_message_loader_return_buffer()
10976
10977         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10978         this, because it's now always broken to use; the number of
10979         messages in queue vs. the number still buffered by the message
10980         loader is undefined/meaningless. Should use
10981         dbus_connection_get_dispatch_state().
10982         (dbus_connection_dispatch): rename from
10983         dbus_connection_dispatch_message
10984
10985 2003-03-16  Havoc Pennington  <hp@pobox.com>
10986
10987         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10988         implementation
10989
10990 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10991
10992         * dbus/dbus-connection.c:
10993         (dbus_connection_send_with_reply_and_block):
10994         Decrease connection->n_incoming when removing an entry
10995         from the list.
10996         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10997         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10998         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10999         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11000         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11001         (dbus_dict_get_byte_array):
11002         Handle NULL arrays and strings. Also add support for byte arrays.
11003
11004         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11005         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11006         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11007         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11008         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11009         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11010         * dbus/dbus-marshal.h:
11011         Add support for marshalling and demarshalling empty arrays and strings.
11012
11013         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11014         (dbus_message_append_string_array),
11015         (dbus_message_iter_get_boolean),
11016         (dbus_message_iter_get_boolean_array),
11017         (dbus_message_iter_get_int32_array),
11018         (dbus_message_iter_get_uint32_array),
11019         (dbus_message_iter_get_double_array),
11020         (dbus_message_iter_get_byte_array),
11021         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11022         (check_message_handling):
11023         Add support for getting empty arrays and dicts.
11024
11025         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11026         Don't do any validation at all for now, that's better than just checking
11027         for ASCII.
11028
11029         * test/data/valid-messages/emptiness.message:
11030         New test message with lots of empty arrays.
11031
11032 2003-03-16  Havoc Pennington  <hp@pobox.com>
11033
11034         * dbus/dbus-connection.c
11035         (_dbus_connection_queue_received_message_link): new function that
11036         can't fail due to OOM
11037
11038         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11039         new function pops a message together with a list link
11040         containing it.
11041
11042         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11043         message queuing functions to avoid needing to alloc memory
11044
11045 2003-03-16  Havoc Pennington  <hp@pobox.com>
11046
11047         Oops - test code was only testing failure of around 30 of the
11048         mallocs in the test path, but it turns out there are 500+
11049         mallocs. I believe this was due to misguided linking setup such
11050         that there was one copy of dbus_malloc etc. in the daemon and one
11051         in the shared lib, and only daemon mallocs were tested. In any
11052         case, the test case now tests all 500+ mallocs, and doesn't pass
11053         yet, though there are lots of fixes in this patch.
11054
11055         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11056         this so that it doesn't need to allocate memory, since it
11057         has no way of indicating failure due to OOM (and would be
11058         annoying if it did).
11059
11060         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11061
11062         * bus/Makefile.am: rearrange to create two self-contained
11063         libraries, to avoid having libraries with overlapping symbols.
11064         that was resulting in weirdness, e.g. I'm pretty sure there
11065         were two copies of global static variables.
11066
11067         * dbus/dbus-internals.c: move the malloc debug stuff to
11068         dbus-memory.c
11069
11070         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11071         empty.
11072
11073         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11074
11075         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11076         on failure.
11077
11078         * bus/dispatch.c (bus_dispatch_add_connection): free
11079         message_handler_slot when no longer using it, so
11080         memory leak checkers are happy for the test suite.
11081
11082         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11083
11084         * bus/bus.c (new_connection_callback): disconnect in here if
11085         bus_connections_setup_connection fails.
11086
11087         * bus/connection.c (bus_connections_unref): fix to free the
11088         connections
11089         (bus_connections_setup_connection): if this fails, don't
11090         disconnect the connection, just be sure there are no side
11091         effects.
11092
11093         * dbus/dbus-string.c (undo_alignment): unbreak this
11094
11095         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11096         leaking
11097         (_dbus_auth_new): fix the order in which we free strings
11098         on OOM failure
11099
11100         * bus/connection.c (bus_connection_disconnected): fix to
11101         not send ServiceDeleted multiple times in case of memory
11102         allocation failure
11103
11104         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11105         get the base service name
11106         (dbus_bus_register_client): don't return base service name,
11107         instead store it on the DBusConnection and have an accessor
11108         function for it.
11109         (dbus_bus_register_client): rename dbus_bus_register()
11110
11111         * bus/dispatch.c (check_hello_message): verify that other
11112         connections on the bus also got the correct results, not
11113         just the one sending hello
11114
11115 2003-03-15  Havoc Pennington  <hp@pobox.com>
11116
11117         Make it pass the Hello handling test including all OOM codepaths.
11118         Now to do other messages...
11119
11120         * bus/services.c (bus_service_remove_owner): fix crash when
11121         removing owner from an empty list of owners
11122         (bus_registry_ensure): don't leave service in the list of
11123         a connection's owned services if we fail to put the service
11124         in the hash table.
11125
11126         * bus/connection.c (bus_connection_preallocate_oom_error): set
11127         error flag on the OOM error.
11128
11129         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11130         handle _dbus_transport_set_connection failure
11131
11132         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11133         to create watches up front and simply enable/disable them as
11134         needed.
11135         (unix_connection_set): this can now fail on OOM
11136
11137         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11138         of enabling/disabling a watch or timeout.
11139
11140         * bus/loop.c (bus_loop_iterate): don't touch disabled
11141         watches/timeouts
11142
11143         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11144
11145 2003-03-15  Havoc Pennington  <hp@pobox.com>
11146
11147         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11148         write useful test code, after all that futzing around ;-)
11149
11150         Test does not yet pass because we can't handle OOM in
11151         _dbus_transport_messages_pending (basically,
11152         dbus_connection_preallocate_send() does not prealloc the write
11153         watch). To fix this, I think we need to add new stuff to
11154         set_watch_functions, namely a SetEnabled function so we can alloc
11155         the watch earlier, then enable it later.
11156
11157         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11158         dbus-memory.c to the convenience lib
11159
11160         * bus/test.c: rename some static functions to keep them clearly
11161         distinct from stuff in connection.c. Handle client disconnection.
11162
11163 2003-03-14  Havoc Pennington  <hp@pobox.com>
11164
11165         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11166         transport, tests more of the real codepath. Set up clients
11167         with bus_setup_debug_client.
11168
11169         * bus/test.c (bus_setup_debug_client): function to set up debug
11170         "clients" on the main loop
11171
11172         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11173         support
11174
11175         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11176         server type
11177
11178         * dbus/dbus-server-debug.c: support a debug server based on pipes
11179
11180         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11181         (_dbus_close): new function
11182
11183         * configure.in: check for socketpair
11184
11185 2003-03-14  Havoc Pennington  <hp@redhat.com>
11186
11187         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11188         cheesy hack
11189
11190         * dbus/dbus-transport-debug.c: rework this a good bit to be
11191         less complicated. hopefully still works.
11192
11193         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11194         manually
11195
11196         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11197         after running it
11198
11199         * dbus/dbus-message.c (dbus_message_copy): rename from
11200         dbus_message_new_from_message, fix it up to copy
11201         all the message fields, add test case
11202
11203         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11204         not quite passing yet
11205
11206 2003-03-14  Havoc Pennington  <hp@pobox.com>
11207
11208         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11209         until no work remains" in test code. (the large diff here
11210         is just code movement, no actual changes)
11211
11212         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11213         1, no point waiting around for test code.
11214         (_dbus_server_debug_accept_transport): unref the timeout
11215         after adding it (right?)
11216
11217         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11218
11219 2003-03-13  Havoc Pennington  <hp@redhat.com>
11220
11221         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11222         out of memory
11223
11224         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11225         of memory
11226
11227         * dbus/dbus-connection.h: Make AddWatchFunction and
11228         AddTimeoutFunction return a bool so they can fail on out-of-memory
11229
11230         * bus/bus.c (bus_context_new): set up timeout handlers
11231
11232         * bus/connection.c (bus_connections_setup_connection): set up
11233         timeout handlers
11234
11235         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11236         can fail
11237
11238         * bus/bus.c (bus_context_new): adapt to changes
11239
11240         * bus/connection.c: adapt to changes
11241
11242         * test/watch.c: adapt to DBusWatch changes
11243
11244         * bus/dispatch.c (bus_dispatch_test): started adding this but
11245         didn't finish
11246
11247 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11248
11249         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11250
11251 2003-03-13  Havoc Pennington  <hp@pobox.com>
11252
11253         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11254         set up a test framework as for the library
11255
11256 2003-03-12  Havoc Pennington  <hp@pobox.com>
11257
11258         Throughout: purge global variables, introduce BusActivation,
11259         BusConnections, BusRegistry, etc. objects instead.
11260
11261         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11262         message bus object
11263
11264         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11265         going to redo this a bit differently I think
11266
11267 2003-03-12  Havoc Pennington  <hp@redhat.com>
11268
11269         Mega-patch that gets the message bus daemon initially handling
11270         out-of-memory. Work still needed. Also lots of random
11271         moving stuff to DBusError instead of ResultCode.
11272
11273         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11274
11275         * dbus/dbus-connection.c
11276         (dbus_connection_send_with_reply_and_block): use DBusError
11277
11278         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11279         DBusResultCode
11280
11281         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11282         code here, as the only failure possible is OOM.
11283
11284         * bus/connection.c (bus_connection_disconnect):
11285         rename bus_connection_disconnected as it's a notification only
11286
11287         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11288         "name" on get_args failure, should be done by get_args;
11289         don't disconnect client for bad args, just return an error.
11290         (bus_driver_handle_service_exists): ditto
11291
11292         * bus/services.c (bus_services_list): NULL-terminate returned array
11293
11294         * bus/driver.c (bus_driver_send_service_lost)
11295         (bus_driver_send_service_acquired): send messages from driver to a
11296         specific client to the client's unique name, not to the broadcast
11297         service.
11298
11299         * dbus/dbus-message.c (decode_header_data): reject messages that
11300         contain no name field
11301         (_dbus_message_get_client_serial): rename to
11302         dbus_message_get_serial and make public
11303         (_dbus_message_set_serial): rename from set_client_serial
11304         (_dbus_message_set_reply_serial): make public
11305         (_dbus_message_get_reply_serial): make public
11306
11307         * bus/connection.c (bus_connection_foreach): allow stopping
11308         iteration by returning FALSE from foreach function.
11309
11310         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11311         (dbus_connection_free_preallocated_send)
11312         (dbus_connection_preallocate_send): new API for sending a message
11313         without possibility of malloc failure.
11314         (dbus_connection_send_message): rename to just
11315         dbus_connection_send (and same for whole function family)
11316
11317         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11318
11319         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11320
11321         * bus/activation.c: handle/return errors
11322
11323         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11324
11325         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11326         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11327         (_dbus_result_from_errno): move to this file
11328
11329 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11330
11331         * dbus/dbus-marshal.c:
11332         (_dbus_marshal_set_string):
11333         Take a length argument so we can marshal the correct string
11334         length.
11335
11336         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11337         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11338         (_dbus_marshal_test):
11339         * dbus/dbus-marshal.h:
11340         Add support for marshalling and demarshalling dicts.
11341
11342         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11343         Add support for TYPE DICT.
11344
11345         * dbus/dbus-message.c: (set_string_field):
11346         Adjust header padding.
11347
11348         (dbus_message_append_args_valist), (dbus_message_append_dict),
11349         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11350         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11351         (check_message_handling), (check_have_valid_message):
11352         * dbus/dbus-message.h:
11353         Add functions for setting and getting dicts.
11354
11355         * dbus/dbus-protocol.h:
11356         Add DBUS_TYPE_DICT.
11357
11358         * dbus/dbus.h:
11359         Add dbus-dict.h
11360
11361         * doc/dbus-specification.sgml:
11362         Add information about how dicts are marshalled.
11363
11364         * test/data/invalid-messages/dict-with-nil-value.message:
11365         * test/data/invalid-messages/too-short-dict.message:
11366         * test/data/valid-messages/dict-simple.message:
11367         * test/data/valid-messages/dict.message:
11368         Add sample messages containing dicts.
11369
11370 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11371
11372         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11373
11374 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11375
11376         * dbus/Makefile.am:
11377         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11378         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11379         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11380         (dbus_dict_set_double), (dbus_dict_set_string),
11381         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11382         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11383         (dbus_dict_set_string_array), (_dbus_dict_test):
11384         * dbus/dbus-dict.h:
11385         Fix according to comments from Havoc.
11386
11387 2003-03-06  Michael Meeks  <michael@server.home>
11388
11389         * configure.in: if we don't have kde-config, disable have_qt.
11390
11391 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11392
11393         * dbus/Makefile.am:
11394         Add dbus-dict.[ch]
11395
11396         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11397         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11398         (dbus_dict_remove), (dbus_dict_get_value_type),
11399         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11400         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11401         (dbus_dict_put_double), (dbus_dict_put_string),
11402         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11403         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11404         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11405         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11406         (dbus_dict_get_double), (dbus_dict_get_string),
11407         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11408         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11409         (dbus_dict_get_string_array), (_dbus_dict_test):
11410         * dbus/dbus-dict.h:
11411         Add DBusDict implementation
11412
11413         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11414         * dbus/dbus-test.h:
11415         Add _dbus_dict_test
11416
11417 2003-03-04  Havoc Pennington  <hp@pobox.com>
11418
11419         * test/data/auth/*: adapt to changes
11420
11421         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11422         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11423         userid
11424
11425         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11426         more stuff from being in a context name, to make the protocol
11427         simpler to deal with
11428
11429         * dbus/dbus-errors.c (dbus_error_has_name): new function
11430         (dbus_error_is_set): new function
11431
11432         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11433         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11434
11435         * dbus/dbus-connection.c (dbus_connection_flush): also read
11436         messages during a flush operation
11437
11438         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11439
11440 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11441
11442         * configure.in: Check for gethostbyname on Solaris.
11443
11444         * dbus/dbus-transport.c: (_dbus_transport_open):
11445         Remove duplicate "tcp" entry.
11446
11447         * doc/dbus-specification.sgml:
11448         Clarify some things.
11449
11450 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11451
11452         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11453         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11454         (_dbus_keyring_test):
11455         * dbus/dbus-md5.c: (_dbus_md5_compute):
11456         * dbus/dbus-sha.c: (_dbus_sha_compute):
11457         Plug memory leaks.
11458
11459 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11460
11461         * README: Add some things.
11462
11463 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11464
11465         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11466         after case DBUS_TYPE_BOOELAN.
11467
11468 2003-03-02  Havoc Pennington  <hp@pobox.com>
11469
11470         * test/break-loader.c (randomly_set_extreme_ints): add test that
11471         sets really huge and small integers
11472
11473         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11474         that length of boolean array fits in the string, and that
11475         string has room for boolean value in single-bool case.
11476
11477         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11478         optional value to "ALIGN" command which is what to fill the
11479         alignment with.
11480
11481         * test/data/valid-messages/no-padding.message: add regression
11482         test for the message padding problem
11483
11484 2003-03-02  Havoc Pennington  <hp@pobox.com>
11485
11486         * dbus/dbus-message.c (decode_header_data): fix to always init
11487         message_padding, from Benjamin Dauvergne
11488
11489 2003-03-02  Havoc Pennington  <hp@pobox.com>
11490
11491         * configure.in: 0.5
11492
11493         * NEWS: Update.
11494
11495 2003-03-01  Joe Shaw  <joe@assbarn.com>
11496
11497         * configure.in: Check for "struct cmsgcred" and try to access its
11498         members for BSD-like unices.
11499
11500         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11501         _dbus_read_credentials_unix_socket().
11502         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11503         read() for reading the credential byte off the unix socket.  Use
11504         struct cmsgcred on systems that support it.
11505
11506 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11507
11508         * glib/Makefile.am:
11509         * configure.in:
11510         Make gthreads-2.0 dependency optional. Don't build thread test if
11511         its not found.
11512
11513 2003-02-27  Havoc Pennington  <hp@pobox.com>
11514
11515         * dbus/dbus-connection.c
11516         (dbus_connection_send_message_with_reply_and_block): fix doh!
11517         doh! doh! bug that resulted in never removing a reply from the
11518         queue, no wonder we called get_reply_serial so much ;-)
11519
11520         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11521         and client serial instead of demarshaling them every time
11522
11523 2003-02-27  Havoc Pennington  <hp@pobox.com>
11524
11525         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11526         more inlined, using dbus-string-private.h, speeds things up
11527         substantially
11528
11529         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11530         when freeing the string
11531         (_dbus_string_steal_data): fix for align offset
11532         (undo_alignment): new function
11533
11534 2003-02-26  Havoc Pennington  <hp@redhat.com>
11535
11536         All kinds of audit fixes from Owen, plus initial attempt to
11537         handle unaligned memory returned from malloc.
11538
11539         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11540         leave room for align_offset and nul byte
11541         (fixup_alignment): function to track an align_offset and
11542         ensure real->str is aligned
11543         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11544         to allow a nul byte plus align offset
11545         (_dbus_string_lock): fix overflow issue
11546         (_dbus_string_init_const_len): add assertions on sanity of len,
11547         assign allocated to be ALLOCATION_PADDING larger than len
11548         (set_length): fixup the overflow handling
11549         (_dbus_string_get_data_len): fix overflow in assertion
11550         (open_gap): detect overflow in size of gap to be opened
11551         (_dbus_string_lengthen): add overflow check
11552         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11553         (_dbus_string_append): add overflow check
11554         (_dbus_string_append_unichar): overflow
11555         (_dbus_string_delete): fix overflow in assertion
11556         (_dbus_string_copy_len): overflow in assertion
11557         (_dbus_string_replace_len): overflows in assertions
11558         (_dbus_string_find): change to implement in terms of
11559         _dbus_string_find_to
11560         (_dbus_string_find_to): assorted fixage
11561         (_dbus_string_equal_c_str): assert c_str != NULL,
11562         fix logic so the function works
11563         (_dbus_string_ends_with_c_str): fix overflow thingy
11564         (_dbus_string_base64_encode): overflow fix
11565         (_dbus_string_validate_ascii): overflow
11566         (_dbus_string_validate_nul): overflow
11567
11568 2003-02-26  Havoc Pennington  <hp@redhat.com>
11569
11570         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11571
11572 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11573
11574         * configure.in:
11575         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11576
11577         * dbus/dbus-connection.c:
11578         * dbus/dbus-connection.h:
11579         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11580         Add dbus_connection_set_wakeup_main_function and use it when queueing
11581         incoming and outgoing messages.
11582
11583
11584         * dbus/dbus-dataslot.c:
11585         Threadsafe usage of DBusDataSlotAllocator
11586
11587         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11588         dbus_new can fail.
11589
11590         * dbus/dbus-server-unix.c:
11591         Add todo comment
11592
11593         * glib/dbus-gmain.c:
11594         Implement the new wakeup functions for glib.
11595
11596         * glib/Makefile.am:
11597         * glib/test-thread-client.c:
11598         * glib/test-thread-server.c:
11599         * glib/test-thread.h:
11600         Initial cut at some thread test code. Not really done yet.
11601
11602 2003-02-26  Havoc Pennington  <hp@pobox.com>
11603
11604         * dbus/dbus-connection.c
11605         (dbus_connection_send_message_with_reply_and_block): fix crash
11606         where we ref'd the outgoing message instead of the returned reply
11607
11608         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11609         at the end of this function, so if we didn't need to read for
11610         authentication, we reinstall it for receiving messages
11611
11612         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11613         a NULL sender for peer-to-peer case
11614
11615         * dbus/dbus-transport-unix.c (check_read_watch): handle
11616         !authenticated case correctly
11617
11618         * glib/dbus-gmain.c: add support for DBusServer
11619
11620         * dbus/dbus-server.c: add data slot support
11621
11622         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11623         return values and handle errors
11624
11625         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11626         DBusConnection
11627
11628         * Doxyfile.in (INPUT): add glib subdir
11629
11630         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11631         setup_with_g_main instead of hookup_with_g_main; write docs
11632
11633 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11634
11635         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11636         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11637         * dbus/dbus-message.c: (dbus_message_append_boolean),
11638         (dbus_message_append_boolean_array),
11639         (dbus_message_get_args_valist), (_dbus_message_test):
11640         * dbus/dbus-message.h:
11641         * doc/dbus-specification.sgml:
11642         Various fixes as pointed out by Havoc.
11643
11644         * test/data/invalid-messages/bad-boolean-array.message:
11645         * test/data/invalid-messages/bad-boolean.message:
11646         Add invalid boolean value test cases.
11647
11648 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11649
11650         * dbus/dbus-internals.c: (_dbus_type_to_string):
11651         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11652         (_dbus_marshal_validate_arg):
11653         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11654         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11655         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11656         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11657         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11658         (dbus_message_iter_get_double),
11659         (dbus_message_iter_get_boolean_array), (message_iter_test):
11660         * dbus/dbus-message.h:
11661         * dbus/dbus-protocol.h:
11662         * doc/dbus-specification.sgml:
11663         * test/data/valid-messages/lots-of-arguments.message:
11664         Add support for boolean and boolean array types.
11665
11666 2003-02-23  Havoc Pennington  <hp@pobox.com>
11667
11668         * dbus/dbus-keyring.c: finish most of this implementation and
11669         simple unit test
11670
11671         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11672         these barf if the error isn't cleared to NULL
11673
11674         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11675         (_dbus_create_directory): new function
11676
11677         * dbus/dbus-errors.c (dbus_set_error): fix warning
11678
11679         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11680         (_dbus_string_hex_decode): new function
11681         (test_hex_roundtrip): test code
11682
11683         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11684
11685         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11686
11687         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11688         the save-to-temp/rename trick to atomically write the new file
11689         (_dbus_string_parse_uint): new function
11690
11691 2003-02-22  Havoc Pennington  <hp@pobox.com>
11692
11693         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11694
11695 2003-02-22  Havoc Pennington  <hp@pobox.com>
11696
11697         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11698         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11699
11700         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11701
11702         * dbus/test/data/sha-1: add US government test suite for SHA-1
11703
11704 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11705
11706         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11707         Make string arrays NULL-terminated.
11708
11709         * dbus/dbus-memory.c: (dbus_free_string_array):
11710         * dbus/dbus-memory.h:
11711         New function for freeing NULL-terminated string arrays.
11712
11713         * dbus/dbus-message-builder.c: (append_quoted_string),
11714         (_dbus_message_data_load):
11715         Add support for array types.
11716
11717         * dbus/dbus-message.c: (check_message_handling):
11718         Add more types as test cases.
11719
11720         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11721         (_dbus_string_parse_double):
11722         Add the start offset to the end offset.
11723
11724         * test/data/valid-messages/lots-of-arguments.message:
11725         New test message with lots of arguments.
11726
11727 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11728
11729         * dbus/dbus-message.c: (dbus_message_append_nil),
11730         (dbus_message_append_int32), (dbus_message_append_uint32),
11731         (dbus_message_append_double), (dbus_message_append_string),
11732         (dbus_message_append_int32_array),
11733         (dbus_message_append_uint32_array),
11734         (dbus_message_append_double_array),
11735         (dbus_message_append_byte_array),
11736         (dbus_message_append_string_array):
11737         Fix all out-of-memory handling in these functions.
11738
11739 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11740
11741         * dbus/dbus-message.c: (dbus_message_append_nil):
11742         Fix a silly.
11743
11744 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11745
11746         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11747         (dbus_message_append_nil), (dbus_message_append_int32_array),
11748         (dbus_message_append_uint32_array),
11749         (dbus_message_append_double_array),
11750         (dbus_message_append_byte_array),
11751         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11752         (dbus_message_iter_get_int32_array),
11753         (dbus_message_iter_get_uint32_array),
11754         (dbus_message_iter_get_double_array),
11755         (dbus_message_iter_get_byte_array),
11756         (dbus_message_iter_get_string_array):
11757
11758         * dbus/dbus-message.h:
11759         Add functions for appending and getting arrays.
11760
11761 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11762
11763         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11764         element size at least 8 bytes, fixes mempool tests on
11765         64-bit machines.
11766
11767 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11768
11769         * dbus/dbus-transport-unix.c (unix_do_iteration):
11770         Unlock the connection mutex during a blocking select call.
11771         Add todo about how we need a way to wake up the select.
11772
11773         * dbus/dbus-connection-internal.h:
11774         * dbus/dbus-connection.c:
11775         Add _dbus_connection_lock and _dbus_connection_unlock.
11776
11777 2003-02-19  Havoc Pennington  <hp@pobox.com>
11778
11779         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11780         Doxyfile.in, not Doxyfile
11781
11782         * dbus/dbus-keyring.c: do some hacking on this
11783
11784         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11785
11786         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11787         dbus_error_init
11788         (dbus_set_error): remove dbus_error_init, check for message ==
11789         NULL *before* we sprintf into it, and add @todo about including
11790         system headers in this file
11791
11792         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11793
11794         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11795
11796         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11797         get various bits of user information based on either username
11798         or user ID
11799         (_dbus_homedir_from_username): new function
11800
11801 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11802
11803         * configure.in:
11804         Add check for nonposix getpwnam_r
11805
11806         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11807         Align the pool element size to a sizeof (void *) boundary.
11808
11809         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11810         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11811         General Solaris fixes.
11812
11813         * test/data/valid-messages/simplest-manual.message:
11814         Explicitly state that we want little-endian packing.
11815
11816 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11817
11818         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11819
11820         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11821         Added to create a transport connecting using a tcp/ip socket.
11822
11823         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11824         to a tcp socket at given host and port.
11825         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11826         hostname and port.
11827
11828         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11829
11830         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11831         Added to create a server listening on a TCP/IP socket.
11832
11833 2003-02-19  Havoc Pennington  <hp@pobox.com>
11834
11835         Throughout: mop up all the Doxygen warnings and undocumented
11836         stuff.
11837
11838         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11839         to search any paths.
11840
11841         * dbus/dbus-threads.c: move global mutex initializers to
11842         dbus-internals.h, multiple prototypes was confusing doxygen
11843         besides being kind of ugly
11844
11845         * Doxyfile (PREDEFINED): have Doxygen define
11846         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11847         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11848         (do not abuse the feature! it's for stuff like the autogenerated
11849         macros in dbus-md5.c, not just for things you don't feel like
11850         documenting...)
11851
11852 2003-02-18  Havoc Pennington  <hp@pobox.com>
11853
11854         * dbus/dbus-string.c (_dbus_string_zero): new function
11855
11856         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11857         wrap it in some dbus-friendly API
11858
11859         * dbus/dbus-types.h: add 16-bit types
11860
11861 2003-02-18  Joe Shaw  <joe@assbarn.com>
11862
11863         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11864         credentials from our currently running process.
11865         (get_word): Fix a buglet where we were copying the entire length
11866         instead of relative to our position.
11867
11868         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11869         keys on the stack... it's 640k of data.
11870
11871         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11872         read the credentials byte off the socket, even if we don't have
11873         SO_PEERCRED.
11874         (_dbus_poll): Implement poll() using select() for systems which
11875         don't have it.
11876
11877         * glib/test-dbus-glib.c (main): Print out an error if no
11878         parameters are given.
11879
11880         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11881         can fallback to a secondary auth mechanism if the first fails.
11882
11883 2003-02-18  Havoc Pennington  <hp@pobox.com>
11884
11885         * AUTHORS: add Alex
11886
11887 2003-02-17  Havoc Pennington  <hp@pobox.com>
11888
11889         * doc/dbus-specification.sgml: lots of cosmetic
11890         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11891         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11892         s/server/bus/ (except in authentication section). Add a section
11893         "Message Bus Message Routing"
11894
11895 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11896
11897         Release 0.4
11898
11899         * NEWS: Update
11900
11901 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11902
11903         * doc/dbus-specification.sgml:
11904         Specification updates.
11905
11906 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11907
11908         * bus/activation.c: (bus_activation_init), (child_setup),
11909         (bus_activation_activate_service):
11910         * bus/activation.h:
11911         * bus/main.c: (main):
11912         Set DBUS_ADDRESS environment variable.
11913
11914         * dbus/dbus-errors.c: (dbus_set_error):
11915         Don't use va_copy since that's a C99 feature.
11916
11917         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11918         (_dbus_spawn_async):
11919         * dbus/dbus-sysdeps.h:
11920         Add child_setup_func to _dbus_spawn_async.
11921
11922         * doc/dbus-specification.sgml:
11923         Update specification.
11924
11925         * test/spawn-test.c: (setup_func), (main):
11926         Fix test.
11927
11928 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11929
11930         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11931         Added todo.
11932
11933 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11934
11935         * doc/.cvsignore:
11936         * doc/Makefile.am:
11937         * doc/dbus-test-plan.sgml:
11938         Add test plan document.
11939
11940         * test/Makefile.am:
11941         Fix distcheck.
11942
11943 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11944
11945         * dbus/dbus-message.c: (decode_header_data),
11946         (_dbus_message_loader_return_buffer):
11947         Set the header padding amount when loading a message.
11948
11949 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11950
11951         * bus/dispatch.c: (send_one_message):
11952         Only send broadcast messages to registered connections.
11953
11954         * dbus/dbus-message.c: (dbus_message_name_is):
11955         * dbus/dbus-message.h:
11956         New convenience function.
11957
11958         * dbus/dbus-transport-debug.c: (do_reading):
11959         Only dispatch one message per run.
11960
11961         * test/Makefile.am:
11962         * test/bus-test.c: (new_connection_callback), (die),
11963         (test_hello_client1_handler), (test_hello_client2_handler),
11964         (test_hello_replies), (main):
11965
11966         * test/bus-test-loop.[ch]:
11967         Add these.
11968
11969 2003-02-16  Havoc Pennington  <hp@pobox.com>
11970
11971         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11972         backward conditional
11973
11974 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11975
11976         * dbus/dbus-connection.c:
11977         Implement sent_message_with_reply. (with_reply_and block is still
11978         busted).
11979         Made dispatch_message not lose message if OOM.
11980
11981         * dbus/dbus-errors.h:
11982         Add NoReply error (for reply timeouts).
11983
11984 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11985
11986         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11987         Actually free keys and values when destroying hashtable.
11988
11989 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11990
11991         * dbus/dbus-auth.c: (client_try_next_mechanism):
11992         Plug a leak.
11993
11994         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11995         Return TRUE if there's no thread implementation around.
11996
11997         * glib/dbus-gmain.c: (free_source),
11998         (dbus_connection_hookup_with_g_main):
11999         Make sure to remove the GSource when the connection is finalized.
12000
12001 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12002
12003         * bus/dispatch.c: (bus_dispatch_message_handler):
12004         * dbus/dbus-errors.h:
12005         Return an error if someone tries to send a message to a service
12006         that doesn't exist.
12007
12008 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12009
12010         * bus/activation.c: (load_directory), (bus_activation_init),
12011         (bus_activation_activate_service):
12012         * bus/activation.h:
12013         * bus/driver.c:
12014         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12015         More work on the activation handling.
12016
12017         * dbus/dbus-errors.h:
12018         Add some error messages
12019
12020         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12021         * dbus/dbus-message.h:
12022         New function that creates an error message.
12023
12024         * dbus/dbus-protocol.h:
12025         Add ACTIVATE_SERVER message.
12026
12027         * dbus/dbus-server-unix.c: (unix_handle_watch),
12028         (_dbus_server_new_for_domain_socket):
12029         Call _dbus_fd_set_close_on_exec.
12030
12031         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12032         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12033         (_dbus_fd_set_close_on_exec):
12034         * dbus/dbus-sysdeps.h:
12035         Add _dbus_fd_set_close_on exec function. Also add function that checks
12036         that all open fds are set to close-on-exec and warns otherwise.
12037
12038         * dbus/dbus-transport-unix.c:
12039         (_dbus_transport_new_for_domain_socket):
12040         Call _dbus_fd_set_close_on_exec.
12041
12042 2003-02-16  Havoc Pennington  <hp@pobox.com>
12043
12044         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12045         allow people to avoid setting SIGPIPE to SIG_IGN
12046         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12047         we've been asked not to
12048
12049 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12050
12051         * dbus/dbus-list.c: (_dbus_list_append_link),
12052         (_dbus_list_prepend_link):
12053         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12054         (dbus_realloc):
12055         Warning fixes.
12056
12057 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12058
12059         * bus/Makefile.am:
12060         * bus/activation.c: (bus_activation_entry_free),
12061         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12062         * bus/activation.h:
12063         * bus/main.c: (main):
12064         Add simple activation support, doesn't work yet though.
12065
12066 2003-02-15   Zack Rusin  <zack@kde.org>
12067
12068         * qt/dbus-qthread.cpp:  small casting fix
12069
12070 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12071
12072         * dbus/dbus-errors.c: (dbus_set_error):
12073         * dbus/dbus-errors.h:
12074         Add a few errors and make dbus_set_error void.
12075
12076         * dbus/dbus-sysdeps.c:
12077         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12078         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12079         * dbus/dbus-sysdeps.h:
12080         Add _dbus_spawn_async.
12081
12082         * test/spawn-test.c: (main):
12083         Test for _dbus_spawn_async.
12084
12085 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12086
12087         * dbus/dbus-internals.h:
12088         Fix build without tests.
12089
12090         * dbus/dbus-list.c: (alloc_link):
12091         Fix a segfault when a malloc fails.
12092
12093         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12094         (dbus_malloc0), (dbus_realloc):
12095         Add support for malloc debugging.
12096
12097 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12098
12099         * dbus/dbus-threads.c:
12100         * dbus/dbus-threads.h:
12101         Add condvars. Remove static mutext from API.
12102         Implement static mutexes by initializing them from threads_init.
12103
12104         * glib/dbus-gthread.c:
12105         * qt/dbus-qthread.cpp:
12106         Update with the thread api changes.
12107
12108
12109         * dbus/dbus-list.c:
12110         * dbus/dbus-list.h:
12111         Turn StaticMutex into normal mutex + init function.
12112         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12113         _dbus_list_append_link, _dbus_list_prepend_link
12114
12115
12116         * dbus/dbus-sysdeps.c:
12117         * dbus/dbus-sysdeps.h:
12118         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12119         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12120
12121         * dbus/dbus-protocol.h:
12122         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12123
12124         * dbus/dbus-message.c:
12125         Make ref/unref atomic.
12126         Fix some docs.
12127
12128         * dbus/dbus-connection-internal.h:
12129         * dbus/dbus-connection.c:
12130         * dbus/dbus-connection.h:
12131         Make threadsafe.
12132         Change _peek to _borrow,_return & _steal_borrowed.
12133         Change disconnect callback to event.
12134         Make dbus_connection_dispatch_messages reentrant.
12135
12136         * dbus/dbus-transport.c:
12137         Don't ref the connection on calls to the transport
12138         implementation.
12139
12140         * dbus/dbus-message-handler.c:
12141         Make threadsafe.
12142
12143         * glib/dbus-gmain.c:
12144         Don't use peek_message anymore
12145
12146         * test/Makefile.am:
12147         * test/debug-thread.c:
12148         * test/debug-thread.h:
12149         Simple thread implementation that asserts() on deadlocks in
12150         single-threaded code.
12151
12152         * test/bus-test.c:
12153         (main) Call debug_threads_init.
12154
12155         * test/watch.c:
12156         Use disconnect message instead of disconnect callback.
12157
12158         * bus/connection.c:
12159         * bus/connection.h:
12160         Don't call dbus_connection_set_disconnect_function. Instead export
12161         bus_connection_disconnect.
12162
12163         * bus/dispatch.c:
12164         Call bus_connection_disconnect when we get a disconnected message.
12165
12166 2003-02-15  Havoc Pennington  <hp@pobox.com>
12167
12168         * dbus/dbus-message.c (dbus_message_new): fool around with the
12169         docs
12170
12171 2003-02-14  Havoc Pennington  <hp@pobox.com>
12172
12173         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12174
12175         * dbus/dbus-memory.c: fail if the debug functions indicate we
12176         should
12177
12178         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12179         (_dbus_decrement_fail_alloc_counter): debug functions to
12180         simulate memory allocation failures
12181
12182 2003-02-14  Havoc Pennington  <hp@pobox.com>
12183
12184         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12185         to DBusError
12186
12187 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12188
12189         * bus/driver.c: (bus_driver_handle_hello):
12190         * bus/driver.h:
12191         * bus/services.c: (bus_service_lookup):
12192         Reorder message sending so we get a more sane order.
12193
12194         * test/bus-test.c: (message_handler):
12195         Fix tyop.
12196
12197 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12198
12199         * bus/driver.c: (bus_driver_send_service_deleted),
12200         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12201         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12202         (bus_driver_send_welcome_message),
12203         (bus_driver_handle_list_services),
12204         (bus_driver_handle_acquire_service),
12205         (bus_driver_handle_service_exists):
12206         * dbus/dbus-bus.c: (dbus_bus_register_client),
12207         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12208         * dbus/dbus-errors.c: (dbus_result_to_string):
12209         * dbus/dbus-errors.h:
12210         * dbus/dbus-message.c: (dbus_message_append_args),
12211         (dbus_message_append_args_valist), (dbus_message_get_args),
12212         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12213         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12214         (dbus_message_iter_get_byte_array),
12215         (dbus_message_iter_get_string_array), (message_iter_test),
12216         (check_message_handling), (_dbus_message_test):
12217         * dbus/dbus-message.h:
12218         * test/bus-test.c: (main):
12219         Change fields to arguments in messages, so that they won't be
12220         confused with header fields.
12221
12222         * glib/test-dbus-glib.c: (main):
12223         Remove append_fields from hello message.
12224
12225 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12226
12227         * dbus/dbus-errors.c:
12228         * dbus/dbus-message.c:
12229         * dbus/dbus-string.c:
12230         Documentation fixes.
12231
12232 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12233
12234         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12235         (remove_timeout):
12236         Implement support for timeouts in dbus-glib.
12237
12238 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12239
12240         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12241         * dbus/dbus-message.c: (process_test_subdir):
12242         * test/break-loader.c: (find_breaks_based_on):
12243         Plug some memory leaks.
12244
12245 2003-02-13  Richard Hult  <rhult@codefactory.se>
12246
12247         * bus/main.c: Fix build.
12248
12249         * dbus/dbus-errors.h:
12250         * dbus/dbus-errors.c: Fix copyright for Anders.
12251
12252 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12253
12254         * bus/Makefile.am:
12255         Add utils.[ch]
12256
12257         * bus/connection.c: (bus_connection_foreach):
12258         Fix a warning.
12259
12260         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12261         (unescape_string), (new_section), (parse_section_start),
12262         (parse_key_value), (report_error), (bus_desktop_file_load),
12263         (bus_desktop_file_get_string):
12264         * bus/desktop-file.h:
12265         Use DBusError for error reporting.
12266
12267         * bus/dispatch.c: (send_one_message),
12268         (bus_dispatch_message_handler):
12269         * bus/driver.c: (bus_driver_send_service_deleted),
12270         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12271         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12272         (bus_driver_send_welcome_message),
12273         (bus_driver_handle_list_services),
12274         (bus_driver_handle_acquire_service),
12275         (bus_driver_handle_service_exists):
12276         * bus/loop.c: (bus_loop_run):
12277         * bus/main.c:
12278         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12279
12280         * bus/utils.c: (bus_wait_for_memory):
12281         * bus/utils.h:
12282         New files with general utility functions.
12283
12284         * dbus/dbus-internals.h:
12285         Remove _DBUS_HANDLE_OOM.
12286
12287 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12288
12289         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12290         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12291         * dbus/dbus-errors.h:
12292         Add DBusError structure.
12293
12294 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12295
12296         * test/data/valid-messages/standard-acquire-service.message:
12297         * test/data/valid-messages/standard-hello.message:
12298         * test/data/valid-messages/standard-list-services.message:
12299         * test/data/valid-messages/standard-service-exists.message:
12300         Add some standard messages.
12301
12302 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12303
12304         * bus/driver.c: (bus_driver_send_welcome_message),
12305         (bus_driver_handle_list_services),
12306         (bus_driver_handle_acquire_service),
12307         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12308         Update for API changes in libdbus.
12309
12310         * dbus/dbus-message.c: (dbus_message_new_reply):
12311         * dbus/dbus-message.h:
12312         Remove the name argument. The spec states that replies shouldn't
12313         have a name.
12314
12315 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12316
12317         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12318         (report_error), (bus_desktop_file_load), (lookup_section),
12319         (lookup_line), (bus_desktop_file_get_raw),
12320         (bus_desktop_file_get_string):
12321         * bus/desktop-file.h:
12322         Some fixes, and new functions for getting a key value from a section.
12323
12324 2003-02-13  Havoc Pennington  <hp@pobox.com>
12325
12326         * test/data/auth/fail-after-n-attempts.auth-script: new test
12327
12328         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12329         reject the client.
12330
12331 2003-02-13  Havoc Pennington  <hp@pobox.com>
12332
12333         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12334         dbus_credentials_match were backward
12335
12336         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12337         NO_CREDENTIALS and ROOT_CREDENTIALS
12338
12339         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12340         into here. Never process more commands after we've reached an
12341         end state; store further data as unused bytes.
12342
12343         * test/data/auth/*: add more auth tests
12344
12345         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12346         command to match exact string and EXPECT_UNUSED to match unused
12347         bytes
12348
12349         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12350
12351 2003-02-12  Havoc Pennington  <hp@pobox.com>
12352
12353         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12354         \r off of popped lines
12355
12356         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12357         scripts
12358
12359         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12360         SEND, append \r\n
12361
12362 2003-02-12  Havoc Pennington  <hp@pobox.com>
12363
12364         * dbus/Makefile.am: remove break-loader from the build, since it
12365         moved.
12366
12367         * configure.in: add --enable-gcov to turn on coverage profiling
12368         flags and disable optimization
12369
12370 2003-02-10  Havoc Pennington  <hp@pobox.com>
12371
12372         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12373         initial cut at test framework for DBusAuth from laptop.
12374         Doesn't quite work yet but it compiles and I need to get
12375         it off the 266mhz laptop. ;-)
12376
12377         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12378         fix a memleak in error case
12379
12380 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12381
12382         * bus/Makefile.am:
12383         * bus/desktop-file.c:
12384         * bus/desktop-file.h:
12385         Add a desktop file parser.
12386
12387 2003-02-11  Zack Rusin  <zack@kde.org>
12388
12389         * qt/message.[h|cpp]: sample implementation
12390         of the KDE wrapper for DBusMessage
12391
12392 2003-02-09  Zack Rusin  <zack@kde.org>
12393
12394         * test/bus-test.c: make_it_compile
12395         * doc/dbus-specification.sgml: minimal semantic fix
12396
12397 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12398
12399         Release 0.3
12400
12401         * NEWS: Update
12402
12403 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12404
12405         * dbus/Makefile.am:
12406         * dbus/dbus-break-loader.c:
12407         * test/Makefile.am:
12408         * test/break-loader.c:
12409         Move dbus-break-loader to test/ and rename it to break-loader.
12410
12411 2003-02-02  Havoc Pennington  <hp@pobox.com>
12412
12413         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12414         for code to manage cookies in your home directory
12415
12416         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12417
12418         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12419         to authenticate, then disconnect the client.
12420
12421 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12422
12423         * dbus/dbus-message.c (dbus_message_append_fields):
12424         Correct docs.
12425
12426 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12427
12428         * doc/dbus-specification.sgml:
12429         Update address format section.
12430
12431 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12432
12433         * test/Makefile.am:
12434         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12435         (message_handler), (new_connection_callback), (loop_quit),
12436         (loop_run), (main):
12437         Add bus test.
12438
12439 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12440
12441         * bus/driver.c: (bus_driver_handle_service_exists):
12442         Simplify the code a bit.
12443
12444         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12445         Fix a silly.
12446
12447 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12448
12449         * bus/Makefile.am:
12450         Add libdbus-daemon.la and link to it.
12451
12452 2003-02-01  James Willcox  <jwillcox@gnome.org>
12453
12454         * bus/driver.c: (bus_driver_handle_own_service):
12455         Actually include the service reply code in the message.
12456
12457 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12458
12459         * bus/driver.c: (bus_driver_handle_service_exists):
12460         Don't unref the incoming message.
12461
12462 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12463
12464         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12465
12466 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12467
12468         * dbus/dbus-server.c: (dbus_server_listen):
12469         * dbus/dbus-transport.c: (_dbus_transport_open):
12470         ifdef out the calls to the debug transport and server.
12471
12472 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12473
12474         * dbus/dbus-watch.c (dbus_watch_get_flags):
12475         Add note in the docs that ERROR or HANGUP won't be returned
12476         and are assumed always on.
12477
12478         * glib/dbus-gmain.c (add_watch):
12479         Always add IO_ERR | IO_HUP
12480
12481         * dbus/dbus-message.h:
12482         Add semicolon after dbus_message_iter_get_string_array().
12483         Makes qt code build again
12484
12485 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12486
12487         * bus/driver.c: (create_unique_client_name),
12488         (bus_driver_handle_hello):
12489         Don't take a name, just use a numeric id to identify
12490         each client.
12491
12492         * dbus/Makefile.am:
12493         * dbus/dbus-bus.c: (dbus_bus_register_client),
12494         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12495         * dbus/dbus-bus.h:
12496         Add new convenience functions for communicating with the bus.
12497
12498         * dbus/dbus-message.h:
12499
12500         * dbus/dbus-protocol.h:
12501         Fix a typo.
12502
12503 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12504
12505         * dbus/dbus-message.c (dbus_message_append_fields):
12506         Add some more doc comments.
12507
12508 2003-02-01  Havoc Pennington  <hp@pobox.com>
12509
12510         * dbus/dbus-break-loader.c (randomly_modify_length): change
12511         a 4-byte value in the message as if it were a length
12512
12513         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12514         execute bit on saved files
12515
12516 2003-02-01  Havoc Pennington  <hp@pobox.com>
12517
12518         * dbus/dbus-break-loader.c (main): new program to find messages
12519         that break the loader.
12520
12521         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12522         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12523
12524         * dbus/dbus-string.c (_dbus_string_set_byte): new
12525
12526 2003-01-31  Havoc Pennington  <hp@pobox.com>
12527
12528         * dbus/dbus-message.c: refactor the test code to be more general,
12529         in preparation for writing a "randomly permute test cases to
12530         try to break the loader" program.
12531
12532 2003-01-31  Havoc Pennington  <hp@pobox.com>
12533
12534         * doc/dbus-specification.sgml: work on the specification
12535
12536         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12537         the protocol version of the message.
12538
12539         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12540         no longer specifies that.
12541         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12542         1/2/3/4)
12543
12544         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12545         "break" for DBUS_TYPE_NIL, remove @todo
12546
12547 2003-01-31  Havoc Pennington  <hp@pobox.com>
12548
12549         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12550         just set_is_error/get_is_error as this is a commonly-used
12551         function, and write docs.
12552
12553 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12554
12555         * dbus/dbus-address.c: (dbus_address_entry_free):
12556         Free key and value lists.
12557
12558         * dbus/dbus-internals.c: (_dbus_type_to_string):
12559         Add the types we didn't have.
12560
12561         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12562         (_dbus_marshal_validate_arg):
12563         Add NIL types.
12564
12565         * dbus/dbus-message.c: (dbus_message_set_sender):
12566         Remove todo about being able to set sender to NULL.
12567
12568         (dbus_message_set_is_error_reply),
12569         (dbus_message_get_is_error_reply):
12570         * dbus/dbus-message.h:
12571         New functions.
12572
12573         * dbus/dbus-protocol.h:
12574         Add error reply flag.
12575
12576         * test/data/valid-messages/opposite-endian.message:
12577         Add NIL type to test.
12578
12579 2003-01-31  Havoc Pennington  <hp@pobox.com>
12580
12581         * doc/dbus-specification.sgml: fully specify the header.  Add
12582         flags and major protocol version, and change header/body len to
12583         unsigned.
12584
12585         * dbus/dbus-message-builder.c (append_saved_length): append length
12586         as uint32
12587
12588         * dbus/dbus-message.c (dbus_message_create_header): change header
12589         length and body length to unsigned. Add the new fields from the
12590         spec
12591         (_dbus_message_loader_return_buffer): unsigned header/body len
12592
12593 2003-01-30  Havoc Pennington  <hp@pobox.com>
12594
12595         * dbus/dbus-auth.c: rework to use only REJECTED, no
12596         MECHANISMS
12597
12598         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12599         use REJECTED, suggested by Mark McLoughlin
12600
12601 2003-01-30  Havoc Pennington  <hp@pobox.com>
12602
12603         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12604         a better way to report errors here. e.g.  "unix address lacks
12605         path" or something. also "no such file" when the path doesn't
12606         exist, etc.
12607
12608         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12609         leaking list nodes
12610         (dbus_parse_address): add @todo about documenting address format,
12611         and allowing , and ; to be escaped
12612
12613 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12614
12615         * dbus/Makefile.am:
12616         Add dbus-address.[ch]
12617
12618         * dbus/dbus-address.c: (dbus_address_entry_free),
12619         (dbus_address_entries_free), (create_entry),
12620         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12621         (dbus_parse_address), (_dbus_address_test):
12622         * dbus/dbus-address.h:
12623         New files for dealing with address parsing.
12624
12625         * dbus/dbus-connection.c:
12626         Document timeout functions.
12627
12628         * dbus/dbus-message.c:
12629         Document dbus_message_new_from_message.
12630
12631         * dbus/dbus-server-debug.c:
12632         Document.
12633
12634         * dbus/dbus-server.c: (dbus_server_listen):
12635         Parse address and use correct server implementation.
12636
12637         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12638         * dbus/dbus-string.h:
12639         New function with test.
12640
12641         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12642         * dbus/dbus-test.h:
12643         Add address tests.
12644
12645         * dbus/dbus-transport-debug.c:
12646         Document.
12647
12648         * dbus/dbus-transport.c: (_dbus_transport_open):
12649         Parse address and use correct transport implementation.
12650
12651 2003-01-30  Havoc Pennington  <hp@pobox.com>
12652
12653         * dbus/dbus-message.c: use message->byte_order instead of
12654         DBUS_COMPILER_BYTE_ORDER throughout.
12655         (dbus_message_create_header): pad header to align the
12656         start of the body of the message to 8-byte boundary
12657
12658         * dbus/dbus-marshal.h: make all the demarshalers take const
12659         DBusString arguments.
12660
12661         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12662         validate message args here, so we don't have to do slow validation
12663         later, and so we catch bad messages as they are incoming. Also add
12664         better checks on header_len and body_len. Also fill in
12665         message->byte_order
12666
12667         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12668         implemented properly)
12669         (_dbus_string_validate_nul): new function to check all-nul
12670
12671         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12672         get_arg_end_pos and remove all validation
12673         (_dbus_marshal_validate_arg): actually do validation here.
12674
12675 2003-01-29  Havoc Pennington  <hp@pobox.com>
12676
12677         * dbus/dbus-message.c (check_message_handling): fix assertion
12678         failure on set_client_serial
12679
12680 2003-01-28  Havoc Pennington  <hp@pobox.com>
12681
12682         * dbus/dbus-server-debug.c: Add doc section comments
12683
12684         * dbus/dbus-transport-debug.c: add doc section comments
12685
12686 2003-01-28  Havoc Pennington  <hp@redhat.com>
12687
12688         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12689         the reverse order from how I had it
12690         (_dbus_string_base64_encode): reverse encoding order. I was
12691         basically byteswapping everything during encoding.
12692
12693 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12694
12695         * dbus/dbus-connection-internal.h:
12696         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12697         (_dbus_connection_remove_timeout):
12698         Add functions for adding and removing timeouts.
12699
12700         * dbus/dbus-message.c: (dbus_message_new_from_message):
12701         Add new function that takes a message and creates an exact
12702         copy of it, but with the refcount set to 1.
12703         (check_message_handling):
12704         Fix build error.
12705
12706         * dbus/dbus-server-protected.h:
12707         * dbus/dbus-server.c: (_dbus_server_init_base),
12708         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12709         (dbus_server_set_timeout_functions):
12710         (_dbus_server_remove_timeout):
12711         New functions so that a server can add and remove timeouts.
12712
12713         (dbus_server_listen):
12714         Add commented out call to dbus_server_debug_new.
12715
12716         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12717         Actually set the handler, doh.
12718
12719         * dbus/dbus-transport.c: (_dbus_transport_open):
12720         Add commented out call to dbus_transport_debug_client_new.
12721
12722         * dbus/Makefile.am:
12723         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12724
12725 2003-01-28  Havoc Pennington  <hp@pobox.com>
12726
12727         * dbus/dbus-message.c (check_message_handling): function to check
12728         on the loaded message, iterates over it etc.
12729
12730 2003-01-28  Havoc Pennington  <hp@pobox.com>
12731
12732         * test/Makefile.am (dist-hook): fix make distdir
12733
12734         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12735
12736 2003-01-27  Havoc Pennington  <hp@pobox.com>
12737
12738         * dbus/dbus-mempool.c (time_for_size): replace printf with
12739         _dbus_verbose
12740
12741         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12742         empty lines; fix the SAVE_LENGTH stuff to be
12743         START_LENGTH/END_LENGTH so it actually works; couple other
12744         bugfixes
12745
12746         * test/Makefile.am (dist-hook): add dist-hook for .message files
12747
12748         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12749         can be constant or locked.
12750         (_dbus_string_free): allow freeing a const string as
12751         documented/intended
12752
12753         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12754
12755         * dbus/dbus-test-main.c (main): take an argument which is the
12756         directory containing test data
12757
12758         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12759         argument to this and load all the messages in test/data/
12760         checking that they can be loaded or not loaded as appropriate.
12761
12762 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12763
12764         * bus/dispatch.c: (bus_dispatch_message_handler):
12765         Dispatch messages sent to services.
12766
12767         * bus/driver.c: (bus_driver_send_service_deleted),
12768         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12769         (bus_driver_send_service_acquired):
12770         Add helper functions for sending service related messages.
12771
12772         (bus_driver_send_welcome_message):
12773         Send HELLO_REPLY instead of WELCOME.
12774
12775         (bus_driver_handle_list_services):
12776         Send LIST_SERVICES_REPLY instead of SERVICES.
12777
12778         (bus_driver_handle_own_service),
12779         (bus_driver_handle_service_exists):
12780         New message handlers.
12781
12782         (bus_driver_handle_message):
12783         Invoke new message handlers.
12784
12785         (bus_driver_remove_connection):
12786         Don't remove any services here since that's done automatically
12787         by bus_service_remove_owner now.
12788
12789         * bus/driver.h:
12790         New function signatures.
12791
12792         * bus/services.c: (bus_service_add_owner):
12793         Send ServiceAcquired message if we're the only primary owner.
12794
12795         (bus_service_remove_owner):
12796         Send ServiceAcquired/ServiceLost messages.
12797
12798         (bus_service_set_prohibit_replacement),
12799         (bus_service_get_prohibit_replacement):
12800         Functions for setting prohibit replacement.
12801
12802         (bus_service_has_owner):
12803         New function that checks if a connection is in the owner queue of
12804         a certain service.
12805
12806         * bus/services.h:
12807         Add new function signatures.
12808
12809         * dbus/dbus-list.c: (_dbus_list_test):
12810         Add tests for _dbus_list_remove_last and traversing the list backwards.
12811
12812         * dbus/dbus-list.h:
12813         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12814         go any further, so return NULL then.
12815
12816         * dbus/dbus-protocol.h:
12817         Add new messages, service flags and service replies.
12818
12819 2003-01-26  Havoc Pennington  <hp@pobox.com>
12820
12821         * dbus/dbus-message-builder.c: implement, completely untested.
12822
12823         * test/data/*: add data to be used in testing.
12824         ".message" files are our simple loadable text format.
12825         ".message-raw" will be binary dumps of messages.
12826
12827         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12828
12829 2003-01-26  Havoc Pennington  <hp@pobox.com>
12830
12831         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12832
12833         * dbus/dbus-errors.c (dbus_result_to_string): add
12834         file errors
12835
12836         * dbus/dbus-message-builder.c: new file, will contain code to load
12837         up messages from files. Not implemented yet.
12838
12839 2003-01-26  Havoc Pennington  <hp@pobox.com>
12840
12841         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12842         the sender by setting to NULL
12843
12844 2003-01-26  Havoc Pennington  <hp@pobox.com>
12845
12846         The unit tests pass, but otherwise untested.  If it breaks, the
12847         tests should have been better. ;-)
12848
12849         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12850         the connection.
12851
12852         * dbus/dbus-message.c: redo everything so we maintain
12853         message->header as the only copy of the various fields.
12854         This avoids the possibility of out-of-memory in some cases,
12855         for example dbus_message_lock() can't run out of memory anymore,
12856         and avoids extra copying. Figured I may as well go ahead and do
12857         this since it was busted for dbus_message_lock to not return
12858         failure on OOM, and dbus_message_write_header was totally
12859         unchecked for OOM. Also fixed some random other bugs.
12860
12861         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12862         that strings are nul-terminated. Also, end_pos can be equal
12863         to string length just not greater than, I think.
12864         (_dbus_marshal_set_int32): new function
12865         (_dbus_marshal_set_uint32): new function
12866         (_dbus_marshal_set_string): new function
12867
12868         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12869         a warning, init timeout_list to NULL
12870         (dbus_connection_send_message): don't use uninitialized variable
12871         "serial"
12872
12873         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12874
12875 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12876
12877         * bus/driver.c: (bus_driver_handle_hello),
12878         (bus_driver_send_welcome_message):
12879         Plug leaks
12880
12881 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12882
12883         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12884         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12885         (dbus_connection_unref):
12886         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12887         * dbus/dbus-message.c: (dbus_message_unref),
12888         Plug memory leaks.
12889
12890         (dbus_message_get_fields):
12891         Remove debugging printout.
12892
12893         (_dbus_message_loader_return_buffer):
12894         Don't store the header string.
12895
12896         (_dbus_message_test):
12897         Plug leaks.
12898
12899 2003-01-26  Richard Hult  <rhult@codefactory.se>
12900
12901         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12902         the file descriptor list, since it can change under us.
12903
12904 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12905
12906         * glib/dbus-gmain.c: (dbus_connection_prepare),
12907         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12908         (remove_watch), (dbus_connection_hookup_with_g_main):
12909         Rewrite the glib handling to use its own GSource instead of a
12910         GIOChannel so we can catch messages put in the queue while waiting
12911         for a reply.
12912
12913 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12914
12915         * bus/Makefile.am:
12916         * bus/connection.c: (connection_disconnect_handler),
12917         (connection_watch_callback), (bus_connection_setup):
12918         * bus/dispatch.c: (send_one_message),
12919         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12920         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12921         * bus/dispatch.h:
12922         * bus/driver.c: (bus_driver_send_service_deleted),
12923         (bus_driver_send_service_created), (bus_driver_handle_hello),
12924         (bus_driver_send_welcome_message),
12925         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12926         (bus_driver_handle_message):
12927         * bus/driver.h:
12928         Refactor code, put the message dispatching in its own file. Use
12929         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12930         is disconnected.
12931
12932 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12933
12934         * dbus/dbus-internals.h:
12935         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12936
12937         * dbus/dbus-message.c: (dbus_message_get_sender):
12938         * dbus/dbus-message.h:
12939         Implement dbus_message_get_sender.
12940
12941         * dbus/dbus-protocol.h:
12942         Add message and service defines.
12943
12944 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12945
12946         * dbus/dbus-connection.c: (dbus_connection_send_message):
12947         * dbus/dbus-message-internal.h:
12948         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12949         (dbus_message_write_header):
12950         Remove _dbus_messag_unlock and don't set the client serial on a
12951         message if one already exists.
12952
12953 2003-01-24  Havoc Pennington  <hp@pobox.com>
12954
12955         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12956         list_pool
12957
12958         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12959         on OOM
12960
12961 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12962
12963         * dbus/dbus-list.c: (alloc_link), (free_link):
12964         Use a memory pool for the links.
12965
12966 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12967
12968         * bus/connection.c: (bus_connection_foreach):
12969         * bus/connection.h:
12970         Add new bus_connection_foreach function.
12971
12972         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12973         Add function that broadcasts a message to all clients.
12974
12975         (bus_driver_send_service_created), (bus_driver_handle_hello),
12976         (bus_driver_send_welcome_message),
12977         (bus_driver_handle_list_services), (bus_driver_message_handler):
12978         Implement functions that take care of listing services, and notifying
12979         clients when new services are created.
12980
12981         * bus/services.c: (bus_services_list):
12982         * bus/services.h:
12983         Add new function that returns an array of strings with the currently
12984         registered services.
12985
12986         * glib/dbus-glib.h:
12987         * glib/dbus-gmain.c:
12988         Update copyright year.
12989
12990 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12991
12992         * dbus/dbus-connection.c: (dbus_connection_send_message):
12993         Unlock the message in case it was sent earlier.
12994
12995         (dbus_connection_send_message_with_reply_and_block):
12996         Remove the reply message from the list.
12997
12998         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12999         Set array_len and new_pos correctly.
13000
13001         (_dbus_marshal_test):
13002         Remove debug output.
13003
13004         * dbus/dbus-message-internal.h:
13005         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13006         New function that returns the reply serial.
13007
13008         (_dbus_message_unlock):
13009         New function that unlocks a message and resets its header.
13010
13011         (dbus_message_append_string_array),
13012         (dbus_message_get_fields_valist),
13013         (dbus_message_iter_get_field_type),
13014         (dbus_message_iter_get_string_array),
13015         (dbus_message_get_fields),
13016         (dbus_message_append_fields_valist):
13017         Handle string arrays.
13018
13019         (dbus_message_set_sender):
13020         Make this function public since the bus daemon needs it.
13021
13022         (decode_header_data):
13023         Set the reply serial to -1 initially.
13024
13025         * dbus/dbus-message.h:
13026         Add dbus_message_set_sender.
13027
13028 2003-01-24  Havoc Pennington  <hp@pobox.com>
13029
13030         * doc/dbus-specification.sgml: add some stuff
13031
13032 2003-01-22  Havoc Pennington  <hp@pobox.com>
13033
13034         * doc/dbus-specification.sgml: Start to document the protocol.
13035
13036 2003-01-22  Havoc Pennington  <hp@pobox.com>
13037
13038         * dbus/dbus-connection.c
13039         (dbus_connection_send_message_with_reply_and_block): add some @todo
13040
13041         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13042
13043 2003-01-21  Havoc Pennington  <hp@pobox.com>
13044
13045         (patch untested because can't compile)
13046
13047         * bus/driver.c (create_unique_client_name): make this function
13048         never recycle client names. Also, caller should initialize
13049         the DBusString.
13050
13051         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13052
13053 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13054
13055         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13056         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13057         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13058         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13059         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13060         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13061         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13062         * dbus/dbus-marshal.h:
13063         * dbus/dbus-protocol.h:
13064         Add support for marshalling and demarshalling integer, double
13065         and string arrays.
13066
13067 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13068
13069         * bus/Makefile.am:
13070         Add driver.[ch]
13071
13072         * bus/connection.c: (connection_disconnect_handler):
13073         Remove the connection from the bus driver's list.
13074
13075         (connection_watch_callback): Dispatch messages.
13076
13077         (free_connection_data): Free connection name.
13078
13079         (bus_connection_setup): Add connection to the bus driver's list.
13080         (bus_connection_remove_owned_service):
13081         (bus_connection_set_name), (bus_connection_get_name):
13082         Add functions for setting and getting the connection's name.
13083
13084         * bus/connection.h:
13085         Add function headers.
13086
13087         * bus/driver.c: (create_unique_client_name),
13088         (bus_driver_handle_hello_message),
13089         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13090         (bus_driver_add_connection), (bus_driver_remove_connection):
13091         * bus/driver.h:
13092         * bus/main.c:
13093         * bus/services.c: (bus_service_free):
13094         * bus/services.h:
13095         New file that handles communication and registreation with the bus
13096         itself.
13097
13098 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13099
13100         * dbus/dbus-connection.c: (dbus_connection_send_message):
13101         Add a new client_serial parameter.
13102
13103         (dbus_connection_send_message_with_reply):
13104         Remove a @todo since we've implemented the blocking function.
13105
13106         (dbus_connection_send_message_with_reply_and_block):
13107         New function that sends a message and waits for a reply and
13108         then returns the reply.
13109
13110         * dbus/dbus-connection.h:
13111         Add new functions.
13112
13113         * dbus/dbus-errors.c: (dbus_result_to_string):
13114         * dbus/dbus-errors.h:
13115         Add new DBUS_RESULT.
13116
13117         * dbus/dbus-message-internal.h:
13118         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13119         (_dbus_message_set_sender), (dbus_message_write_header),
13120         (dbus_message_new_reply), (decode_header_data),
13121         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13122         * dbus/dbus-message.h:
13123         Add new functions that set the reply serial and sender.
13124         Also marshal and demarshal them correctly and add test.
13125
13126         * dbus/dbus-protocol.h:
13127         Add new DBUS_MESSAGE_TYPE_SENDER.
13128
13129         * glib/dbus-glib.h:
13130         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13131         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13132         (dbus_connection_hookup_with_g_main):
13133         * glib/test-dbus-glib.c: (main):
13134         Rewrite to use GIOChannel and remove the GSource crack.
13135
13136         * test/echo-client.c: (main):
13137         * test/watch.c: (check_messages):
13138         Update for changed APIs
13139
13140 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13141
13142         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13143
13144         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13145         Create a DBusTimeoutList.
13146         (dbus_connection_set_timeout_functions): Add new function to
13147         set timeout callbacks
13148
13149         * dbus/dbus-connection.h: Add public DBusTimeout API.
13150
13151         * dbus/dbus-message.c: (dbus_message_get_service):
13152         * dbus/dbus-message.h:  New function.
13153
13154         * dbus/dbus-server.c: Fix small doc typo.
13155
13156         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13157
13158 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13159
13160         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13161         of the string, just as long as specified.
13162
13163 2003-01-19  Havoc Pennington  <hp@pobox.com>
13164
13165         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13166         new function
13167
13168         * dbus/dbus-server.c (dbus_server_set_max_connections)
13169         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13170         keep track of current number of connections, and add API for
13171         setting a max (but haven't implemented enforcing the max yet)
13172
13173 2003-01-18  Havoc Pennington  <hp@pobox.com>
13174
13175         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13176         reading/writing if read_watch != NULL or write_watch != NULL.
13177
13178         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13179         the message loader code to actually load message->header and
13180         message->body into the newly-created message.
13181
13182         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13183         in OOM case
13184
13185         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13186         (dbus_connection_get_max_message_size)
13187         (dbus_connection_set_max_live_messages_size)
13188         (dbus_connection_get_max_live_messages_size): implement some
13189         resource limitation functions
13190
13191         * dbus/dbus-resources.c: new file implementing some of the
13192         resource limits stuff
13193
13194         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13195         missing docs, add @todo to handle OOM etc.
13196
13197         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13198         docs
13199
13200 2003-01-18  Havoc Pennington  <hp@pobox.com>
13201
13202         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13203         connection if it hasn't been already.
13204
13205         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13206         replace with DisconnectFunction.
13207
13208 2003-01-18  Havoc Pennington  <hp@pobox.com>
13209
13210         Building --disable-verbose-mode --disable-asserts --disable-tests
13211         cuts the library from 112K to 45K or so
13212
13213         * configure.in: check for varargs macro support,
13214         add --enable-verbose-mode, --enable-asserts.
13215
13216         * dbus/dbus-internals.h (_dbus_assert): support
13217         DBUS_DISABLE_ASSERT
13218         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13219
13220 2003-01-18  Havoc Pennington  <hp@pobox.com>
13221
13222         * dbus/dbus-test.c: include config.h so that tests actually run
13223
13224         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13225         so the failure mode when that assumption fails will be plenty
13226         obvious.
13227
13228 2003-01-18  Havoc Pennington  <hp@pobox.com>
13229
13230         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13231
13232         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13233         the distribution
13234
13235         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13236         since we don't want to use those in make check
13237
13238 2003-01-15  Havoc Pennington  <hp@redhat.com>
13239
13240         Release 0.2
13241
13242         * NEWS: update
13243
13244 2003-01-15  Havoc Pennington  <hp@redhat.com>
13245
13246         * test/Makefile.am: fix so that test source code ends up in the
13247         distribution on make distcheck
13248
13249 2003-01-15  Havoc Pennington  <hp@redhat.com>
13250
13251         Release 0.1.
13252
13253         * NEWS: update
13254
13255 2003-01-15  Havoc Pennington  <hp@redhat.com>
13256
13257         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13258         fix build when --disable-tests
13259
13260         * Makefile.am (EXTRA_DIST): put HACKING in here
13261
13262         * HACKING: document procedure for making a tarball release.
13263
13264 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13265
13266         * bus/connection.c: (connection_error_handler),
13267         (bus_connection_setup):
13268         * bus/main.c: (main):
13269         Make sure that the DBusConnectionData struct is NULLed
13270         out to prevent a segfault.
13271
13272         * dbus/dbus-errors.c: (dbus_result_to_string):
13273         * dbus/dbus-errors.h:
13274         * dbus/dbus-message.c: (dbus_message_get_fields),
13275         (dbus_message_get_fields_valist), (_dbus_message_test):
13276         * dbus/dbus-message.h:
13277         Make dbus_message_get_fields return a result code so we can
13278         track invalid fields as well as oom.
13279
13280 2003-01-11  Havoc Pennington  <hp@pobox.com>
13281
13282         * configure.in: change --enable-test/--enable-ansi action-if-given
13283         to enable_foo=$enableval instead of enable_foo=yes
13284
13285 2003-01-08  Havoc Pennington  <hp@pobox.com>
13286
13287         * dbus/dbus-string.c (_dbus_string_align_length): new function
13288
13289         * dbus/dbus-test-main.c: move main() for test app here
13290         * dbus/dbus-test.c
13291         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13292         symbol to run tests, because dbus-test isn't in the main
13293         library
13294
13295         Code review nitpicks.
13296
13297         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13298         for people with narrow emacs ;-). Assert client_serial was filled
13299         in. Assert message->name != NULL.
13300         (dbus_message_append_fields): have "first_field_type" arg separate
13301         from va list, needed for C++ binding that also uses varargs IIRC
13302         and helps with type safety
13303         (dbus_message_new): add @todo about using DBusString to store
13304         service/name internally
13305         (dbus_message_new): don't leak ->service and ->name on OOM later
13306         in the function
13307         (dbus_message_unref): free the service name
13308         (dbus_message_get_fields): same change to varargs
13309         i.e. first_field_type
13310         (_dbus_message_loader_return_buffer): assert that the message data
13311         is aligned (if not it's a bug in our code). Put in verbose griping
13312         about why we set corrupted = TRUE.
13313         (decode_header_data): add FIXME that char* is evil.  Was going to
13314         add FIXME about evil locale-specific string.h strncmp, but just
13315         switched to wacky string-as-uint32 optimization. Move check for
13316         "no room for field name" above get_const_data_len() to avoid
13317         assertion failure in get_const_data_len if we have trailing 2
13318         bytes or the like. Check for service and name fields being
13319         provided twice. Don't leak service/name on error. Require field
13320         names to be aligned to 4 bytes.
13321
13322         * dbus/dbus-marshal.c: move byte swap stuff to header
13323         (_dbus_pack_int32): uscore-prefix
13324         (_dbus_unpack_int32): uscore-prefix
13325         (_dbus_unpack_uint32): export
13326         (_dbus_demarshal_string): add @todo complaining about use of
13327         memcpy()
13328         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13329         handling allowing corrupt data to go unchecked
13330
13331 2003-01-08  Havoc Pennington  <hp@redhat.com>
13332
13333         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13334         to the select() as needed for authentication. (should be using
13335         _dbus_poll() not select, but for another day)
13336
13337         * dbus/dbus.h: include dbus/dbus-protocol.h
13338
13339 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13340
13341         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13342         dbus-connection.h
13343
13344 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13345
13346         * dbus/dbus-internals.c: (_dbus_type_to_string):
13347         New function that returns a string describing a type.
13348
13349         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13350         * dbus/dbus-marshal.h:
13351         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13352         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13353         (dbus_message_iter_get_byte_array):
13354         * dbus/dbus-message.h:
13355         Add new convenience functions for appending and getting message fields.
13356         Also add demarshalling routines for byte arrays.
13357
13358 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13359
13360         * dbus/dbus-connection-internal.h:
13361         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13362         (_dbus_connection_get_next_client_serial),
13363         (dbus_connection_send_message):
13364         * dbus/dbus-internals.h:
13365         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13366         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13367         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13368         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13369         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13370         (_dbus_verbose_bytes), (_dbus_marshal_test):
13371         * dbus/dbus-marshal.h:
13372         * dbus/dbus-message-internal.h:
13373         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13374         (dbus_message_write_header), (_dbus_message_lock),
13375         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13376         (dbus_message_get_name), (dbus_message_append_int32),
13377         (dbus_message_append_uint32), (dbus_message_append_double),
13378         (dbus_message_append_string), (dbus_message_append_byte_array),
13379         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13380         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13381         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13382         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13383         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13384         (decode_header_data), (_dbus_message_loader_return_buffer),
13385         (message_iter_test), (_dbus_message_test):
13386         * dbus/dbus-message.h:
13387         * dbus/dbus-protocol.h:
13388         * dbus/dbus-test.c: (main):
13389         * dbus/dbus-test.h:
13390         * glib/test-dbus-glib.c: (message_handler), (main):
13391         * test/echo-client.c: (main):
13392         * test/watch.c: (check_messages):
13393         Make messages sendable and receivable for real.
13394
13395 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13396
13397         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13398         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13399         * dbus/dbus-message.c: (dbus_message_append_int32),
13400         (dbus_message_append_uint32), (dbus_message_append_double),
13401         (dbus_message_append_string), (dbus_message_append_byte_array):
13402         Handle OOM restoration.
13403
13404 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13405
13406         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13407         (_dbus_demarshal_string), (_dbus_marshal_test):
13408         * dbus/dbus-marshal.h:
13409         * dbus/dbus-message.c: (dbus_message_get_name),
13410         Document these functions.
13411
13412         (dbus_message_append_int32), (dbus_message_append_uint32),
13413         (dbus_message_append_double), (dbus_message_append_string),
13414         (dbus_message_append_byte_array):
13415         * dbus/dbus-message.h:
13416         Add functions for adding message fields of different types.
13417
13418         * dbus/dbus-protocol.h:
13419         Add the different types.
13420
13421 2003-01-05  Havoc Pennington  <hp@pobox.com>
13422
13423         * bus/connection.c: implement routines for handling connections,
13424         first thing is keeping a list of owned services on each connection
13425         and setting up watches etc.
13426
13427         * bus/services.c: implement a mapping from service names to lists
13428         of connections
13429
13430         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13431
13432         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13433         to use static mutexes for global data
13434
13435         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13436         collection of functions to set/get application-specific data
13437         on the DBusConnection.
13438
13439 2003-01-04  Havoc Pennington  <hp@pobox.com>
13440
13441         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13442         (_dbus_poll): new function
13443
13444         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13445         copied from GLib
13446
13447         * bus/loop.c: initial code for the daemon main loop
13448
13449 2003-01-04  Havoc Pennington  <hp@pobox.com>
13450
13451         * test/watch.c (error_handler): make it safe if the error handler
13452         is called multiple times (if we s/error handler/disconnect
13453         handler/ we should just guarantee it's called only once)
13454
13455         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13456         error handler on disconnect (it's quite possible we should
13457         just change the error handler to a "disconnect handler," I'm
13458         not sure we have any other meaningful errors)
13459
13460         * configure.in: check for getpwnam_r
13461
13462         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13463         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13464         mechanism as in SASL spec, using socket credentials
13465
13466         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13467         (_dbus_send_credentials_unix_socket): new function
13468
13469         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13470         dbus_accept()
13471         (_dbus_write): only check errno if <0 returned
13472         (_dbus_write_two): ditto
13473
13474 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13475
13476         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13477         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13478         (_dbus_marshal_test):
13479         * dbus/dbus-marshal.h:
13480         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13481         to _dbus_marshal_utf8_string. Also fix some tests.
13482
13483 2002-12-28  Harri Porten  <porten@kde.org>
13484
13485         * configure.in: added check for C++ compiler and a very cheesy
13486         check for the Qt integration
13487
13488         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13489
13490         * qt/Makefile.am: added
13491
13492         * qt/.cvsignore: added
13493
13494         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13495         latter, added #ifdef QT_THREAD_SUPPORT guard.
13496
13497         * dbus/Makefile.am: added missing headers for make dist
13498
13499 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13500
13501         * dbus/Makefile.am: fixup export-symbols-regex.
13502
13503 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13504
13505         * acinclude.m4: Add this file and put the
13506         PKG_CHECK_MODULE macro in it.
13507
13508 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13509
13510         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13511         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13512         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13513         (_dbus_marshal_test):
13514         Make the demarshalling routines align the pos argument.
13515         Add string marshalling tests and fix the obvious bugs
13516         discovered.
13517
13518 2002-12-26  Havoc Pennington  <hp@pobox.com>
13519
13520         * dbus/dbus-auth.c: fixes fixes fixes
13521
13522         * dbus/dbus-transport-unix.c: wire up support for
13523         encoding/decoding data on the wire
13524
13525         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13526         (_dbus_auth_decode_data): append to target string
13527         instead of nuking it.
13528
13529 2002-12-26  Havoc Pennington  <hp@pobox.com>
13530
13531         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13532         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13533         doh
13534
13535         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13536         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13537         now). Main point is because I wanted unpack_uint32 to implement
13538         _dbus_verbose_bytes
13539         (_dbus_verbose_bytes): new function
13540
13541         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13542
13543         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13544         mechanism to handle a corrupt message stream
13545         (_dbus_message_loader_new): fix preallocation to only prealloc,
13546         not prelengthen
13547
13548         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13549         (_dbus_string_test): enhance tests for copy/move and fix the
13550         functions
13551
13552         * dbus/dbus-transport-unix.c: Hold references in more places to
13553         avoid reentrancy problems
13554
13555         * dbus/dbus-transport.c: ditto
13556
13557         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13558         leak reference count in no-message case
13559
13560         * test/watch.c (do_mainloop): handle adding/removing watches
13561         during iteration over the watches. Also, ref the connection/server
13562         stored on a watch, so we don't try to mangle a destroyed one.
13563
13564         * dbus/dbus-transport-unix.c (do_authentication): perform
13565         authentication
13566
13567         * dbus/dbus-auth.c (get_state): add a state
13568         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13569         (_dbus_auth_get_unused_bytes): append the unused bytes
13570         to the passed in string, rather than prepend
13571
13572         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13573         the auth conversation DBusAuth
13574
13575         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13576         (_dbus_transport_new_for_domain_socket): when creating a
13577         transport, pass in whether it's a client-side or server-side
13578         transport so we know which DBusAuth to create
13579
13580 2002-12-03  Havoc Pennington  <hp@pobox.com>
13581
13582         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13583         _after_ finalizing the derived members
13584         (unix_connection_set): unref watch if we fail to add it
13585
13586         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13587         transport first, so that the connection owned by the
13588         transport will be valid as the transport finalizes.
13589
13590         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13591         if necessary, and remove watches from the connection.
13592
13593         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13594
13595 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13596
13597         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13598         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13599         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13600         (_dbus_marshal_test):
13601         * dbus/dbus-marshal.h:
13602         Add string marshal functions and have the demarshal functions
13603         return the new position.
13604
13605 2002-12-25  Havoc Pennington  <hp@pobox.com>
13606
13607         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13608         it is a simple protocol that just maps directly to SASL.
13609
13610         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13611         initial implementation, not actually used yet.
13612
13613         * dbus/dbus-string.c (_dbus_string_find): new function
13614         (_dbus_string_equal): new function
13615         (_dbus_string_base64_encode): new function
13616         (_dbus_string_base64_decode): new function
13617
13618 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13619
13620         * dbus/Makefile.am:
13621         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13622         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13623         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13624         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13625         * dbus/dbus-marshal.h:
13626         * dbus/dbus-protocol.h:
13627         * dbus/dbus-test.c: (main):
13628         * dbus/dbus-test.h:
13629         Add un-optimized marshalling/demarshalling routines.
13630
13631 2002-12-25  Harri Porten  <porten@kde.org>
13632
13633         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13634
13635 2002-12-24  Zack Rusin  <zack@kde.org>
13636
13637         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13638         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13639         main loop stuff
13640
13641 2002-12-24  Havoc Pennington  <hp@pobox.com>
13642
13643         * glib/dbus-gthread.c: fix include
13644
13645         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13646         I think glib API needs to change, though, as you don't
13647         want to use DBusMessageFunction, you want to use the
13648         DBusMessageHandler object. Probably
13649         dbus_connection_open_with_g_main_loop()
13650         and dbus_connection_setup_g_main_loop() or something like that
13651         (but think of better names...) that just create a connection
13652         that has watch/timeout functions etc. already set up.
13653
13654         * dbus/dbus-connection.c
13655         (dbus_connection_send_message_with_reply): new function just to
13656         show how the message handler helps us deal with replies.
13657
13658         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13659
13660         * dbus/dbus-string.c (_dbus_string_test): free a string that
13661         wasn't
13662
13663         * dbus/dbus-hash.c: use memory pools for the hash entries
13664         (rebuild_table): be more paranoid about overflow, and
13665         shrink table when we can
13666         (_dbus_hash_test): reduce number of sprintfs and write
13667         valid C89. Add tests for case where we grow and then
13668         shrink the hash table.
13669
13670         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13671
13672         * dbus/dbus-connection.c (dbus_connection_register_handler)
13673         (dbus_connection_unregister_handler): new functions
13674
13675         * dbus/dbus-message.c (dbus_message_get_name): new
13676
13677         * dbus/dbus-list.c: fix docs typo
13678
13679         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13680         an object representing a handler for messages.
13681
13682 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13683
13684         * glib/dbus-glib.h:
13685         * glib/dbus-gthread.c: (dbus_gthread_init):
13686         Don't use the gdbus prefix for public functions.
13687
13688 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13689
13690         * Makefile.am:
13691         * configure.in:
13692         Add GLib checks and fixup .pc files
13693
13694         * glib/Makefile.am:
13695         * glib/dbus-glib.h:
13696         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13697         (gdbus_connection_check), (gdbus_connection_dispatch),
13698         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13699         (dbus_connection_gsource_new):
13700         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13701         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13702         * glib/test-dbus-glib.c: (message_handler), (main):
13703         Add GLib support.
13704
13705 2002-12-15  Harri Porten  <porten@kde.org>
13706
13707         * autogen.sh: check for libtoolize before attempting to use it
13708
13709         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13710         struct.
13711
13712         * .cvsignore: ignore more stamp files
13713
13714         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13715
13716         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13717         without make install.
13718
13719 2002-12-15  Havoc Pennington  <hp@pobox.com>
13720
13721         * dbus/dbus-threads.c: add thread stubs that a higher library
13722         layer can fill in. e.g. the GLib wrapper might fill them in with
13723         GThread stuff. We still need to use this thread API to
13724         thread-safe-ize the library.
13725
13726 2002-12-12  Havoc Pennington  <hp@pobox.com>
13727
13728         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13729         below new interfaces and include fewer system headers.
13730
13731         * dbus/dbus-sysdeps.c (_dbus_read): new function
13732         (_dbus_write): new function
13733         (_dbus_write_two): new function
13734         (_dbus_connect_unix_socket): new function
13735         (_dbus_listen_unix_socket): new function
13736
13737         * dbus/dbus-message-internal.h: change interfaces to use
13738         DBusString
13739
13740 2002-12-11  Havoc Pennington  <hp@pobox.com>
13741
13742         * dbus/dbus-types.h: add dbus_unichar
13743
13744         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13745
13746         * dbus/dbus-connection.c (dbus_connection_send_message): return
13747         TRUE on success
13748
13749         * dbus/dbus-transport.c: include dbus-watch.h
13750
13751         * dbus/dbus-connection.c: include dbus-message-internal.h
13752
13753         * HACKING: add file with coding guidelines stuff.
13754
13755         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13756         handling here, for security purposes (as in vsftpd). Not actually
13757         using this class yet.
13758
13759         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13760         system/libc usage here, as in vsftpd, for ease of auditing (and
13761         should also simplify portability). Haven't actually moved all the
13762         system/libc usage into here yet.
13763
13764 2002-11-25  Havoc Pennington  <hp@pobox.com>
13765
13766         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13767         always print the first verbose message.
13768
13769 2002-11-24  Havoc Pennington  <hp@pobox.com>
13770
13771         * test/echo-client.c, test/echo-server.c: cheesy test
13772         clients.
13773
13774         * configure.in (AC_CHECK_FUNCS): check for writev
13775
13776         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13777         function
13778
13779         * dbus/dbus-list.c (_dbus_list_foreach): new function
13780
13781         * dbus/dbus-internals.c (_dbus_verbose): new function
13782
13783         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13784         representing a server that listens for connections.
13785
13786         * dbus/.cvsignore: create
13787
13788         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13789         public API for reporting errors
13790
13791         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13792         public object representing a connection that
13793         sends/receives messages. (Same object used for
13794         both client and server.)
13795
13796         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13797         Basic abstraction for different kinds of stream
13798         that we might read/write messages from.
13799
13800 2002-11-23  Havoc Pennington  <hp@pobox.com>
13801
13802         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13803         _DBUS_INT_MAX
13804
13805         * dbus/dbus-test.c (main): add list test, and include
13806         dbus-test.h as intended
13807
13808         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13809         (_dbus_hash_table_remove_int): return value indicates
13810         whether the entry existed to remove
13811
13812         * dbus/dbus-list.c: add linked list utility class,
13813         with docs and tests
13814
13815         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13816         array sometimes.
13817
13818 2002-11-23  Havoc Pennington  <hp@pobox.com>
13819
13820         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13821         DBUS_END_DECLS to nothing, that should fix this once and for all
13822
13823         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13824
13825         * dbus/dbus-message.c, dbus/dbus-hash.c:
13826         add some missing @brief
13827
13828 2002-11-23  Havoc Pennington  <hp@pobox.com>
13829
13830         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13831         to avoid confusing Doxygen
13832
13833         * dbus/dbus-hash.c: @} not }@
13834
13835         * dbus/dbus-message.c (struct DBusMessage): split out
13836         internals docs
13837
13838 2002-11-23  Havoc Pennington  <hp@pobox.com>
13839
13840         * configure.in: pile on more warning flags if using gcc
13841
13842         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13843         to document static functions
13844
13845         * configure.in: add summary to end of configure so it
13846         looks nice and attractive
13847
13848         * dbus/dbus-hash.c: finish implementation and write unit
13849         tests and docs
13850
13851         * configure.in: add --enable-tests to enable unit tests
13852
13853         * dbus/dbus-test.c: test program to run unit tests
13854         for all files in dbus/*, initially runs a test for
13855         dbus-hash.c
13856
13857         * dbus/dbus-internals.h: file to hold some internal utility stuff
13858
13859 2002-11-22  Havoc Pennington  <hp@redhat.com>
13860
13861         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13862         "ported" away from Tcl
13863
13864         * dbus/dbus-types.h: header for types such as dbus_bool_t
13865
13866 2002-11-22  Havoc Pennington  <hp@redhat.com>
13867
13868         * dbus/dbus.h: fixups for doc warnings
13869
13870         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13871         macros
13872         (QUIET): make it quiet so we can see warnings
13873
13874         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13875
13876 2002-11-22  Havoc Pennington  <hp@redhat.com>
13877
13878         * Makefile.am: include "Doxyfile" target in all-local
13879
13880         * configure.in: generate the Doxyfile
13881
13882         * Doxyfile.in: move Doxyfile here, so we can use
13883         configure to generate a Doxyfile with the right
13884         version number etc.
13885
13886 2002-11-22  Havoc Pennington  <hp@redhat.com>
13887
13888         * dbus/dbus-message.c: move inline docs into .c file
13889
13890         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13891         so all docs are under doc/
13892         (MAN_EXTENSION): generate man pages. Use extension
13893         ".3dbus" which matches ".3qt" on my system,
13894         I guess this is OK, I don't know really.
13895         (FILE_PATTERNS): look for .c files not .h, makes sense
13896         for plain C I think
13897
13898 2002-11-22  Havoc Pennington  <hp@pobox.com>
13899
13900         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13901         because any app can be a server, and any app can be a client,
13902         the bus is a special kind of server.
13903
13904 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13905
13906         * Doxyfile : adding. Still needs Makefile rules to be generated
13907         automatically (just run "doxygen" in the toplevel dir for now to
13908         generate docs)
13909
13910         * dbus/dbus-message.h : Adding sample docs (javadoc since
13911         resembles gtk-doc a little more)
13912
13913         * dbus/dbus.h : Adding sample docs
13914
13915 2002-11-21  Havoc Pennington  <hp@redhat.com>
13916
13917         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13918         so we can allow ourselves to include files directly,
13919         instead of having to use dbus.h
13920
13921         * dbus/dbus.h: fill in
13922
13923         * dbus/dbus-message.h: sketch out a sample header file.
13924         Include griping if you include it directly instead of
13925         via dbus.h
13926
13927         * dbus/dbus-macros.h: new file with macros for extern "C",
13928         TRUE/FALSE, NULL, etc.
13929
13930         * doc/file-boilerplate.c: put include guards in here
13931
13932 2002-11-21  Havoc Pennington  <hp@redhat.com>
13933
13934         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13935
13936         * COPYING: include the GPL as well, and license code
13937         under both AFL and GPL.
13938
13939 2002-11-21  Havoc Pennington  <hp@redhat.com>
13940
13941         * acconfig.h: get rid of this
13942
13943         * autogen.sh (run_configure): add --no-configure option
13944
13945         * configure.in: remove AC_ARG_PROGRAM to make
13946         autoconf complain less. add AC_PREREQ.
13947         add AC_DEFINE third arg.
13948
13949 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13950
13951         * doc/Makefile.am:
13952         Fix references so we can distcheck.
13953
13954 2002-11-21  Havoc Pennington  <hp@redhat.com>
13955
13956         * Initial module creation
13957