* qt/qdbusmessage.cpp:
[platform/upstream/dbus.git] / ChangeLog
1 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2
3         * qt/qdbusmessage.cpp:
4         * qt/qdbustypehelper_p.h:
5         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
6         the list is a const-reference
7
8 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
9
10         * Adding old doc patch that never got applied
11         
12         * dbus/bus.c (dbus_bus_add_match): Add documentation
13
14         * doc/dbus-specification.xml: Add documentation for the match rules
15           and the AddMatch and RemoveMatch methods
16
17 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
18
19         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
20         call (r535506)
21
22         * qt/dbusidl2cpp.cpp:
23         * qt/qdbusabstractadaptor.cpp:
24         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
25         sibling of the QDBusAbstractAdaptor objects instead of the
26         parent. (r535848)
27
28         * qt/dbusidl2cpp.cpp:
29         * qt/qdbusabstractinterface.cpp:
30         * qt/qdbusabstractinterface.h:
31         * qt/qdbusabstractinterface_p.h:
32         * qt/qdbusinterface.cpp: Make properties in interfaces
33         actually work. The code that was generated would not compile,
34         due to moc calls to functions that did not exist. They now
35         shall. (r536571)
36
37 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
38
39         * Makefile.am:
40         * configure.in:
41         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
42         Thanks to Brad Hards for providing the patch
43
44 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
45
46         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
47         call. (r535506)
48
49 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
50
51         * qt/examples/dbus.cpp: Enhance error messages and use
52         QDBusInterfacePtr.
53
54 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
55
56         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
57         and disable the copy operators. (r533772, r534746)
58
59         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
60
61         * qt/qdbusabstractinterface.cpp:
62         * qt/qdbusabstractinterface.h: Change the default call mode to
63         not use the event loop. Add convenience call() methods that
64         take a CallMode parameter. (r534042)
65
66         * qt/qdbusconnection.h: Change the default call mode to not
67         use the event loop. (r534042)
68
69         * qt/qdbusinterface.cpp:
70         * qt/qdbusinterface.h: Add a method to tell us if the
71         interface is valid (since we don't return a null pointer
72         anymore) (r534099)
73
74         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
75         (r534101)
76
77         * qt/qdbusinternalfilters.cpp: Decouple the introspection
78         function in two so taht we get the chance to introspect
79         without having a QDBusMessage (r534102)
80
81         * qt/qdbusbus.h:
82         * qt/qdbusconnection.cpp:
83         * qt/qdbusconnection_p.h:
84         * qt/qdbusintegrator.cpp: Keep a list of our own names to
85         avoid a round-trip to the server when attempting to introspect
86         one of our own objects. Also make sure the filter functions
87         match the empty interface as well. (r534108)
88         Don't keep the connection names. Instead, trust the unique
89         connection name (r534111)
90         Remove event loop usage (r534112)
91
92 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
93
94         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
95         Brad Hards.
96
97 2005-04-28  Robert McQueen  <robot101@debian.org>
98
99         * glib/dbus-gproxy.c: Fix properties so that they can be given in
100         any order, making it easier for people who inherit from this
101         object.
102
103 2005-04-28  Robert McQueen  <robot101@debian.org>
104
105         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
106         of memory from within pointer arrays and lists. Fixes bug #6300.
107
108 2005-04-28  Robert McQueen  <robot101@debian.org>
109
110         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
111         generating struct signatures. Fixes bug #6083.
112
113 2005-04-28  Robert McQueen  <robot101@debian.org>
114
115         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
116         to qdbusconnection_p.moc.
117
118 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
119
120         * README, INSTALL: Doc fixes
121         Patch from Brad Hards <bradh at frogmouth.net>
122
123 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
124
125         * qt/examples/dbus.cpp: Use the new merged-interface mode for
126         the dynamic meta object. No need to guess which interface to
127         call.
128
129 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
130
131         * qt/qdbusconnection_p.h:
132         * qt/qdbusmetaobject.cpp:
133         * qt/qdbusmetaobject_p.h:
134         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
135         for the dynamic meta object. No need to guess which
136         interface to call.
137         * qt/qdbusabstractinterface_p.h:
138         * qt/qdbusconnection.cpp:
139         * qt/qdbusintegrator.cpp:
140         * qt/qdbusinterface.cpp:
141         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
142         Add a QDBusRef that looks and behaves like DCOPRef.
143
144 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
145
146         * dbus/dbus-connection.c: Interfaces are optional in method
147         calls, so don't give up if the interface parameter is NULL.
148         Patch reviewed by Havoc Pennington.
149
150 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
151
152         * qt/qdbusreply.h: Add default constructor and operator=
153           (r532625)
154         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
155           in public headers (r532952)
156         * qt/qdbusabstractinterface.cpp:
157         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
158           make it the default (r532951)
159
160 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
161
162         * dbus/dbus-connection.c: Fix asserts
163         Patch from Tim Moloney <t.moloney at verizon.net>
164
165 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
166
167         * mono/Connection.cs, mono/Message.cs: Check Target type
168         Patch from Aaron Bockover (abockover at novell.com)
169
170 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
171
172         * INSTALL: fine-tune the requirements for the Qt4 binding.
173
174 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
175
176         * tools/dbus-print-message.c: Added support for printing of all 
177           remaining data types. Fixed logic for indentation of compound
178           data types.
179         
180 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
181
182         * INSTALL: fill out content of file providing DBus specific
183           build installations, followed by generic Auto* INSTALL file
184           content
185         
186 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
187
188         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
189           Patch by Stefan Eilers. (r529537)
190
191 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
192
193         * qt/qdbusinternalfilters.cpp: Don't show the parent's
194           contents (r528208)
195
196 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
197
198         * qt/Makefile.am: fix the dependency for
199           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
200           not in qdbusconnection.cpp.
201           Thanks to Jakub Stachowski <stachowski@hypair.net> for
202           spotting this.
203
204 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
205
206         * qt/examples/listnames.cpp:
207         * qt/examples/Makefile.am: Three ways to list the names on the
208           bus.
209
210 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
211
212         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
213           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
214
215 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
216
217         Merge from Subversion:
218         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
219           something that exists (r526315)
220         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
221           slots/signals (r526316)
222         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
223           also return an unknown-method error if the parameters don't
224           match for org.freedesktop.DBus.Properties. (r526842)
225         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
226         * qt/qdbusintegrator.cpp: Restore the proper order of
227           delivery: don't make method returns be delivered on priority
228           (r528150)
229
230 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
231
232         * configure.in qt/Makefile.am: add qt/examples
233         * qt/examples: Add QtDBus example programs:
234           - hello: Hello, World
235           - ping: Simple method-calling program
236           - pong: Simple object-exporting program (not using adaptors)
237           - complexping: Interactive method-calling program 
238                 (also gets and sets properties).
239           - complexpong: Sample program exporting methods, signals and
240                 properties, using adaptors.
241           - dbus: Simple implementation of a generic method-calling
242                 program, similar to 'dbus-send', but with semantics
243                 similar to 'dcop'.
244           - chat: Simplistic chat program, implemented using signals
245                 and the system bus. Looks like IRC.
246
247 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
248
249         * configure.in: Detect QtGui (necessary for one of the
250           example programs). Note: this increases the minimum required
251           version of Qt to 4.1.3.
252
253 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
254
255         * test/qt/*: Sync with KDE Subversion revision 523647.
256         Update the testcases to the new API. Remove testcases for
257         classes that are no longer public or have been removed.
258
259 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
260
261         * qt/*: 
262         * dbus/qdbus.h: Sync with KDE Subversion revision
263         523647. Hopefully, this will be the last of the
264         source-incompatible changes. Documentation has been improved;
265         support for QList<basic-types> has been added; QDBusObject is
266         gone; QDBus(Abstract)Interface is now a QObject with
267         auto-generated meta-object; QDBusIntrospection is marked
268         private, since QMetaObject can be used now; lots of bugfixes.
269
270 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
271
272         Patch from Milosz Derezynski <internalerror at gmail.com>
273         
274         * configure.in:
275         Output the service directory in the configure summary
276
277         * dbus-1.pc.in:
278         Add session_bus_services_dir
279
280 2006-03-10  Ross Burton  <ross@openedhand.com>
281
282         * tools/dbus-print-message.c:
283         Add support for object paths and signatures.
284
285 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
286
287         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
288         config reload.
289         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
290         information caches
291         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
292         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
293         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
294         * dbus/dbus-userdb.h: Add function to flush all user/group information
295         caches.
296
297 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
298
299         * qt/dbusidl2cpp.cpp:
300         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
301         for dcopidl2cpp, found in the KDE installations (or the more
302         modern kalyptus): generate Qt4 C++ code for the input XML
303         introspection. Currently no IDL parsing.
304
305 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
306
307         * test/qt/*: Update the self-tests.
308
309 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
310
311         * qt/*: 
312         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
313         represents the first feature-complete version of the Qt4
314         bindings since I took ove maintainership.
315
316 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
317
318         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
319         dir. This is C++, so we can't use the DBus ones.
320
321 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
322
323         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
324         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
325
326 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
327
328         * dbus/dbus-connection.c: 
329         (_dbus_connection_block_pending_call):
330         Check to see if our data has already been read off the connection
331         by another blocking pending call before we block in poll.
332         (check_for_reply_and_update_dispatch_unlocked):
333         Code taken from _dbus_connection_block_pending_call - checks for
334         an already read reply and updates the dispatch if there is one.
335
336         * test/name-test/test-pending-call-dispatch.c:
337         New test for making sure we don't get stuck polling a 
338         dbus connection which has no data on the socket when
339         blocking out of order on two or more pending calls.
340
341 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
342
343         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
344         make/automake don't detect that we're talking about the same
345         .lo file if I specify the full path to the source files.
346
347 2006-02-26  Havoc Pennington  <hp@redhat.com>
348
349         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
350
351         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
352         session bus variable is unset, suggest "man dbus-launch" and "man
353         dbus-daemon" to figure out how to fix the problem
354
355 2006-02-25  Havoc Pennington  <hp@redhat.com>
356
357         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
358         should make this thing use the new glib options parser
359
360 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
361
362         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
363         .lo files taking moc sources.
364
365 2006-02-25  Havoc Pennington  <hp@redhat.com>
366
367         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
368         and install it as a public header
369
370 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
371
372         * Released 0.61
373
374 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
375         
376         * proxies.py: Fix the callchain
377
378 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
379         
380         * patch from Sjoerd Simons <sjoerd at debian.org>:      
381
382         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
383         dbus/dbus-sysdeps.c
384
385         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
386         call _dbus_group_info_free_allocated which causes infinite loop,
387         correctly call _dbus_group_info_free
388
389 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
390
391         * qt/qdbusinterface_p.h:
392         * qt/qdbusinterface.cpp: Use the standard
393         org.freedesktop.DBus.Method.NoReply annotation for the "async"
394         calls instead of creating one for us.
395
396         * qt/qdbusconnection_p.h:
397         * qt/qdbusintegrator.cpp: Remove debugging code.
398
399         * qt/qdbusintegrator.cpp:
400         * qt/qdbusmessage.cpp:
401         * qt/qdbusmessage_p.h:
402         * qt/qdbusmessage.h: Change the behaviour of automatic
403         reply-sending: now a reply is always sent, unless the caller
404         didn't request one or if the user slot has already sent one.
405
406 2006-02-16  Robert McQueen  <robot101@debian.org>
407
408         * configure.in: Patch from Debian packages by Sjoerd Simons
409         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
410         arguments so it's possible to build both bindings in the
411         same tree.
412
413         * qt/Makefile.am: Fix truncated value so that make dist works.
414
415 2006-02-16  Robert McQueen  <robot101@debian.org>
416
417         * acinclude.m4, configure.in: Patch from Brad Hards
418         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
419         improving quoting, re-ordering a few checks, and a few other
420         aesthetic tidy-ups.
421
422 2006-02-16  Robert McQueen  <robot101@debian.org>
423
424         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
425         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
426         assertion that the next element to read from the iter is fixed in
427         size. This is not the case when you are at the end of the iter,
428         because the next element type is INVALID.
429
430         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
431         a bogus assert which means that you may not initialise a 0-length
432         string unless you provide a non-NULL pointer. This prevented
433         you from marshalling messages containing zero-length arrays in
434         some cases.
435
436         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
437         from Rob to correct bogus asserts when trying to demarshal an
438         array and get_fixed_array got you 0 elements. Append nothing to
439         the GArray in this case.
440
441         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
442         an empty array via the glib bindings. Without all of the above
443         patches, this new test fails.
444
445 2006-02-16  Robert McQueen  <robot101@debian.org>
446
447         * glib/dbus-gmain.c: Make the previous commit compile.
448
449         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
450         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
451         specify sender_keyword="foo", path_keyword="bar" when adding
452         a signal listener, so that you can bind to signals generically
453         but still do something useful in your callback.
454
455         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
456         chars so that they're not cast to chars and made negative. Thanks
457         to Jakub Stachowski for reporting this and testing the fix.
458
459 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
460
461         * dbus/dbus-glib.h:
462         * glib/dbus-gmain.h:
463         (dbus_g_connection_open): new method for openning
464         a connection to an arbitrary address in the glib bindings
465
466         * ChangeLog: checkin last entry which doesn't seem to be commited
467
468 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
469
470         * tools/dbus-launch.c: Fixed sh syntax output
471
472 2006-02-13  Robert McQueen  <robot101@debian.org>
473
474         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
475         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
476         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
477         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
478         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
479         missing piece of the glib bindings jigsaw puzzle. This modifies
480         the existing specialised types to have N type parameters (rather
481         than the current 1 or 2 for arrays and dictionaries respectively).
482         You can then use this to get a glib type to represent any arbitrary
483         D-Bus struct type using dbus_g_type_get_struct. The only
484         implementation of these types is with GValueArrays as before,
485         but it's now possible to store these in arrays, emit them in
486         signals, etc.
487
488 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
489
490         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
491         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
492         <thiago.macieira at trolltech.com>
493
494 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
495
496         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
497         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
498
499 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
500
501         * bus/connection.c (bus_connections_expect_reply): Make
502         pending reply limit not common to all connections (Bug #5416)
503         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
504
505 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
506
507         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
508
509 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
510
511         * gcj/Makefile.am: point to correct jar command (Bug #4529)
512         patch from Doug Goldstein <cardoe at gentoo.org>
513
514 2006-02-09  Joe Shaw  <joeshaw@novell.com>
515
516         * mono/Arguments.cs: Fix a magic number in the mono bindings
517         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
518
519 2006-01-27  Robert McQueen  <robot101@debian.org>
520
521         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
522         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
523         when generating the client-side methods, instead of overloading
524         CSymbol which broke everything horribly. My apologies.
525
526 2006-01-27  Robert McQueen  <robot101@debian.org>
527
528         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
529         by me and Rob Taylor to add a simple_free function to D-Bus map
530         and collection types, which allows those types which can be freed
531         with a GDestroyNotify (such as GHashTables and GArrays, but not
532         GPtrArrays) to be stored as the values in hashtables.
533
534         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
535         Patch by Rob Taylor to add nested dicts to the glib tests to check
536         the above code works, and appears not to leak when called repeatedly.
537
538 2006-01-27  Robert McQueen  <robot101@debian.org>
539
540         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
541         to free a D-Bus allocated string with dbus_free () instead of
542         g_free ().
543
544 2006-01-27  Iain Holmes  <iain@openedhand.com>
545
546         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
547         method from being called multiple times.
548
549 2006-01-19  Robert McQueen  <robot101@debian.org>
550
551         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
552         <rob.taylor@collabora.co.uk> to add support for generating bindings
553         to arrays that are represented as GPtrArrays rather than GArrays (ie
554         size-variable things, such as strings, objects, structs, etc).
555
556 2006-01-05  Robert McQueen  <robot101@debian.org>
557
558         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
559         <ricardo.kekki@movial.fi> to make it possible to inherit from
560         DBusGProxy, by splitting the DBusGProxy struct into a public part and
561         a private part, and moving the setting of the DBusGProxyManager into a
562         connection property, allowing proper GObject construction.
563
564 2006-01-05  Robert McQueen  <robot101@debian.org>
565
566         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
567         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
568         annotations when generating glib client bindings.
569
570 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
571
572         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
573
574         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
575
576 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
577
578         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
579
580 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
581
582         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
583
584 2005-12-19  Ross Burton  <ross@openedhand.com>
585
586         * doc/dbus-tutorial.xml:
587         Document the Glib client-side bindings, and list all possible annotations.
588
589 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
590
591         * dbus/bus.c (dbus_bus_release_name): Add documentation
592
593 2005-12-06  Robert McQueen  <robot101@debian.org>
594
595         * python/service.py: s/sucessful/successful/ so we're allocating to
596         and reading from the same variable. Oops.
597
598 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
599
600         * Released 0.60
601
602 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
603
604         * test/qt/Makefile.am: build from srcdir
605
606         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
607         Note - this code is wrong and needs to be fixed by the Qt binding
608         developers.  The flags should be treated as bitfields and not enums.
609
610         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
611
612 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
613
614         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
615           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
616           in production code
617
618 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
619
620         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
621         method for getting messages off the bus in the absence of a
622         mainloop.  This method is much like 
623         dbus_connection_read_write_dispatch except it does not dispatch
624         the messages to a registered filter function.  Instead it
625         allows a developer to process messages by directly popping
626         them off the bus.
627
628 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
629
630         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
631         the parser to continue instead of returning error
632         (bus_desktop_file_load): Do not free parser data when
633         parse_section_start or parse_key_value fails because it was 
634         already freed by parser_free (patch from Carlos Garcia Campos  
635         <carlosgc at gnome.org>)
636
637 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
638
639         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
640         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
641         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
642         test/test-segfault.c, test/test-utils.c,
643         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
644         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
645         Various cleanup of dead code and compiler warnings (patch from
646         Kjartan Maraas <kmaraas at gnome.org>) 
647
648 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
649
650         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
651         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
652
653 2005-11-27  Robert McQueen  <robot101@debian.org>
654
655         * python/dbus_bindings.pyx: Repair my previous commit which reverted
656         part of the preceding one. Oops. Merge patch by Johan Hedberg
657         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
658         on big-endian platforms.
659
660         * test/python/test-client.py: Add some 16-bit integers to the test
661         values.
662
663 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
664
665         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
666         method return message for property getters
667
668 2005-11-27  Robert McQueen  <robot101@debian.org>
669
670         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
671         with type v of an instance of dbus.Variant(foo, type='x') caused
672         it to be boxed twice before sending over the bus.
673
674         * python/dbus_bindings.pyx, python/service.py,
675         test/python/test-client.py: Update the constants for the new
676         request_name flags, and update comments/test cases now that queueing
677         is the default action.
678
679 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
680
681         * configure.in:
682         - Change version to 0.60 for impending release
683         - upped the sonames because of ABI and API breakage
684
685 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
686
687         * configure.in: Add test/name-test/Makefile to the generated
688         Makefile list
689
690         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
691         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
692         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
693         not to queue an ower if it can't be the primary owner
694
695         * bus/bus.h: Add new internal BusOwner struct
696
697         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
698         to bus_registry_ensure and don't set the prohibit_replacement flag
699         since they are now set per BusOwner and not per name.
700         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
701         that returns the list of connections in a name's connection queue
702         
703         * bus/services.c (struct BusService): remove prohibit_replacement field
704         (struct BusOwner): new struct for keeping track of queued connections
705         and their associated flags for the queue
706         (struct BusRegistry): add a BusOwner memory pool
707         (bus_registry_new): initialize the BusOwner memory pool
708         (bus_registry_unref): free the BusOwner memory pool
709         (_bus_service_find_owner_link): new internal method for
710         searching the queue for a specific connection
711         (bus_owner_set_flags): new method for adding setting the flags on a
712         bus owner
713         (bus_owner_new): new method that creates a BusOwner object from the
714         pool and sets its flags
715         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
716         (bus_registry_ensure): Add the flags parameter
717         (bus_registry_acquire_service): Switch from using raw connections to
718         using the BusOwner struct
719         Add new state machine for dealing with the new set of flags
720         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
721         cancel_ownership, free_ownership_cancel_data, 
722         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
723         restore_ownership, free_ownership_restore_data, 
724         add_restore_ownership_to_transaction): Switch to using BusOwner 
725         instead of raw connections
726         (bus_service_add_owner): Add flags parameter
727         Switch to using BusOwner instead of raw connections
728         Add state machine for dealing with the new set of flags
729         (bus_service_swap_owner): Swaps the first and second owners in the
730         queue.  Used to make sure proper signals are sent when a service looses 
731         or gains primary ownership.  We never insert an owner at the top of the
732         queue.  Instead we insert it in the second position and then swap.
733         (bus_service_remove_owner): Remove the owner from the queue sending
734         out the NameLost and NameOwnerChanged signals if the we were the 
735         primary owner
736         (bus_service_get_primary_owners_connection): New method that extracts
737         the connection from the primary owner
738         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
739         connection
740         (bus_service_get_allow_replacement): Changed from the old 
741         bus_service_get_prohibit_replacement method.  Checks the flags of the 
742         primary owner and returns if it can be replaced or not
743         (bus_service_set_prohibit_replacement): removed
744         (bus_service_has_owner): returns TRUE if and owner with
745         the specified connection exists in the queue
746         
747         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
748         method that only compiles if tests are enabled.  Allows us to get the 
749         unique name of a connection so we can check it against the queue when
750         doing regression tests
751
752         * bus/activation.c (bus_activation_send_pending_auto_activate),
753         bus/dispatch.c (bus_dispatch),  
754         bus/driver.c (bus_driver_handle_get_service_owner, 
755         bus_driver_handle_get_connection_unix_user, 
756         bus_driver_handle_get_connection_unix_process_id,
757         bus_driver_handle_get_connection_selinux_security_context),
758         bus/signals.c (connection_is_primary_owner): 
759         use bus_service_get_primary_owners_connection instead of
760         bus_service_get_primary_owner
761
762         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
763         _dbus_listen_unix_socket): Calculate the length of the socket
764         path and use that instead of using a fixed length which was
765         causing socket names to contain many trailing Nul bytes.
766
767         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
768         (dbus_g_method_get_sender): New method for extracting the sender 
769         from a DBusGMethodInvocation
770         (dbus_g_method_return_get_reply): changed name to 
771         dbus_g_method_get_reply
772         (dbus_g_method_return_send_reply): changed name to
773         dbus_g_method_send reply
774
775         * doc/dbus-specification.xml: New docs that describe how the new
776         queueing system works and talks about the changes to the how
777         we specify socket names
778
779         * glib/examples/example-service.c, 
780         glib/examples/example-signal-emitter.c,
781         glib/examples/statemachine/statemachine-server.c:
782         Changed the RequestName flags to the new system
783
784         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
785         regression test suite for testing various states of the new
786         queueing system
787         
788 2005-11-15  Robert McQueen  <robot101@debian.org>
789
790         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
791         Taylor to add two methods, dbus_g_method_return_get_reply and
792         dbus_g_method_return_send_reply, to allow you to get the reply
793         message from a DBusGMethodInvocation, append arbitrary stuff to it,
794         and send it. The GLib bindings can't marshal a return value of
795         something like a(s) if the array is empty - ultimately they should be
796         made to heed the signature of the out arguments as the Python bindings
797         now can, but this is a workable interim solution which might have
798         other applications.
799
800 2005-11-15  Robert McQueen  <robot101@debian.org>
801
802         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
803         method to org.freedesktop.DBus to release a bus name or give up
804         waiting in the queue for it.
805
806         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
807         dbus_bus_release_name method to send the ReleaseName method calls.
808         Add constants for the return values to dbus/dbus-shared.h.
809
810         * doc/dbus-specification.xml: Document the new ReleaseName method
811         in the specification.
812
813         * python/dbus_bindings.pyx: Add a low-level python binding for the
814         release name method.
815
816         * python/exceptions.py, python/service.py: Make freeing BusName
817         objects release the name. Add a NameExistsException, and fix a
818         bug with creating UnknownMethodException.
819
820         * test/python/test-client.py: Add tests for freeing BusName
821         objects causing names to be released.
822
823 2005-11-14  Robert McQueen  <robot101@debian.org>
824
825         * python/service.py: Include the traceback in the error reply when we
826         send an exception over the bus. _BEST_ _PATCH_ _EVER_
827
828 2005-11-14  David Zeuthen  <davidz@redhat.com>
829
830         Patch from Timo Hoenig <thoenig@suse.de>.
831
832         * bus/bus.c: I've recently investigated why the automatic reload
833         of configuration files does not work as expected.
834
835         Currently, reloading configuration files does only work when
836         running dbus-daemon with --nodaemon.  If we are running as daemon
837         we're hitting a dnotify bug once we fork the process.
838
839         We're initializing the dnotify fds before calling fork().  Once
840         the child process forked it does still have the fds (and they
841         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
842         getting SIGIO as changes are made to the configuration files.
843
844         The attached patch moves the initialization of the dnotify fds to
845         process_config_postinit().  This is safe for all current code
846         paths and solves the dnotify disfunction.  If we're running
847         dbus-daemon as daemon the fds for dnotify are now being
848         initialized after fork() for the child process.
849
850         * configure.in: The current configure.in check for dnotify probes
851         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
852         match for 'xlinux', too. Additionally I have adapted the configure
853         option's style to match with the others.
854
855 2005-11-14  Robert McQueen  <robot101@debian.org>
856
857         * python/decorators.py, python/service.py: Add a new argument to the
858         dbus.service.method decorator called sender_keyword, which if set,
859         specifies the name of an argument which will be provided the bus
860         name of the method caller.
861
862         * test/python/test-client.py, test/python/test-service.py: Add a
863         method and test to check the sender_keyword functionality.
864
865 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
866
867         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
868         empty reply so blocking calls don't block forever (Patch from Sjoerd 
869         Simons <sjoerd at luon.net>)
870
871         * AUTHORS: Add Robert McQueen for his work on the Python
872         Bindings and other parts of D-Bus
873
874 2005-11-07  Robert McQueen  <robot101@debian.org>
875
876         * python/decorators.py: Change emit_signal function to use the
877         signature annotation of the signal when marhsalling the arguments from
878         the service. Fix a bug where the code checking signature length
879         against argument length referenced the wrong variable.
880
881         * python/introspect_parser.py: Avoid adding the type signature of
882         signal arguments to any methods which occur after them in the
883         introspection data (!) by making the parser a little more careful
884         about its current state.
885
886         * python/service.py: Remove debug prints from last commit (again :D).
887
888         * test/python/test-client.py, test/python/test-service.py: Add test
889         signals with signature decorators to test the strict marshalling code
890         gives errors at the right time. Could do with checking the signals
891         actually get emitted too, given that the test does nothing with
892         signals at the moment...
893
894 2005-11-07  Robert McQueen  <robot101@debian.org>
895
896         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
897         instances to stop madness of creating new instances representing
898         the same bus connection all the time, rendering any tracking of
899         match rules and bus names quite meaningless. Caught a bug where
900         the private argument to SessionBus() and friends was being passed
901         in as use_default_mainloop by mistake. Still some problems with
902         multiple dbus_binding.Connection instances representing the same
903         low-level connection (eg when you use both SessionBus() and
904         StarterBus() in same process), but it's a lot better now than it
905         was.
906
907         * python/dbus_bindings.pyx: Add constants with the return values
908         for bus_request_name().
909
910         * python/service.py: Store bus name instances in a per-dbus.Bus cache
911         and retrieve the same instances for the same name, so deletion can be
912         done with refcounting. Also now throws some kind of error if you
913         don't actually get the name you requested, unlike previously...
914
915         * test/python/test-client.py: Add tests for instance caching of buses
916         and bus name objects.
917
918 2005-11-04  Robert McQueen  <robot101@debian.org>
919
920         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
921         marshalling of boolean values. Add some booleans to the values in
922         the test client.
923
924         * python/decorators.py, python/service.py: Add an 'async_callbacks'
925         argument to the dbus.service.method decorator, which allows you to
926         name arguments to take two callback functions for replying with
927         return values or an exception.
928
929         * test/python/test-client.py, test/python/test-service.py: Add test
930         case using asynchronous method reply functions, both return values and
931         errors, and from within both the function itself and from a mainloop
932         callback.
933
934         * python/decorators.py, python/service.py: Perform checking that the
935         number of method/signal arguments matches the number of types in the
936         signature at class loading time, not when you first introspect the
937         class.
938
939         * python/service.py: Remove debug print left by the last commit.
940
941 2005-11-03  Robert McQueen  <robot101@debian.org>
942
943         * python/service.py: Heavy refactoring of method invocation, with
944         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
945         in favour of a new _message_cb that uses seperate functions for
946         looking up the method to call, marshalling the return values, and
947         sending exceptions as errors, and is easier to follow as a
948         consequence.  Fixes some corner cases about returning things that
949         don't match your declared out_signature, allows exceptions to define
950         _dbus_error_name and have it be sent over the bus as the error name,
951         and paves the way for cool stuff like heeding the message no reply
952         flag, asynchronous method implementations, informing the method of the
953         sender, and including backtraces in the error messages.
954
955         * test/python/test-client.py: Catch and print exceptions thrown in the
956         async callback tests, rather than passing them to the low-level
957         bindings to be ignored in a noisy and frustrating manner.
958
959 2005-11-03  Robert McQueen  <robot101@debian.org>
960
961         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
962         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
963         tweak others to be consistent.
964
965         * test/python/test-client.py: Tweak output of testInheritance.
966
967 2005-10-29  Robert McQueen  <robot101@debian.org>
968
969         * python/service.py: Major changes to allow multiple inheritance
970         from classes that define D-Bus interfaces:
971         
972          1. Create a new Interface class which is the parent class of
973             Object, and make the ObjectType metaclass into InterfaceType.
974         
975          2. Patch written with Rob Taylor to replace use of method_vtable
976             with code that walks the class's __MRO__ (method resolution order)
977             to behave like Python does when invoking methods and allow
978             overriding as you'd expect. Code is quite tricky because
979             we have to find two methods, the one to invoke which has the
980             right name and isn't decorated with the /wrong/ interface,
981             and the one to pick up the signatures from which is decorated
982             with the right interface.
983         
984             The same caveats apply as to normal multiple inheritance -
985             this has undefined behaviour if you try and inherit from two
986             classes that define a method with the same name but are
987             decorated with different interfaces. You should decorate
988             your overriding method with the interface you want.
989         
990          3. Replace grungy introspection XML generation code in the metaclass
991             with dictionaries that cope correctly with multiple inheritance
992             and the overriding of methods. This also uses the signature
993             decorations to provide correct introspection data, including
994             the debut appearance of the types of your return values. :D
995
996         * test/python/test-client.py, test/python/test-service.py: Add a test
997         case to try invoking an method that overrides one inherited from a
998         D-Bus interface class.
999
1000 2005-10-29  Robert McQueen  <robot101@debian.org>
1001
1002         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1003         Add checking for the end of struct character when marshalling a
1004         struct in MessageIter.append_strict.
1005
1006         * python/examples/example-service.py,
1007         python/examples/gconf-proxy-service.py,
1008         python/examples/gconf-proxy-service2.py: Update to use gobject
1009         mainloop directly rather than appearing to depend on gtk.
1010
1011         * python/test/test-client.py, python/test/test-server.py: Remove
1012         obsolete and broken test scripts for old bindings. We have up to date
1013         and working tests in test/python/.
1014
1015 2005-10-29  Robert McQueen  <robot101@debian.org>
1016
1017         * python/decorators.py: Add optional arguments to the method and
1018         signal decorators to allow you to specify the signature of arguments
1019         and return values. Preserve the doc strings of signal functions in the
1020         decorated version, for pydoc and friends.
1021
1022         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1023         parse_signature_block function with an iterable dbus.Signature()
1024         type. Fix a bug in MessageIter.append_strict where you could append
1025         anything by claiming it was a string.
1026
1027         * python/service.py: Use the out_signature decoration on methods to
1028         marshal return values, meaning you no longer require dbus.Array()
1029         or dbus.Dictionary() to indicate the type when returning empty
1030         arrays or dictionaries. Fix a bug where exceptions which are defined
1031         in __main__ are not turned into error replies.
1032
1033         * test/python/test-client.py, test/python/test-service.py: Add test
1034         for correct marshalling of return values according to out_signature.
1035         Fix a bug in the async call test where the error_handler is missing a
1036         self argument.
1037
1038 2005-10-29  Robert McQueen  <robot101@debian.org>
1039
1040         * glib/Makefile.am, glib/examples/Makefile.am,
1041         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1042         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1043
1044         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1045
1046         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1047         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1048         the command line.
1049
1050 2005-10-27  Ross Burton  <ross@openedhand.com>
1051
1052         * dbus/dbus-marshal-header.c:
1053         Remove dead code.
1054
1055         * glib/dbus-gobject.c:
1056         Stop compiler warning.
1057
1058 2005-10-25  Ross Burton  <ross@openedhand.com>
1059
1060         * dbus/dbus-auth.c:
1061         * dbus/dbus-server-unix.c:
1062         * dbus/dbus-transport-unix.c:
1063         * glib/dbus-gmain.c:
1064         * glib/dbus-gobject.c:
1065         Add some const keywords.
1066
1067 2005-10-25  Ross Burton  <ross@openedhand.com>
1068
1069         * doc/dbus-specification.xml:
1070         Document the NoReply annotation.
1071
1072         * glib/dbus-binding-tool-glib.h:
1073         * glib/dbus-binding-tool-glib.c:
1074         Respect the NoReply annotation.
1075
1076 2005-10-24  Robert McQueen <robot101@debian.org>
1077
1078         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1079         derive from unicode instead of str, and encode/decode UTF-8 when
1080         marshalling/unmarshalling bus messages
1081
1082         * python/introspect_parser.py: encode introspection data as UTF-8
1083         before passing the buffer into libxml2
1084
1085         * test/python/test-client.py: add unicode test strings
1086
1087         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1088         ignore generated python test files
1089
1090 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1091
1092         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1093         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1094         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1095
1096         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1097         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1098         when constructing struct signatures
1099
1100         * python/_dbus.py (Bus): handle private connections using the
1101         private keyword in the constructor. defaults to private=False
1102         (Bus::close): new method to close a connection to the bus
1103
1104         * python/dbus_bindings.pyx (Connection::close): renamed method
1105         was previously called disconnect
1106         (bus_get): now supports getting a private connection
1107
1108         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1109         keyword is set to True.  if it is, execute the method without waiting
1110         for a reply
1111         (ProxyObject::_introspect_execute_queue): new method for executing
1112         all the pending methods that were waiting for the introspect to
1113         finish.  this is called when introspect either succeeds or fails
1114         (ProxyObject::_introspect_error_handler): call queued methods
1115
1116 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1117
1118         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1119         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1120
1121         * python/service.py (Object::_message_cb): handle exceptions correctly
1122         by sending them over the wire to the calling app.  This makes sure
1123         the client returns immediately instead of waiting the 15 seconds to
1124         timeout.
1125
1126         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1127         Add a test to benchmark how long it takes to introspect a service and 
1128         call a method which returns a large element (pretty fast)
1129
1130         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1131         method which pushes a lot of data
1132
1133 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1134
1135         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1136         reclaim memory outside of the loop and use del istead of just setting
1137         the key to None
1138
1139 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1140
1141         * python/service.py (ObjectType::_reflect_on_signal): Always close
1142         signal tag even when there are no arguments
1143
1144 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1145
1146         * configure.in: Set mono, mono-docs and Qt3 to default
1147         to no instead of auto when building.  These bindings do not
1148         have full time maintainers and will not be supported for the
1149         1.0 release.
1150
1151 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1152
1153         patches from Michael Krivoruchko <misha at sun.com>: 
1154         
1155         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1156         _dbus_connection_message_sent, 
1157         _dbus_connection_send_preallocated_unlocked_no_update, 
1158         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1159         is NULL when calling _dbus_verbose
1160
1161         * configure.in: check for functions getpeerucred and getpeereid
1162
1163         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1164         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1165         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1166         Patch was only tested on Solaris 10 x86 so it might be issues
1167         with other platforms (i.e. BSDs and MacOSX)
1168         
1169
1170 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1171
1172         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1173         instead of marshal basic so we can handle recursive types in a variant
1174
1175         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1176         in variants
1177
1178         * test/glib/test-service-glib.c, test-service-glib.xml
1179         (my_object_echo_variant [EchoVariant], 
1180         my_object_process_variant_of_array_of_ints123
1181         [ProcessVariantOfArrayOfInts123]): 
1182         Add two test methods
1183
1184         * python/introspect_parser.py: New module for parsing introspect
1185         data.
1186
1187         * python/dbus_bindings.pyx:
1188         (various places): when throwing errors fix to use errormsg instead 
1189         of message local variable because Pyrex can get confused with other 
1190         message variables (initial patch by Robert McQueen 
1191         <robert.mcqueen at collabora.co.uk>)
1192         (MessageIter::parse_signature_block): new method for getting the next
1193         block in a signiture.
1194         (MessageIter::append_strict): new method for appending values strictly
1195         using the passed in signature instead of guessing at the type
1196         (MessageItter:: append_dict, append_struct, append_array): use 
1197         signatures to marshal children if the signature is available
1198         
1199         * python/exceptions.py (IntrospectionParserException): new exception
1200
1201         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1202         introspected signatures if available, else we fall back to the
1203         old way of doing things.
1204         (ProxyObject::_introspect_reply_handler ): parse introspection data
1205         
1206         * python/service.py (ObjectType::_reflect_on_method): Properly
1207         terminate <method> if there are no args in the reflection data
1208
1209         * test/python/test-client.py: add tests for talking with the GLib
1210         test server.  This gives us better coverage for introspection since
1211         python to python will always generate arguments as variants.  It also
1212         allows us to test the robustness of the GLib bindings and interlanguage
1213         communications.
1214
1215         
1216 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1217
1218         * bus/driver.c (bus_driver_handle_introspect): Add signals
1219         to the introspect data. (patch from Daniel P. Berrange 
1220         <dan at berrange.com>)
1221
1222         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1223         
1224         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1225         _dbus_connection_run_builtin_filters): Changed these to
1226         be unlock_no_update functions and call 
1227         _dbus_connection_send_unlocked_no_update instead of
1228         dbus_connection_send to avoid locking errors.
1229         
1230         * doc/TODO: Removed the make Ping test TODO
1231         
1232 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1233
1234         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1235         We now copy the message from a DBusError and then free 
1236         the error object befor throwing the error
1237
1238         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1239         DBusBindingOutputMode enum which was causing a warning.
1240         #include <time.h> so using time_t is explicitly defined
1241
1242 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1243
1244         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1245         - dbus/dbus-bus.c
1246         (internal_bus_get): new method that take over the heavy lifting
1247         of dbus_bus_get and adds the ability to get a private connection
1248         to the bus
1249         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1250         interface as in previous versions
1251         (dbus_bus_get_private): new method that is a wrapper to 
1252         internal_bus_get to get a private connection to the bus
1253
1254         - dbus/dbus-bus.h
1255         (dbus_bus_get_private): add as a public libdbus interface
1256
1257         - dbus-1.pc.in: output system_bus_default_address and 
1258         sysconfdir variables so apps can use them when compiling
1259
1260 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1261         * dbus/qt: New Qt bindings
1262
1263 2005-09-12  Waldo Bastian  <bastian@kde.org>
1264
1265         * dbus/dbus-marshal-validate.c,
1266         doc/dbus-specification.xml, test/Makefile.am,
1267         test/test-names.c: allow hyphens in bus names.
1268
1269 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1270
1271         * test/data/auth/fallback.auth-script: we don't
1272         retry the EXTERNAL method when we know its going
1273         to fail anymore.
1274
1275 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1276
1277         * dbus/dbus-connection-internal.h: rename
1278         (add|remove|toggle)_(watch|timeout) to unlocked()
1279         
1280         * dbus/dbus-connection.c: ditto.
1281         
1282         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1283         Update some callers for the renaming.
1284
1285 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1286
1287         * dbus/dbus-auth.c: (record_mechanisms): don't
1288         retry the first auth mechanism because we know
1289         we're just going to get rejected again.
1290         
1291         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1292         Fix thinko ... and what a nasty little bugger to
1293         track down you were ...
1294
1295         * dbus/dbus-connection.c:
1296         (_dbus_connection_add_watch),
1297         (_dbus_connection_remove_watch): add note about
1298         these needing the connection to be locked.
1299         (_dbus_connection_get_dispatch_status_unlocked):
1300         set status to DATA_REMAINS when we queue the
1301         disconnected message.
1302         
1303         * bus/dispatch.c:
1304         (bus_dispatch): fix warning.
1305         (check_existent_service_no_auto_start):
1306         Expect ChildSignaled error too.
1307         (check_existent_hello_from_self): fix another
1308         couple of warnings.
1309         
1310 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1311
1312         Patches from James Willcox <snorp@snorp.net>
1313
1314         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1315
1316         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1317         support array "out" parameters.
1318
1319         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1320         for 16-bit int support.
1321
1322 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1323
1324         * Released 0.50
1325
1326         * Patch from Steve Grubb:
1327         - bus/activation.c (bus_activation_service_reload_test): clean up
1328         some indentation
1329         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1330         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1331         buffer overflows in the test suite.  This is non critical because
1332         it can not be exploited and this code is only run when doing a 
1333         make check.
1334
1335         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1336         - configure.in: Don't check and link against kdecore, only qt headers
1337         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1338         - gcj/org/freedesktop/dbus/Makefile.am:
1339         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1340         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1341         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1342         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1343         - tools/Makefile.am: Add platform extentions to binaries 
1344         (i.e. .exe on windows)
1345
1346         * configure.in: 
1347         - Make it so if no suitable version of python is found we only 
1348         disable building python instead of exiting the configure script
1349         - Require version 2.4 of glib for glib bindings
1350         - Up version to 0.50
1351
1352         * python/__init__.py: Sync version with libdbus to (0,50,0)
1353         
1354 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1355
1356         * dbus/dbus-object-tree.c (find_subtree_recurse):
1357         a couple of optimizations (bug #710):
1358         - do a binary search in the tree
1359         - insert a new child at the right place directly, no need for
1360           qsort anymore
1361         - do the "double alloc" thing when allocating children
1362
1363 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1364
1365         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1366
1367         * python/dbus_bindings.pyx: Memory management foo
1368         (global): remove hacky _user_data_references global list
1369         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1370         tuples. Unref user_data
1371         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1372         (Connection::__del__): Remove and replace with __dealloc__ method
1373         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1374         to keep tuple from being deallocated instead of the global var hack
1375         (Connection::register_object_path): Stuff user_data into a tuple.
1376         Use Py_INCREF to keep tuple from being deallocated instead of the 
1377         global var hack
1378         (Connection::register_fallback): Stuff user_data into a tuple.
1379         Use Py_INCREF to keep tuple from being deallocated instead of the 
1380         global var hack
1381         (GIL_safe_pending_call_notification): Don't unref the message
1382         because it gets unreffed when going out of scope.  Py_XDECREF
1383         the user_data
1384         (PendingCall::__del__): Remove and replace with __dealloc__ method
1385         (PendingCall::set_notify): ref the pending call because we will
1386         need it to stick around for when the notify callback gets called
1387         (Message::__del__): Remove and replace with __dealloc__ method
1388
1389         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1390         gthreads_init to match up with the dbus call
1391
1392         * python/glib.py (init_threads): Changed to threads_init to match
1393         up with gobject.threads_init().  init_threads is kept for backwards
1394         compat but will most likely be deprecated in the future
1395
1396         * test/python/test-client.py: 
1397         - revamp to use Python's unittest functionality
1398         - add async call tests
1399         - setup threads in glib and dbus so we make sure locks are working
1400         
1401 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1402
1403         * python/dbus_bindings.pyx 
1404         (_pending_call_notification, cunregister_function_handler, 
1405         cmessage_function_handler): All callback functions have been rearranged 
1406         to workaround a bug in Pyrex when working with the GIL which is Python's 
1407         global lock when dealing with threads.  They have been split into
1408         a wrapper function (which assumes the name of the old function) and
1409         a _GIL_safe_<function name> function which contains the functionality
1410         of the old function.  This ensures that Pyrex does not write code
1411         the lock is released.
1412         
1413
1414 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1415
1416         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1417         GIL global lock when calling back into Python
1418
1419 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1420
1421         * Release 0.36.2
1422
1423         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1424
1425         * bus/policy.c (bus_policy_allow_user): change default "user is
1426         allowed" to be "user has same uid as the bus itself"; any
1427         allow/deny rules will override.
1428
1429         * bus/session.conf.in: don't allow all users, since now by default
1430         the user that ran the bus can connect.
1431
1432 2005-08-26  Colin Walters  <walters@verbum.org>
1433
1434         * tools/dbus-print-message.c (print_message): Flush stdout
1435         after printing a message, so that redirecting to a file, then
1436         hitting Ctrl-C works.
1437
1438 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1439
1440         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1441         (EmptyMessage): new class that subclasses Message.  This is a workaround
1442         to a Pyrex bug that fails to call __del__ when the Message object goes out
1443         of scope.  For some reason subclassing Message fixes this bug
1444         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1445         - s/Message(_create=0)/EmptyMessage everywhere else
1446         
1447         * test/python/test-{server|client}.py: add the python/.libs directory
1448         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1449         get picked up from the system
1450
1451 2005-08-25  Colin Walters  <walters@verbum.org>
1452
1453         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1454         to Ryan Lortie for the suggestion.
1455
1456 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1457
1458         * test/python: Add python regression test
1459
1460         * configure.in: Add test/python/Makefile
1461
1462         * test/Makefile.am: Add the python directory to SUBDIRS
1463
1464 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1465
1466         * Release 0.36.1
1467
1468         * python/_dbus.py: 
1469         (Interface::connect_to_signal): propigate keywords for match on args
1470         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1471
1472         * python/proxies.py (ProxyObject::connect_to_signal):
1473         propigate keywords for match on args
1474
1475         * Makefile.am: point everything to pyexecdir since python borks
1476         on multilib
1477
1478 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1479
1480         * Release 0.36
1481
1482 2005-08-23  Colin Walters  <walters@verbum.org>
1483
1484         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1485
1486 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1487
1488         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1489         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1490         of defining DBusConnection ourselves.
1491
1492 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1493
1494         * python/dbus.pth: New path file to fix up problems when installing
1495         c libraries to lib64 and python files to lib.
1496
1497         * python/Makefile.am: install dbus.pth in the correct spot
1498
1499 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1500         * ChangeLog: clean up my last entry a bit
1501
1502         * doc/introspect.xsl: New stylesheet for converting introspection data
1503         into browser renderable xhtml. Contributed by Lennart Poettering.
1504
1505         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1506         Poettering.
1507
1508         * doc/dbus-tutorial.xml: 
1509         - Add Colin Walter to the Authors section for authoring the GLib
1510         section
1511         - Add descriptions of the new signature and type functionality
1512         in the Python complex type mapping section
1513         - Add a sidenote on the new args matching functionality in 
1514         the Python bindings
1515         - Fixed up some of the examples to use the gobject.MainLoop
1516         instead of gtk.main
1517         
1518         * python/_dbus.py:
1519         (Bus::_create_args_dict): New. Converts a hash of arg matches
1520         to a more useable format
1521         (Bus::add_signal_receiver): add a **keywords parameter for catching
1522         arg match parameters
1523         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1524         arg match parameters
1525         
1526         * python/matchrules.py:
1527         (MatchTree::exec_matches): Check for arg matches
1528         (SignalMatchRule::add_args_match): New method
1529         (SignalMatchRule::execute): Added args_list parameter as an optimization
1530         so we don't have to marshal the args more than once
1531         (SignalMatchRule::match_args_from_list): New method that checks to see
1532         if the rule's arg matches match an argument list.  Only arguments
1533         set in the rule are checked.
1534         (SignalMatchRule::match_args_from_rule): New method that checks to see
1535         if the rule's arg matches match another rule's.  All args have to match
1536         in order for this method to return true.  If either rule has more args
1537         then it is not a match.
1538         (SignalMatchRule::is_match): Add args match
1539         (SignalMatchRule::repr): Add args to the final output if they exist
1540
1541 2005-08-17  Ross Burton  <ross@burtonini.com>
1542
1543         * glib/dbus-gproxy.c:
1544         (dbus_g_proxy_call_no_reply): unref the message once sent.
1545         (dbus_g_proxy_call): protect against NULL proxy.
1546
1547 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1548
1549         * python/__init__.py: Version updated (0, 43, 0)
1550         
1551         * python/dbus_bindings.pyx: 
1552         - Fixed type objects to have self passed into __init__
1553         - Added the Variant type
1554         - Add the ability to specify types or signatures for Array, Variant 
1555         and Dictionary
1556         (Connection::send_with_reply_handlers): return a PendingCall object
1557         (_pending_call_notification): handle the case when an error is returned 
1558         without an error message in the body
1559         (MessageIter::get_boolean): return True or False instead of an integer
1560         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1561         and add checks for objects with embeded signatures or types (Array, 
1562         Variant and Dictionary)
1563         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1564         (MessageIter::append_dict): handle embeded types or signatures
1565         (MessageIter::append_array): handle embeded types or signatures
1566         (MessageIter::append_variant): new method
1567         
1568         * python/proxies.py:
1569         (DeferedMethod): New. Dummy executable object used when queuing calls 
1570         blocking on introspection data
1571         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1572         or shorter timeouts for method calls
1573         (ProxyObject): Add first pass at an introspection state machine
1574         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1575         introspection. 
1576         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1577         the usual mechanisms for sending messages.  This is to avoid a deadlock
1578         where the Intospect call would be queued waiting for the Introspect 
1579         call to finish ;-)
1580         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1581         when introspection returns with no error
1582         (ProxyObject::_introspect_error_handler): New.  This method is called 
1583         when introspection encounters an error
1584         (ProxyObject::__getattr__): Code to handle different introspection 
1585         states.  Queue async calls or block blocking calls if we are 
1586         introspecting.  Pass through as normal if we are not or are done with 
1587         introspecting.
1588         
1589         * python/service.py: Import signal and method from decorators.py
1590
1591         * python/types.py: Add Variant type
1592
1593 2005-08-16  Colin Walters  <walters@verbum.org>
1594
1595         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1596         DBusError message is NULL.
1597
1598 2005-08-09  Havoc Pennington  <hp@redhat.com>
1599
1600         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1601         malloc'd copy of the name parameter
1602
1603 2005-08-09  Havoc Pennington  <hp@redhat.com>
1604
1605         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1606         warning if the reply serial is set to 0
1607
1608 2005-08-04  Colin Walters  <walters@verbum.org>
1609
1610         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1611         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1612         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1613         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1614         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1615         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1616         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1617         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1618         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1619         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1620         
1621         Prefix name with _ to ensure they're not exported.  All callers
1622         updated.
1623
1624         * glib/dbus-gvalue.c (typecode_to_gtype)
1625         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1626         (signature_iter_to_g_type_dict)
1627         (signature_iter_to_g_type_array)
1628         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1629         (dbus_gtypes_from_arg_signature):
1630         Move to dbus-gsignature.c.
1631
1632         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1633         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1634         (dbus_binding_tool_output_glib_client): Ditto.
1635
1636         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1637         and dbus-gsignature.h
1638
1639         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1640         unused variable.
1641
1642 2005-08-03  Colin Walters  <walters@verbum.org>
1643
1644         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1645         catch any incompatible changes accidentally made.
1646
1647 2005-08-03  Havoc Pennington  <hp@redhat.com>
1648
1649         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1650         typo, from Julien Puydt
1651
1652         * bus/connection.c (bus_connection_disconnected): we were always
1653         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1654
1655 2005-08-01  Colin Walters  <walters@verbum.org>
1656
1657         Patch from Joe Markus Clarke:   
1658         
1659         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1660         use-after-free.
1661
1662 2005-08-01  Colin Walters  <walters@verbum.org>
1663         
1664         Patch from Joe Markus Clarke:   
1665         
1666         * tools/dbus-send.c (main): 
1667         
1668         Don't use C99 style initializers (bug #3933).
1669         
1670 2005-08-01  Colin Walters  <walters@verbum.org>
1671
1672         Patch from Joe Markus Clarke:   
1673
1674         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1675         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1676         * glib/dbus-gobject.c (write_interface):
1677
1678         Don't use C99 style initializers (bug #3933).
1679
1680 2005-07-31  Havoc Pennington  <hp@redhat.com>
1681
1682         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1683         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1684
1685 2005-07-30  Havoc Pennington  <hp@redhat.com>
1686
1687         * fix a bunch of Doxygen warnings and mistakes
1688
1689 2005-07-30  Havoc Pennington  <hp@redhat.com>
1690
1691         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1692         DBUS_BUILD_TESTS since it's now used in production code
1693
1694 2005-07-29  Havoc Pennington  <hp@redhat.com>
1695
1696         * test/glib/test-profile.c (write_junk): initialize the junk
1697         buffer so valgrind doesn't have a breakdown
1698
1699 2005-07-29  Havoc Pennington  <hp@redhat.com>
1700
1701         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1702         (match_rule_matches): remove unused arg
1703         (test_matching): add tests for match_rule_matches()
1704
1705         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1706         do arg0='foo' arg5='bar' in the match rules
1707         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1708
1709         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1710
1711 2005-07-29  Ross Burton  <ross@openedhand.com>
1712
1713         * dbus/dbus-connection.c:
1714         Don't create a DBusCondVar which is never used.
1715
1716 2005-07-27  Ross Burton  <ross@openedhand.com>
1717
1718         * dbus/dbus-message.c:
1719         Reduce the size of the maximum cached message to 10K.
1720
1721 2005-07-25  Ross Burton  <ross@openedhand.com>
1722
1723         * glib/dbus-gproxy.c:
1724         Remove matches when all proxies are unregistered.
1725
1726 2005-07-24  Colin Walters  <walters@verbum.org>
1727
1728         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1729         typedata; recursive arrays won't have it.
1730
1731         * test/glib/test-dbus-glib.c:
1732         * test/glib/test-service-glib.c:
1733         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1734         
1735 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1736
1737         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1738         proxies.py, service.py: Cleanup of code after running it through the
1739         pyflakes code checker mostly dealing with undefined names.  
1740         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1741
1742 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1743
1744         * NEWS: Update to 0.35.2
1745
1746 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1747
1748         * python/_dbus.py: Remove import of the dbus.services
1749         module as it no longer exists (patch from Dimitur Kirov)
1750
1751         * python/service.py (Object::__init__): Fixed typo
1752         s/name/bus_name (patch from Dimitur Kirov)
1753
1754         * python/examples/example-signal-emitter.py: import dbus.glib
1755         to get the main loop and use glib mainloop instead of gtk so
1756         X doesn't have to be running.
1757
1758         * python/examples/example-signal-recipient.py: import dbus.glib
1759         to get the main loop and use glib mainloop instead of gtk so
1760         X doesn't have to be running. Import the decorators module
1761         directly.
1762
1763         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1764         didn't pick up on but are needed to build
1765
1766         * configure.in: upped version to 0.35.2
1767
1768         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1769         added Colin Walters' SELinux API rename patch from head 
1770         s/unix sercurity context/selinux security context/
1771
1772 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1773
1774         * python/Makefile.am: dbus_binding.pxd.in should be included 
1775         in EXTRA_DIST not dbus_binding.pxd
1776         fix up $(srcdir) hopefully for the last time
1777
1778         * NEWS: Update to 0.35.1
1779
1780 2005-07-16  Colin Walters  <walters@verbum.org>
1781
1782         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1783         from bus_driver_handle_get_connection_unix_security_context.  Update for
1784         error usage.
1785         (message_handlers): Update for renames.
1786
1787         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1788         _dbus_string_init failure correctly.
1789         (bus_selinux_append_context): Convert SID to context.  Append it
1790         as a byte array.
1791         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1792         hasn't been called.
1793
1794         * bus/selinux.h: Update prototype.
1795
1796         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1797         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1798
1799 2005-07-15  Colin Walters  <walters@verbum.org>
1800
1801         * doc/TODO: Add note about convenience wrappers.
1802
1803 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1804
1805         * NEWS: Update to 0.35
1806
1807 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1808
1809         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1810         so distcheck doesn't fail
1811
1812         * glib/examples/Makefile.am: Add example-service.xml and 
1813         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1814
1815         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1816         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1817
1818         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1819         compiler looks in the right places during distcheck
1820
1821 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1822
1823         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1824         to fail
1825
1826 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1827
1828         * python/examples/example-service.py,
1829         python/examples/example-signal-emitter.py: Fixed up examples
1830         for API changes
1831
1832 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1833
1834         * python/__init__.py: Upped to version (0,42,0) because of
1835         the API change
1836
1837 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1838
1839         * ChangeLog: fix date in last entry
1840
1841         * configure.in, bus/system.conf.in: add the ability to configure 
1842         the system bus user at compiletime with the --with-dbus-user flag
1843         (patch from Kristof Vansant)
1844
1845 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1846
1847         * bus/dispatch.c, test/test-service.c: Add testcase
1848         for sending messages to oneself (TODO item).
1849
1850         * python/service.py (class Object): Swap ordering of bus_name 
1851         and object_path parameters to better support inheritance.
1852
1853         * doc/dbus-tutorial.xml: change Python docs to reflect change
1854         in parameter ordering and fix the inheritance section.
1855
1856         * doc/TODO: remove sending message to oneself TODO item
1857
1858 2005-07-15  Ross Burton  <ross@openedhand.com>
1859
1860         * glib/dbus-gproxy.c:
1861         Fix a leak when calling methods via the proxy.
1862
1863 2005-07-15  Colin Walters  <walters@verbum.org>
1864
1865         * bus/selinux.c (bus_selinux_append_context): Wrap in
1866         HAVE_SELINUX.
1867
1868 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1869
1870         * python/_dbus.py (Bus::remove_signal_receiver):
1871         don't add a callback to the match if none has been passed in
1872         
1873         * python/matchrules.py (SignalMatchTree::remove): if the rule
1874         being matched does not have a callback treat it as a wildcard
1875         fix matching logic
1876
1877         * doc/dbus-tutorial.xml: Add Python tutorial
1878
1879 2005-07-14  Colin Walters  <walters@verbum.org>
1880
1881         * bus/driver.c
1882         (bus_driver_handle_get_connection_unix_security_context): New function.
1883         (message_handlers): Add.
1884
1885         * bus/selinux.c (bus_selinux_append_context): New function; appends
1886         security context to message.
1887
1888         * bus/selinux.h: Prototype.
1889
1890         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1891
1892 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1893
1894         * bus/activation.c: clean up all tabs to be 8 spaces 
1895         (bus_activation_activate_service): make sure we clean up
1896         if activation fails
1897
1898         * bus/dispatch.c: clean up all tabs to be 8 spaces 
1899         (check_shell_fail_service_auto_start): New function
1900         tests to make sure we get fail properly when trying to auto start a service
1901         with a faulty command line
1902         (check_shell_service_success_auto_start): New function tests to make sure
1903         auto started services get the arguments on the command line
1904
1905         * test/test-shell-service.c: Added service for testing auto-starting with 
1906         command line arguments
1907
1908         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
1909         test/data/valid-service-files/debug-shell-echo-success.service.in:
1910         Added service files for testing auto-starting with command line arguments
1911
1912         * */.cvsignore: added a bunch of generated files to various .cvsignore files
1913
1914 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
1915
1916         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1917         
1918         * dbus/Makefile.am: added new files to build.
1919
1920         * bus/activation.c (bus_activation_activate_service): support
1921         activation commands with parameters.
1922
1923         * test/shell-test.c: added test program for the shell parsing
1924         code.
1925
1926 2005-07-13  David Zeuthen  <davidz@redhat.com>
1927
1928         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1929         64 bit signed and unsigned parameters
1930
1931 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
1932
1933         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1934
1935         * python/service.py (class Name): renamed BusName to make it clearer
1936         what the object is for (a name on the bus)
1937
1938         * python/examples/example-service.py,
1939         python/examples/example-signal-emitter.py: change the Name object to
1940         BusName
1941
1942 2005-07-12  Colin Walters  <walters@verbum.org>
1943
1944         Patch from Jim Gettys <Jim.Gettys@hp.com>.
1945
1946         * tools/dbus-launch.c: Include sys/select.h.
1947
1948 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
1949         * python/dbus_bindings.pyx.in: removed
1950
1951         * python/dbus_bindings.pyx: Added.
1952         - Fixed some memleaks (patch from 
1953         Sean Meiners <sean.meiners@linspireinc.com>)
1954         - Broke out the #include "dbus_h_wrapper.h" and put it in its
1955         own pxd file (Pyrex definition)
1956         - Broke out glib dependancies into its own pyx module
1957         
1958         * python/dbus_bindings.pdx: Added.
1959         - Defines C class Connection for exporting to other modules
1960
1961         * python/dbus_glib_bindings.pyx: Added.
1962         - New module to handle lowlevel dbus-glib mainloop integration
1963
1964         * python/glib.py: Added.
1965         - Registers the glib mainloop when you import this module
1966
1967         * python/services.py: Removed (renamed to service.py)
1968         
1969         * python/service.py: Added.
1970         - (class Server): renamed Name
1971
1972         * python/__init__.py: Bump ro version (0,41,0)
1973         -don't import the decorators or service module
1974         by default.  These now reside in the dbus.service namespace
1975
1976         * python/_dbus.py (Bus::__init__): Add code run the main loop 
1977         setup function on creation 
1978
1979         * python/examples/example-service.py,
1980         python/examples/example-signal-emitter.py: update examples
1981
1982         * python/examples/gconf-proxy-service.py,
1983         python/examples/gconf-proxy-service2.py: TODO fix these up
1984
1985         * doc/TODO: Addition
1986         - Added a Python Bindings 1.0 section
1987         - added "Add match on args or match on details to match rules"
1988
1989
1990 2005-07-12  Colin Walters  <walters@verbum.org>
1991
1992         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
1993         (statemachine-glue.h): 
1994         * glib/examples/Makefile.am (example-service-glue.h) 
1995         (example-signal-emitter-glue.h): 
1996         * glib/Makefile.am (dbus-glib-error-switch.h): 
1997         Add libtool --mode=execute so we use the built library instead
1998         of any installed one.
1999
2000 2005-07-11  Colin Walters  <walters@verbum.org>
2001
2002         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2003         (dbus_g_value_types_init): Remove assertion.
2004         (dbus_g_value_get_g_type, dbus_g_value_open)
2005         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2006         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2007         functions related to DBusGValue.  Now we marshal/demarshal
2008         structures as GValueArray.
2009         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2010         structures.
2011         (signature_iter_to_g_type_array): Don't call
2012         signature_iter_to_g_type_struct.
2013         (signature_iter_to_g_type_struct): Delete.
2014         (dbus_gvalue_to_signature): Delete.
2015         (dbus_gvalue_to_signature): New function with same name as other
2016         one; we can convert structures to signatures.
2017         (demarshal_valuearray): New function.
2018         (get_type_demarshaller): Use it.
2019         (demarshal_recurse): Delete.
2020         (marshal_proxy): New function.
2021         (marshal_map): Warn if we can't determine signature from type.
2022         (marshal_collection_ptrarray): Ditto.
2023         (marshal_collection_array): Ditto.
2024         (get_type_marshaller): Use marshal_valuearray.
2025         (marshal_recurse): Delete.
2026         (_dbus_gvalue_test): Add some tests.
2027
2028         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2029         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2030         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2031         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2032         (dbus_g_value_free): Remove prototypes.
2033
2034         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2035         G_TYPE_VALUE_ARRAY.
2036
2037         * glib/examples/example-service.c:
2038         * glib/examples/example-client.c: Implement GetTuple.
2039
2040         * test/glib/test-dbus-glib.c:
2041         * test/glib/test-service-glib.c:
2042         * test/glib/test-service-glib.xml: Add structure tests.
2043
2044 2005-07-10  Colin Walters  <walters@verbum.org>
2045
2046         * doc/TODO: Knock off some GLib items with this patch.
2047
2048         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2049         (_dbus_gvalue_signals_error): New functions.
2050
2051         * glib/dbus-gvalue-utils.h: Prototype them.
2052
2053         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2054         and change to not output const/retval flags for input args.  All
2055         callers updated.
2056         (invoke_object_method): Refactor to handle return values.  Add
2057         some more comments in various places.  Remove debug g_print.
2058
2059         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2060
2061         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2062         Handle G_TYPE_NONE.
2063         (compute_gsignature): New function; refactored from code from
2064         compute_marshaller and compute_marshaller_name.  Enhance to
2065         handle return values and async ops more cleanly.  Update for
2066         async ops returning NONE instead of BOOLEAN.
2067         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2068         and output appropriate string.
2069         (generate_glue): Handle return value annotation.  Also don't dump
2070         constness flag for input arguments.
2071
2072         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2073         files shared between installed library and utilities.
2074         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2075         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2076         binding tool can access gtype utility functions.
2077
2078         * test/glib/test-service-glib.c: 
2079         * test/glib/test-service-glib.xml: 
2080         * test/glib/test-dbus-glib.c: Add some tests for return values.
2081
2082 2005-07-09  Colin Walters  <walters@verbum.org>
2083
2084         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2085         argument if available, not method.
2086
2087         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2088         (invoke_object_method): First, remove some redundant
2089         GValues (object_value, error_value) in favor of working on
2090         array directly.  Second, rework constness to be less buggy.
2091         Now we iterate directly over the argument metadata instead
2092         of parallel iterating over output signature and metadata.
2093
2094         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2095
2096         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2097         annotation on input args.
2098         
2099 2005-07-09  Colin Walters  <walters@verbum.org>
2100
2101         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2102         Define.
2103
2104         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2105         annotation.
2106
2107         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2108         (method_dir_signature_from_object_info): Handle arg_iterate change.
2109         (write_interface): Ditto.
2110         (lookup_object_info): Don't barf if format_version is > 0.
2111         (invoke_object_method): Handle arg constness.
2112
2113         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2114         (arg_info_new): Create.
2115         (arg_info_unref): Destroy.
2116         (arg_info_get_annotations, arg_info_get_annotation) 
2117         (arg_info_add_annotation): New functions.
2118
2119         * glib/dbus-gidl.h: Prototype them.
2120
2121         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2122         args, disallow them in properties.
2123         (parse_annotation): Handle arg annotations.
2124
2125         * test/glib/test-service-glib.xml: 
2126         * test/glib/test-service-glib.c: Update to make some methods
2127         const.
2128
2129 2005-07-08  Colin Walters  <walters@verbum.org>
2130
2131         * test/glib/test-service-glib.xml: 
2132         * test/glib/test-service-glib.c:
2133         * test/glib/test-dbus-glib.c: Test a{sv}.
2134
2135         * glib/examples/statemachine/statemachine.c:
2136         * glib/examples/statemachine/statemachine-server.c:
2137         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2138         add progress bar, etc.
2139
2140         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2141         needed anymore due to generic array/map marshalling.
2142         (dbus_g_value_types_init): Don't register basic arrays or the
2143         string/string hash.
2144         (dbus_gtype_from_signature_iter): Don't try to recurse into
2145         variants.
2146         (dbus_gtype_to_signature): Check collection/map before type
2147         metadata.
2148         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2149         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2150         generic map creation/append functions instead of hash table
2151         specifically.
2152         (get_type_demarshaller): Handle maps.
2153         (demarshal_collection): Dispatch on collection type to either
2154         demarshal_collection_ptrarray or demarshal_collection_array.
2155         (get_type_marshaller): Handle maps.
2156         (marshal_collection): Dispatch collection type to either
2157         marshal_collection_ptrarray or marshal_collection_array.
2158         (_dbus_gvalue_test): New test.
2159
2160         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2161         (hash_free_from_gtype): Use it to free GValues.
2162         (hashtable_append): New function.
2163         (ptrarray_append): Fix prototype.
2164         (slist_append): Ditto.
2165         (_dbus_gvalue_utils_test): Extend tests.
2166
2167         * glib/dbus-gtype-specialized.c
2168         (dbus_g_type_specialized_init_append): Renamed from
2169         dbus_g_type_specialized_collection_init_append.  Remove const from
2170         value, since we steal it.
2171         (dbus_g_type_specialized_map_append): New function.
2172
2173         * glib/dbus-gtype-specialized.h: Update prototypes.
2174         Add DBusGTypeSpecializedMapAppendFunc.
2175
2176         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2177         _dbus_gvalue_test.
2178         
2179         * glib/dbus-gtest.h: Prototype it.
2180
2181 2005-07-08  Ross Burton  <ross@openedhand.com>
2182
2183         * dbus/dbus-glib.h:
2184         Add DBysGAsyncData for the async bindings.
2185
2186         * glib/dbus-binding-tool-glib.c:
2187         Re-enable the async bindings.
2188
2189         * test/glib/test-dbus-glib.c:
2190         Add a test for the generated async bindings.
2191
2192 2005-07-08  Colin Walters  <walters@verbum.org>
2193
2194         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2195         connection concept.
2196         
2197 2005-07-08  Colin Walters  <walters@verbum.org>
2198         
2199         * tools/Makefile.am: Kill of print-introspect in favor of using
2200         dbus-send --print-reply=literal.
2201
2202         * test/glib/test-service-glib.xml: 
2203         * test/glib/test-service-glib.c (my_object_get_objs): New test
2204         for "ao".
2205
2206         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2207         (main): Test GetObjs.
2208
2209         * glib/examples/statemachine/Makefile.am:
2210         * glib/examples/statemachine/sm-marshal.list:
2211         * glib/examples/statemachine/statemachine-client.c:
2212         * glib/examples/statemachine/statemachine-server.c:
2213         * glib/examples/statemachine/statemachine-server.xml:
2214         * glib/examples/statemachine/statemachine.c:
2215         * glib/examples/statemachine/statemachine.h:
2216         * glib/examples/statemachine/statemachine.xml:
2217
2218         New example.
2219
2220         * glib/examples/example-service.c (main): Move invocation
2221         of dbus_g_object_type_install_info earlier, to emphasize it
2222         should only be done once.
2223
2224         * glib/examples/example-signal-emitter.c (main): Ditto.
2225
2226         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2227
2228         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2229         (dbus_gvalue_marshal): Update prototypes.
2230
2231         * glib/dbus-gvalue.c: Update all marshalling functions to take
2232         const GValue instead of GValue.
2233         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2234         types.
2235         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2236         change.
2237         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2238         Return a newly-allocated string.
2239         (demarshal_proxy, demarshal_object_path, demarshal_object)
2240         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2241         we get the wrong types from message.
2242         (get_type_demarshaller): New function, extracted from
2243         dbus_gvalue_demarshal.
2244         (demarshal_collection): New function, demarshals generic
2245         collection.
2246         (dbus_gvalue_demarshal): Just invoke result of
2247         get_type_demarshaller.  Throw error if we don't have one.
2248         (marshal_garray_basic): Abort on OOM.
2249         (get_type_marshaller): New function, extracted from
2250         dbus_gvalue_marshal.
2251         (collection_marshal_iterator, marshal_collection): New functions;
2252         implements generic marshalling for an iteratable specialized
2253         collection.
2254         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2255
2256         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2257         G_TYPE_STRING.
2258         (ptrarray_value_from_gvalue): Ditto.
2259         (ptrarray_append, ptrarray_free): New functions.
2260         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2261         (slist_append, slist_end_append, slist_free): New functions.
2262         (dbus_g_type_specialized_builtins_init): Add append fuctions
2263         for GPtrArray and GSList.  Register GSList.
2264         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2265
2266         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2267         New.
2268         (dbus_g_type_specialized_collection_init_append)
2269         (dbus_g_type_specialized_collection_append)
2270         (dbus_g_type_specialized_collection_end_append): Prototype.
2271         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2272         end_append_func.
2273
2274         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2275         (dbus_g_type_specialized_collection_append) 
2276         (dbus_g_type_specialized_collection_end_append): New functions.
2277         (dbus_g_type_map_value_iterate): Take const GValue.
2278         (dbus_g_type_collection_value_iterate): Ditto.
2279
2280         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2281         _dbus_gvalue_utils_test.
2282         
2283         * glib/dbus-gtest.h: Prototype it.
2284
2285         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2286         using uninitialized owner_list.
2287         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2288         public API.
2289         (dbus_g_proxy_end_call_internal): Update to use error set
2290         from dbus_gvalue_demarshal instead of setting it here.
2291         (dbus_g_proxy_begin_call): Move return_if_fail here.
2292
2293         * glib/dbus-gobject.c (write_interface): Update for
2294         dbus_gtype_to_signature returning new string.
2295
2296         * configure.in: Add glib/examples/statemachine.
2297
2298 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2299
2300         * configure.in: Add a configure option, --with-console-auth-dir
2301         
2302         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2303         new setting.  Patch from Kay Sievers.
2304
2305 2005-07-06  Colin Walters  <walters@verbum.org>
2306
2307         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2308         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2309         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2310         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2311         Delete in favor of dbus_g_proxy_begin_call and
2312         dbus_g_proxy_cancel_call.
2313         (DBusGProxyCall, DBusGProxyCallNotify): New.
2314         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2315         data, and destroy function.  This replaces
2316         dbus_g_pending_call_set_notify.
2317         (dbus_g_proxy_cancel_call): Prototype.
2318         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2319
2320         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2321         pending_calls map.
2322         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2323         internal proxy for calls to the bus. Remove
2324         pending_nameowner_calls, now the internal proxy keeps track.
2325         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2326         pending_nameowner_calls.
2327         (got_name_owner_cb): Update prototype, and use
2328         dbus_g_proxy_end_call.
2329         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2330         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2331         favor of using internal proxy.
2332         (dbus_g_proxy_manager_unregister): Update to use
2333         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2334         (dbus_g_proxy_init): Initialize pending calls map.
2335         (dbus_g_proxy_constructor): New.
2336         (dbus_g_proxy_class_init): Add get/set property functions,
2337         constructor, and add NAME, PATH, and INTERFACE properties.
2338         (cancel_pending_call): New function.
2339         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2340         cancel them.
2341         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2342         (GPendingNotifyClosure): New structure.
2343         (d_pending_call_notify, d_pending_call_free): Moved here from
2344         dbus-glib.c.
2345         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2346         ordering.
2347         (manager_begin_bus_call): New internal function for talking to
2348         internal bus proxy.
2349         (dbus_g_proxy_new): Construct object using GObjet properties.
2350         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2351         Create closure of same, and insert call into map of pending calls.
2352         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2353         call.  Look up pending call in current set.  Remove it when we've
2354         completed.
2355         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2356         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2357         and destroy function directly.
2358         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2359         (dbus_g_proxy_call): Invoke with NULL callback.
2360         (dbus_g_proxy_cancel_call): New function, replaces
2361         dbus_g_pending_call_cancel.
2362
2363         * glib/dbus-gparser.c (validate_signature): Fix call to
2364         dbus_set_g_error.
2365
2366         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2367         New quark for attaching metadata to GType.
2368         (info_hash): Delete.
2369         (lookup_object_info): Look up using quark.
2370         (dbus_g_object_type_install_info): Check that a type is classed,
2371         not that it's an object.  Also just install type data using quark
2372         instead of using global hash.
2373
2374         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2375         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2376         (GPendingNotifyClosure): Delete.
2377         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2378         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2379
2380         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2381         client method generation until we can fix it...
2382         
2383         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2384         (load_from_service_thread_func): Ditto.
2385
2386         * tools/dbus-names-model.c (struct NamesModel): Hold
2387         DBusGProxyCall.
2388         (have_names_notify): Update prototype, use
2389         dbus_g_proxy_cancel_call.
2390         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2391
2392         * tools/dbus-monitor.c (filter_func): Update for print_message
2393         API change.
2394
2395         * test/glib/test-dbus-glib.c: Add more tests for async
2396         invocations.  Update many begin_call/end_call pairs to just use
2397         dbus_g_proxy_call.
2398
2399         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2400         allows us to dump print-introspect.c.
2401
2402         * tools/dbus-print-message.h (print_message): Add literal argument
2403         to print_message which is intended to allow printing arguments without
2404         metadata like "string=".
2405
2406         * tools/dbus-print-message.c (print_iter): Add literal argument.
2407         (print_message): Allow printing string messages literally.
2408
2409 2005-07-05  Colin Walters  <walters@verbum.org>
2410
2411         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2412         Remove value refcount leak, original patch from Jorn Baayen
2413         <jorn@openedhand.com>.  Also remove useless extra value in favor
2414         of prepending to value array directly.
2415
2416 2005-07-02  Colin Walters  <walters@verbum.org>
2417
2418         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2419
2420 2005-07-01  Colin Walters  <walters@verbum.org>
2421
2422         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2423         
2424         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2425         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2426         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2427         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2428
2429 2005-06-30  Colin Walters  <walters@verbum.org>
2430
2431         * test/glib/test-dbus-glib.c:
2432         * test/glib/test-service-glib.c:
2433         * test/glib/test-service-glib.xml: Update tests for new error
2434         setting bits, also add async tests (patch from Ross Burton).
2435
2436         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2437         DBUS_GLIB_THREADS_LIBS.
2438
2439         * glib/dbus-gproxy.c (get_name_owner)
2440         (dbus_g_pending_call_end_valist): Ditto.
2441
2442         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2443         domain (GQuark) to DBusGErrorInfo.  
2444         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2445         quark in error_metadata.  Take message interface as default
2446         error message interface.
2447         (gerror_to_dbus_error_message): Pass message interface.
2448         (dbus_set_g_error): Resurrected.
2449         (dbus_g_error_info_free): New function.
2450         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2451         of _peek to actually create the object class if it hasn't been
2452         created yet.
2453         (dbus_g_error_domain_register): New function.
2454
2455         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2456
2457         * glib/dbus-gparser.c (validate_signature): Ditto.
2458
2459         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2460         (dbus_g_error_domain_register): Prototype.
2461
2462         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2463         Update tests.
2464
2465 2005-06-29  Colin Walters  <walters@verbum.org>
2466
2467         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2468         DBUS_TYPE_G_OBJECT_PATH.
2469
2470         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2471         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2472         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2473         (dbus_g_object_path_get_g_type): New function.
2474         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2475         to DBUS_TYPE_G_OBJECT_PATH by default.
2476         (demarshal_proxy): Remove unused name variable.
2477         (demarshal_object_path, marshal_object_path): New functions.
2478         (demarshal_proxy_array, marshal_proxy_array): Delete.
2479         
2480         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2481         DBUS_TYPE_G_OBJECT_PATH to char *.
2482         (dbus_g_type_get_lookup_function): Map builtin
2483         DBUS_TYPE_G_OBJECT_PATH.
2484
2485         * test/glib/test-dbus-glib.c
2486         * test/glib/test-service-glib.c (my_object_objpath): 
2487         Adapt tests to new object path marshalling.
2488
2489 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2490
2491         * configure.in: force check for Python >= 2.4
2492
2493 2005-06-29  Colin Walters  <walters@verbum.org>
2494         
2495         Patch from Ross Burton <ross@openedhand.com>
2496         
2497         * glib/dbus-gobject.c (invoke_object_method): Unset object
2498         value in all cases, not only in async case.
2499
2500 2005-06-29  Colin Walters  <walters@verbum.org>
2501
2502         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2503         name_call for keeping track of any outgoing GetNameOwner call.
2504         Also add for_owner and associated.
2505         (struct _DBusGProxyManager): Add owner_names, which is hash table
2506         that maps a base name to a list of names it owns (that we're
2507         interested in).  Add pending_nameowner_calls which is a list of
2508         all outstanding GetNameOwner; avoids us having to iterate over
2509         every proxy.  Add unassociated_proxies which keeps track of name
2510         proxies with no associated name owner.
2511         (dbus_g_proxy_manager_unref): Destroy owner_names.
2512         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2513         name refcounts.
2514         (find_name_in_info, name_owner_foreach)
2515         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2516         (dbus_g_proxy_manager_monitor_name_owner)
2517         (dbus_g_proxy_manager_unmonitor_name_owner)
2518         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2519         New functions; they manipulate the owner_names mapping.
2520         (got_name_owner_cb): New function.
2521         (get_name_owner): New function, extracted from
2522         dbus_g_proxy_new_for_name_owner.
2523         (dbus_g_proxy_manager_register): For now we need to keep track of
2524         all NameOwnerChanged.  Also if the proxy is for a name, if we
2525         don't already know the name owner, queue a new GetNameOwner
2526         request and add it to our list of unassociated proxies.  Otherwise
2527         inc the refcount.
2528         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2529         cancel any pending GetNameOwner call, etc.
2530         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2531         the owner_names mapping to look up the current names for the
2532         signal source, and dispatch to any proxies for that name.
2533         (dbus_g_proxy_new): Initialize new members.
2534         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2535         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2536         (dbus_g_pending_call_end_valist): New function, extracted from
2537         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2538         but want to use the GLib infrastructure.  Also note how many
2539         arguments in reply were over.
2540         (dbus_g_pending_call_end): New function, just call
2541         dbus_g_pending_call_end_valist.
2542         (dbus_g_proxy_end_call_internal): Just call
2543         dbus_g_pending_call_end_valist.
2544
2545         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2546         of builtin marshaller for STRING_STRING_STRING.
2547
2548         * test/glib/test-dbus-glib.c: 
2549         * test/glib/test-service-glib.c:
2550         * test/glib/test-service-glib.xml:
2551         Extend tests to cover name proxies, destruction of owner proxies,
2552         etc.
2553         
2554         * glib/examples/example-signal-recipient.c
2555         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2556         
2557         * tools/dbus-send.c (main): Print D-BUS error name in addition
2558         to message.
2559
2560 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2561
2562         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2563         cmessage_function_handler): Patch from 
2564         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2565         by using the Py_GILState_Ensure/Release to synchronize with the
2566         python runtime.
2567         
2568 2005-06-28  Ray Strode  <rstrode@redhat.com>
2569
2570         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2571         babysitter helper process on last unref, bug #2813.
2572
2573 2005-06-27  Colin Walters  <walters@verbum.org>
2574
2575         * test/glib/test-dbus-glib.c: 
2576         * test/glib/test-service-glib.c:
2577         * test/glib/test-service-glib.xml:
2578         Test hash table signal emitting.
2579
2580         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2581         types to their fundamental basis types, since this is what
2582         marshallers operate on.  Also add an entry for VOID__BOXED.
2583         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2584
2585 2005-06-26  Havoc Pennington  <hp@redhat.com>
2586
2587         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2588         from Don Park
2589
2590 2005-06-26  Colin Walters  <walters@verbum.org>
2591
2592         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2593         (dbus_g_error_set): New public function from its ashes; used by
2594         both service-side method implementation and GLib bindings
2595         internals.
2596         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2597         (_dbus_glib_test): Add some tests.
2598
2599         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2600
2601         * test/glib/test-service-glib.c (my_object_throw_error): Use
2602         dbus_g_error_set.
2603
2604         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2605         errors thrown by dbus_g_error_set.
2606
2607         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2608
2609         * glib/dbus-gparser.c (validate_signature): Ditto.
2610
2611         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2612         (dbus_g_proxy_end_call_internal): Ditto.
2613
2614         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2615         converts DBUS_ERROR_x to DBUS_GERROR_x.
2616         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2617
2618         * doc/TODO: Remove error TODO.
2619
2620         * doc/dbus-tutorial.xml: Update with documentation about error
2621         handling.
2622
2623         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2624         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2625         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2626
2627 2005-06-22  Colin Walters  <walters@verbum.org>
2628         
2629         Patch from Ross Burton <ross@openedhand.com>
2630
2631         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2632
2633 2005-06-20  Colin Walters  <walters@verbum.org>
2634
2635         * configure.in: Add glib/examples.
2636
2637         * glib/Makefile.am: Add examples/
2638
2639         * glib/examples/.cvsignore
2640         * glib/examples/Makefile.am
2641         * glib/examples/example-client.c
2642         * glib/examples/example-service.c
2643         * glib/examples/example-service.xml
2644         * glib/examples/example-signal-emitter.c
2645         * glib/examples/example-signal-emitter.xml
2646         * glib/examples/example-signal-recipient.c:
2647         New files; GLib binding examples, ported from
2648         python/examples.
2649
2650 2005-06-20  Colin Walters  <walters@verbum.org>
2651
2652         * dbus/dbus-glib.h: 
2653         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2654         dbus_g_proxy_call.
2655
2656         * glib/dbus-binding-tool-glib.c: 
2657         * doc/dbus-tutorial.xml: 
2658         * test/glib/test-dbus-glib.c: Update for rename.
2659         
2660 2005-06-20  Colin Walters  <walters@verbum.org>
2661
2662         Patch suggested by Ross Burton <ross@openedhand.com>
2663
2664         * glib/dbus-gobject.c (export_signals): Free signal name.
2665         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2666         memory leak.  Add a bit of documentation.
2667         (dbus_g_method_return_error): Free context, and note we do
2668         so.
2669
2670 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2671
2672         * dbus/dbus-glib.h:
2673         * glib/dbus-gobject.c:
2674         * glib/dbus-gproxy.c:
2675         * glib/dbus-gvalue.c: Predeclare structs as 
2676         typedef struct _Something Something instead of 
2677         typedef struct Something Something, so we can 
2678         redeclare the prototypes. Other GNOME libraries 
2679         do this already.
2680
2681 2005-06-17  Colin Walters  <walters@verbum.org>
2682
2683         * tools/dbus-names-model.c (have_names_notify): Fix call
2684         to dbus_g_proxy_end_call.
2685         
2686 2005-06-17  Colin Walters  <walters@verbum.org>
2687
2688         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2689         spew warnings if we get malformed remote signals.
2690
2691         * glib/dbus-gobject.c (propsig_iterate): New function.
2692         (lookup_object_info): New function, extracted from
2693         lookup_object_and_method.
2694         (introspect_properties, introspect_signals): Delete; these
2695         are merged into write_interface.
2696         (write_interface): Write out signals and properties here;
2697         dump the org.gtk.object stuff and use the interface given
2698         in the introspection data blob.  Also fix up property XML.
2699         (lookup_values): New function.
2700         (introspect_interfaces): Gather a mapping from interface to a
2701         list of its methods, signals, and properties, then write out
2702         each interface.
2703         (lookup_object_and_method): Use lookup_object_info.
2704         (struct DBusGSignalClosure): Add interface.
2705         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2706         we can just use the constant data.
2707         (dbus_g_signal_closure_finalize): Don't free signal name.
2708         (signal_emitter_marshaller): Use interface from signal closure.
2709         (export_signals): Only export signals mentioned in introspection
2710         blob.
2711         (dbus_g_connection_register_g_object): Warn if we have no
2712         introspection data for an object.
2713         (funcsig_equal): Remove unused variable.
2714         (dbus_g_object_register_marshaller): Take varargs instead of
2715         list.
2716         (dbus_g_object_register_marshaller_array): New function,
2717         extracted from old dbus_g_object_register_marshaller.
2718
2719         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2720         signals and property data.
2721         (write_quoted_string): New function, extracted from generate_glue.
2722         (generate_glue): Write signals and properties to introspection
2723         blob.
2724
2725         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2726         exported_signals and exported_properties.
2727         (dbus_g_object_register_marshaller): Update prototype.
2728         (dbus_g_object_register_marshaller_array): Prototype.
2729         
2730         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2731
2732         * test/glib/test-service-glib.c: Add new test signals and method
2733         to emit them.
2734
2735         * test/glib/test-service-glib.xml: Add some test signals.
2736
2737         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2738         and my-object-marshal.h
2739         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2740         my-object-marshal.c.
2741         (my-object-marshal.c, my-object-marshal.h): Implement.
2742
2743         * test/glib/.cvsignore: Update.
2744
2745         * doc/TODO: Remove two GLib TODO items fixed by this
2746         patch.
2747
2748 2005-06-16  Colin Walters  <walters@verbum.org>
2749
2750         * doc/TODO: Update for GLib bindings.
2751         
2752 2005-06-16  Colin Walters  <walters@verbum.org>
2753
2754         * glib/dbus-binding-tool-glib.c:
2755         * glib/dbus-gobject.c:
2756         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2757         from Ross Burton, for his GLib bindings work.
2758
2759 2005-06-16  Colin Walters  <walters@verbum.org>
2760
2761         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2762         to iterate instead of walking to G_TYPE_INVALID.
2763
2764         Patch based on a patch from Ryan Gammon.
2765
2766 2005-06-16  Colin Walters  <walters@verbum.org>
2767
2768         * bus/bus.c (bus_context_new): Set parser to NULL
2769         after we unref it (Patch from Chris Boscolo, #2174).
2770         
2771 2005-06-16  Colin Walters  <walters@verbum.org>
2772
2773         * python/dbus_bindings.pyx.in: Import size_t,
2774         __int64_t, __uint64_t, and __signed.
2775
2776         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2777         Define cmsg struct, output it.
2778         (_dbus_read_credentials_unix_socket):
2779         Use cmsg struct.
2780         
2781         Patch from Joe Markus Clarke for FreeBSD support.
2782         
2783 2005-06-16  Colin Walters  <walters@verbum.org>
2784
2785         * tools/dbus-send.c (append_array): Use strtok.
2786         (append_dict): New function.
2787         (type_from_name): New function, extracted from main.
2788         (main): Handle sending dicts.
2789
2790         * tools/dbus-print-message.c (print_iter): Print dict
2791         entries.
2792         
2793 2005-06-16  Colin Walters  <walters@verbum.org>
2794
2795         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2796         values as the empty string (#2948).
2797         
2798 2005-06-16  Colin Walters  <walters@verbum.org>
2799
2800         * dbus/Makefile.am:
2801         * mono/doc/Makefile.am:
2802         * test/glib/Makefile.am:
2803
2804         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2805
2806 2005-06-16  Colin Walters  <walters@verbum.org>
2807
2808         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2809         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2810
2811         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2812         Increment pointer after swapping fixed array.  Add assertion
2813         for array length.
2814                 
2815 2005-06-15  Colin Walters  <walters@verbum.org>
2816
2817         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2818         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2819         
2820 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2821
2822         * NEWS: Update to 0.34
2823
2824 2005-06-15  David Zeuthen  <davidz@redhat.com>
2825
2826         * configure.in (LT_CURRENT): Revert back to 1 as the library
2827         hasn't changed and we've certainly not committed to protocol
2828         stability yet.  All this does is to break ABI. See commit note
2829         from hp@redhat.com 2005-05-05 for details.
2830         
2831 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2832
2833         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2834         (_dbus_connection_run_builtin_filters): New method
2835         (dbus_connection_dispatch): Run the builtin filters which in turn
2836         runs the peer filter which handles Ping messages.
2837
2838         * doc/TODO: 
2839          - Ping isn't handled: This patch fixes it
2840          
2841          - Add a test case for the Ping message: added TODO item
2842
2843 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2844
2845         * dbus/dbus-message.c:
2846         (dbus_message_has_path): New method
2847         (dbus_message_has_interface): New method
2848         (dbus_message_has_member): New method
2849
2850         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2851         New method
2852
2853         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
2854         the keyring directory is private to the user
2855
2856         * doc/TODO:
2857          - The convenience functions in dbus-bus.h should perhaps have
2858          the signatures that they would have if they were autogenerated
2859          stubs. e.g. the acquire service function. We should also evaluate
2860          which of these functions to include, in light of the fact that
2861          GLib/Qt native stubs will probably also exist.: Punted
2862
2863          - add dbus_message_has_path(), maybe has_member/interface:
2864          fixed in this patch
2865
2866          - in dbus-keyring.c, enforce that the keyring dir is not
2867          world readable/writable: Fixed in this patch
2868
2869 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2870
2871         * dbus/dbus-marshal-validate.h: Added a new validation
2872         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
2873         out of memory errors when validating signitures
2874
2875         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2876         in places where we previously used DBUS_VALID and a FALSE return 
2877         value to indicate OOM
2878         
2879         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2880         Use a stack to track the number of elements inside containers.  The 
2881         stack values are then used to validate that dict entries have only two
2882         elements within them.
2883         (validate_body_helper): check the reason for failure when validating
2884         varients
2885         
2886         * dbus/dbus-message.c (load_message): use 
2887         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
2888         DBUS_VALID and a FALSE return value to indicate OOM
2889
2890         * doc/TODO: remove "- validate dict entry number of fields" as this
2891         patch fixes it
2892
2893 2005-06-14  David Zeuthen  <davidz@redhat.com>
2894
2895         * bus/bus.c (process_config_every_time): Drop existing conf-dir
2896         watches (if applicable) and add new watches
2897
2898         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2899         (main): Setup SIGIO signal handler if using D_NOTIFY
2900
2901         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2902
2903         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2904         (merge_included): Also merge conf_dirs list
2905         (bus_config_parser_unref): Clear conf_dirs list
2906         (include_dir): Add directory to conf_dirs list
2907         (bus_config_parser_get_conf_dirs): New function
2908
2909         * bus/dir-watch.[ch]: New files
2910
2911         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2912
2913         * configure.in: Add checks for D_NOTIFY on Linux
2914
2915 2005-06-14  Colin Walters  <walters@verbum.org>
2916
2917         * glib/dbus-binding-tool-glib.c:
2918         * glib/dbus-gobject.c:
2919         * glib/dbus-gvalue.c: Fix indentation and brace style.
2920         
2921 2005-06-14  Ross Burton <ross@openedhand.com>.
2922
2923         * glib/dbus-glib.h: Make DBusGMethodInvocation
2924         a private structure.  Rearrange prototypes a bit.
2925         
2926         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2927         documentation for first_arg_type.
2928         
2929         * glib/dbus-gobject.c: Move DBusGMethodInvocation
2930         here, add documentation.  Move dbus_g_method_return
2931         and dbus_g_method_return_error into public API
2932         section.
2933
2934 2005-06-14  Colin Walters  <walters@verbum.org>
2935
2936         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2937         Add missing return statements, noticed by Ross Burton.
2938         
2939 2005-06-13  Ross Burton <ross@openedhand.com>.
2940
2941         * glib/dbus-gobject.c: Handle errors on message
2942         demarshalling by sending error message back.
2943         * glib/dbus-gvalue.c: Initialize return variables.
2944
2945 2005-06-13  Colin Walters  <walters@verbum.org>
2946
2947         * glib/Makefile.am: Fix thinko in last patch.
2948
2949 2005-06-13  Colin Walters  <walters@verbum.org>
2950
2951         * glib/Makefile.am: Move dbus-gtype-specialized.c
2952         and dbus-gtype-specialized.h into a _HEADERS variable,
2953         install them.
2954
2955 2005-06-12  Colin Walters  <walters@verbum.org>
2956
2957         Async signals and various bugfixes and testing by
2958         Ross Burton <ross@openedhand.com>.
2959
2960         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2961         (dbus_gvalue_genmarshal_name_from_type)
2962         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2963         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2964         (dbus_g_value_types_init, dbus_gtype_from_signature)
2965         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2966         (dbus_gtypes_from_arg_signature): New function prototypes.
2967         (dbus_gvalue_demarshal): Take context and error arguments.
2968         (dbus_gvalue_demarshal_variant): New function.
2969         (dbus_gvalue_demarshal_message): New function.
2970         (dbus_gvalue_store): Delete.
2971
2972         * glib/dbus-gvalue.c:
2973
2974         File has been almost entirely rewritten; now we special-case
2975         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2976         hash tables correctly, etc.  Full support for recursive values
2977         is not yet complete.
2978
2979         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2980         argument of signal to G_TYPE_POINTER since we now pass a
2981         structure.
2982         (lookup_g_marshaller): Delete in favor of
2983         _dbus_gobject_lookup_marshaller.
2984         (marshal_dbus_message_to_g_marshaller): Use
2985         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2986         to handle remote signal callbacks.
2987         (dbus_g_proxy_new_from_proxy): New function; creates a new
2988         DBusGProxy by copying an existing one.
2989         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2990         (dbus_g_proxy_get_path): New functions.
2991         (dbus_g_proxy_marshal_args_to_message): New function;
2992         factored out of existing code.
2993         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2994         from a varargs array.
2995         (dbus_g_proxy_begin_call_internal): New function.
2996         (dbus_g_proxy_end_call_internal): New function.
2997         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2998         as arguments; simply invoke dbus_g_proxy_begin_call_internal
2999         after collecting args into value array.
3000         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3001         invoke dbus_g_proxy_end_call_internal.
3002         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3003         end_call_internal.
3004         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3005         types.
3006         (array_free_all): New function.
3007         (dbus_g_proxy_add_signal): Take GTypes.
3008
3009         * glib/dbus-gobject.h:
3010         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3011         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3012         Prototype.
3013
3014         * glib/dbus-gobject.c: Add a global marshal_table hash which
3015         stores mappings from type signatures to marshallers.  Change lots
3016         of invocations of dbus_gtype_to_dbus_type to
3017         dbus_gtype_to_signature.
3018         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3019         (introspect_signals): Fix test for query.return_type.
3020         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3021         (invoke_object_method): Many changes.  Handle asynchronous
3022         invocations.  Convert arguments with
3023         dbus_gvalue_demarshal_message.  Handle errors.  Use
3024         DBusSignatureIter instead of strlen on args. Handle all arguments
3025         generically.  Special-case variants.
3026         (dbus_g_method_return, dbus_g_method_return_error): New function.
3027         (DBusGSignalClosure): New structure, closes over signal
3028         information.
3029         (dbus_g_signal_closure_new): New function.
3030         (dbus_g_signal_closure_finalize): New function.
3031         (signal_emitter_marshaller): New function; is special marshaller
3032         which emits signals on bus.
3033         (export_signals): New function; introspects object signals and
3034         connects to them.
3035         (dbus_g_object_type_install_info): Take GType instead of
3036         GObjectClass.
3037         (dbus_g_connection_register_g_object): Invoke export_signals.
3038         (dbus_g_connection_lookup_g_object): New function.
3039         (DBusGFuncSignature) New structure; used for mapping type
3040         signatures to marshallers.
3041         (funcsig_hash): New function; hashes DBusGFuncSignature.
3042         (funcsig_equal): New function; compares DBusGFuncSignature.
3043         (_dbus_gobject_lookup_marshaller): New function.
3044         (dbus_g_object_register_marshaller): New function; used to
3045         register a marshaller at runtime for a particular signature.
3046
3047         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3048
3049         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3050         which notes a server method implementation should be
3051         asynchronous.
3052
3053         * glib/dbus-binding-tool-glib.c
3054         (dbus_binding_tool_output_glib_server): Call
3055         dbus_g_value_types_init.
3056         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3057         variants specially.
3058         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3059         of a lookup function.
3060         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3061         (write_untyped_out_args): New method; write output arguments.
3062         (write_formal_declarations_for_direction): Function for
3063         writing prototypes.
3064         (write_formal_parameters_for_direction): Function for
3065         writing implementations.
3066         (write_typed_args_for_direction): Function for writing
3067         arguments prefixed with GTypes.
3068         (write_async_method_client): Write out async version
3069         of method.
3070
3071         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3072         (dbus_g_type_get_marshal_name): Move mapping from GType
3073         to marshal name into here.
3074         (dbus_g_type_get_c_name): Move into here.
3075         (compute_marshaller): Convert signature to type with
3076         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3077         (compute_marshaller_name): Ditto.
3078         (compute_marshaller): Handle async signal annotations.
3079         (gather_marshallers): Return if we don't have a known
3080         prefix.
3081         (generate_glue): Collect introspection blob here, and
3082         write all of the blob at the end.  This allows an object
3083         with multiple interfaces to work.
3084         Mark async methods in introspection blob.
3085
3086         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3087         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3088         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3089
3090         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3091         avoids people accidentally using DBUS_TYPE_* which should
3092         not be necessary anymore.
3093         Do include dbus-gtype-specialized.h, which are utilities
3094         for GLib container types.
3095         Add various #defines for types such as
3096         DBUS_TYPE_G_BOOLEAN_ARRAY.
3097         (DBusGValueIterator, DBusGValue): Define, not fully used
3098         yet.
3099         (dbus_g_value_get_g_type): Type for recursive value.
3100         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3101         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3102         (dbus_g_value_free): Prototypes.
3103         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3104         (dbus_g_proxy_set_interface): Prototype.
3105         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3106         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3107         types.
3108         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3109         Accessors.
3110         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3111         doing async invocations.
3112         (dbus_g_method_return, dbus_g_method_return_error):
3113         Prototypes.
3114         * doc/dbus-tutorial.xml: Update GLib section.
3115         
3116         * tools/dbus-viewer.c (load_child_nodes): Update
3117         for new invocation type of dbus_g_proxy_end_call.
3118         (load_from_service_thread_func): Ditto.
3119
3120         * tools/print-introspect.c (main): Ditto.
3121
3122         * tools/dbus-names-model.c (have_names_notify)
3123         (names_model_reload, names_model_set_connection)
3124         Use GTypes.
3125
3126         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3127         needed since Python bindings use GLib bindings.
3128
3129         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3130         Add --prefix argument.
3131
3132         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3133         unneeded --ignore-unsupported arg.
3134         
3135         * test/glib/test-service-glib.c: 
3136         * test/glib/test-service-glib.xml:
3137         * test/glib/test-dbus-glib.c: Add many more tests.
3138
3139 2005-06-06  David Zeuthen  <davidz@redhat.com>
3140
3141         * doc/TODO: Add item about need to remove deprecated functions.
3142
3143         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3144
3145         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3146         to repair the ABI which was broken with the last commit.
3147
3148 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3149
3150         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3151         (dbus_connection_disconnect): renamed to dbus_connection_close 
3152         for API symmetry with dbus_connection_open
3153         (_dbus_connection_open_internal): 
3154         s/dbus_connection_disconnect/dbus_connection_close
3155
3156         * dbus/dbus-bus.c (dbus_bus_get):
3157         s/dbus_connection_disconnect/dbus_connection_close
3158
3159         * bus/connection.c (bus_connections_unref, 
3160         bus_connections_setup_connection, bus_connections_expire_incomplete):
3161         s/dbus_connection_disconnect/dbus_connection_close
3162
3163         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3164         kill_client_connection_unchecked, check_hello_connection):
3165         s/dbus_connection_disconnect/dbus_connection_close
3166
3167         * bus/bus.c (new_connection_callback):
3168         s/dbus_connection_disconnect/dbus_connection_close
3169
3170         * tools/dbus-send.c (main):
3171         s/dbus_connection_disconnect/dbus_connection_close
3172
3173         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3174         s/dbus_connection_disconnect/dbus_connection_close
3175         
3176         * test/test-service.c (path_message_func, filter_func):
3177         s/dbus_connection_disconnect/dbus_connection_close
3178         
3179         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3180         
3181 2005-05-25  Colin Walters  <walters@verbum.org>
3182
3183         * dbus/dbus-protocol.h: Move various bus service #defines such
3184           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3185           dbus/dbus-shared.h.
3186         * dbus/dbus-shared.h: Various defines moved here.
3187         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3188
3189 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3190
3191         * python/__init__.py: Python bindings deserve a minor version
3192         update.  Upped to (0, 40, 2)
3193
3194 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3195
3196         * python/decorators.py: add explicitly_pass_message decorator
3197         for passing in the dbus message as keyword for edge case signal
3198         handling
3199
3200         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3201         to conform with what dbus expects for match rules
3202         (SignalMatchRule.execute): add the dbus message as a keyword
3203         if the signal handler has requested it
3204
3205         * python/examples/example/signal-recipient.py: added some more
3206         examples on how to hook up to signals
3207
3208 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3209
3210         * python/decorators.py: import dbus_bindings
3211
3212         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3213         SignalMatchNode): new classes that implement wildcard signal
3214         callback matching using a tree lookup. Heavily modified from a
3215         patch sent by Celso Pinto (fd.o bug #3241)
3216
3217         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3218         use new match classes to handle signals.
3219
3220 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3221         
3222         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3223
3224 2005-05-18  Havoc Pennington  <hp@redhat.com>
3225
3226         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3227         gettext. Not really worth requiring yet perhaps, but any
3228         production quality 1.0 would require it so we should go ahead and
3229         get things set up. We do have a couple token calls to
3230         bindtextdomain in the code already.
3231
3232 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3233
3234         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3235         when using recursive g_main_loops
3236
3237         * python/_dbus.py (class Bus): add the ProxyObjectClass
3238         alias for ProxyObject to make it easier for the Twisted 
3239         networking framework to integrate dbus.
3240
3241         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3242         alias for ProxyMethod to make it easier for the Twisted 
3243         networking framework to integrate dbus. 
3244
3245 2005-05-11  Ross Burton  <ross@openedhand.com>
3246
3247         * glib/dbus-glib-tool.c: Add --prefix argument.
3248         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3249         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3250         Add prefix argument.
3251         (generate_glue): Pass prefix argument down.
3252         (dbus_binding_tool_output_glib_server): Pass prefix to
3253         glib-genmarshal.
3254         
3255 2005-05-11  Colin Walters  <walters@verbum.org>
3256
3257         * tools/dbus-send.c (append_array): New function.
3258         (append_arg): Broken out from main.
3259         (main): Add cheesy hack to send arrays and variants.
3260         (usage): Update.
3261         * tools/dbus-print-message.c (print_iter): Broken out
3262         from main.
3263
3264 2005-05-11  Colin Walters  <walters@verbum.org>
3265
3266         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3267         New function, returns signature string for signature iter.
3268         * dbus/dbus-signature.h: Prototype it.
3269         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3270         New function, returns signature string for message iter.
3271         (dbus_message_iter_get_array_len): New function, returns
3272         length of array.
3273         (dbus_message_iter_get_fixed_array): Fix assertion; this
3274         function should be used when the iter is pointing to the
3275         contents of an array
3276         * dbus/dbus-message.h: Prototypes.
3277         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3278         New function; returns length of an array.
3279         * dbus/dbus-marshal-recursive.h: Prototype it.
3280         
3281 2005-05-11  Colin Walters  <walters@verbum.org>
3282
3283         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3284         compilation error.
3285         
3286 2005-05-08  Havoc Pennington  <hp@redhat.com>
3287
3288         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3289         daemon's pid, not the parent's pid, to the file descriptor.
3290         Reported by Taj Morton.
3291
3292 2005-05-05  Havoc Pennington  <hp@redhat.com>
3293
3294         * configure.in (LT_*): add notes on how the libtool versioning
3295         works to save thinking. Increment soname to indicate protocol
3296         breakage (though really the library interface hasn't changed I
3297         guess)
3298
3299         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3300         verify the GUID received from server matches what we were
3301         expecting, if we had an expectation
3302
3303         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3304         (_dbus_auth_get_guid_from_server): new function
3305         (send_begin): parse the OK args
3306
3307         * doc/dbus-specification.xml: add GUID to the auth protocol
3308
3309 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3310
3311         * Fix my name in previous changelog ;)
3312
3313         * python/proxies.py (ProxyObject.__getattr__): add further patch
3314         from Anthony Baxter to throw an AttributeError when python 
3315         __special__ functions are called instead of marshling them over 
3316         the bus (Bug#1685 comment 3).
3317
3318 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3319
3320         * python/Makefile.am: changed to use pyexecdir for the binding
3321         shared libraries (Bug#2494)
3322
3323         * python/exceptions.py: bring exceptions over from the bindings
3324         so they can be used in applications (Bug#2036)
3325         Make all exceptions derive from DBusException
3326
3327         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3328         of classes so that print obj doesn't throw an exception (Bug #1685)
3329
3330 2005-05-03  Ross Burton  <ross@openedhand.com>
3331
3332         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3333         Return if we get an error during registration.  Set up a
3334         weak reference on object to unregister if object is destroyed.
3335         (unregister_gobject): New function.
3336         
3337 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3338
3339         * python/dbus_bindings.pyx.in: 
3340         - added new type classes for hinting to the marashaler what type 
3341         to send over the wire
3342         - added int16 and uint16 marshalers
3343         - Fixed a bug in the type constants that caused int32 to go out
3344         as uint16 over the wire
3345         * python/dbus.py: split up into different files and renamed _dbus.py
3346         * python/__init__.py, python/_util.py, python/decorators.py, 
3347         python/exceptions.py, python/proxies.py, python/services.py,
3348         python/types.py: new files split off from dbus.py
3349         * python/Makefile.am: Add new files, remove dbus.py and 
3350         install all python files to <python module dir>/dbus
3351         * python/examples/*: Added #!/usr/bin/env python to the top of
3352         every example.  Patch provided by Tatavarty Kalyan
3353
3354 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3355
3356         * NEWS: Update to 0.33
3357
3358 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3359
3360         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3361         method for doing async calls
3362         (_pending_call_notification): New C function for handling pendning call
3363         callbacks
3364         (set_notify): New method for setting pending call notification
3365         
3366         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3367         Async capabilities added to remote method calls
3368         (Sender): class removed
3369         (RemoteService): class removed
3370         (ObjectTree): class removed for now
3371         (RemoteObject): Renamed to ProxyObject
3372         (RemoteMethod): Renamed to ProxyMethod
3373         (method): Decorator added for decorating python methods as dbus methods
3374         (signal): Decorator added for decorating python methods as signal emitters
3375         (ObjectType): Metaclass added for generating introspection data and the
3376         method callback vtable
3377         (Interface): Wrapper class added to wrap objects in a dbus interface
3378         (Object): Uses ObjectType as its metaclass and exports Introspect
3379         of the org.freedesktop.DBus.Introspectable interface
3380         (ValidationException, UnknownMethodException): new exceptions
3381
3382         * python/examples/*: Modified to fit with the new bindings
3383
3384 2005-04-23  Havoc Pennington  <hp@redhat.com>
3385
3386         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3387         reported by Tony Houghton
3388
3389         * test/test-service.c (main): test
3390         dbus_connection_get_object_path_data()
3391
3392         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3393         the exact_match
3394         (_dbus_object_tree_get_user_data_unlocked): new function used by
3395         dbus_connection_get_object_path_data()
3396         (do_register): add assertion test for get_user_data_unlocked
3397         (object_tree_test_iteration): more tests
3398
3399         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3400         new function from Dan Reed to let you get the user data from 
3401         dbus_connection_register_object_path()
3402
3403 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3404
3405         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3406         in numerous places that did not account for the NULL terminator
3407         (signature_from_seed): changed the manual string copy loop to 
3408         just use strcpy instead
3409         make check should now pass
3410
3411 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3412
3413         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3414         so that it allows messages that are not signals to pass in 
3415         NULL as the interface.
3416
3417 2005-04-18  David Zeuthen  <davidz@redhat.com>
3418
3419         * glib/dbus-gmain.c (io_handler_destroy_source): 
3420         (timeout_handler_destroy_source, connection_setup_free): 
3421         Also unref the source to avoid memory leaks.
3422
3423 2005-04-13  David Zeuthen  <davidz@redhat.com>
3424
3425         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3426         more reasonable, yet still totally arbitrary, value :-). 
3427
3428 2005-04-13  David Zeuthen  <davidz@redhat.com>
3429
3430         * doc/TODO: Added an "important for 1.0" item about selinux
3431         allow/deny messages
3432
3433 2005-04-13  David Zeuthen  <davidz@redhat.com>
3434
3435         * bus/selinux.c: Add c-file-style to top of file
3436         (log_audit_callback): Don't free the data here anymore
3437         (bus_selinux_check): Don't take spid and tpid since appending
3438         that to auxdata may OOM.
3439         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3440         to the caller if we are OOM by taking an error object.
3441         (bus_selinux_allows_send): -do-
3442
3443         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3444         and bus_selinux_allows_send
3445
3446         * bus/bus.c (bus_context_check_security_policy): Pass error and
3447         pass on OOM thrown by bus_selinux_allows_send()
3448
3449         * bus/services.c (bus_registry_acquire_service): Pass error and
3450         pass on OOM thrown by bus_selinux_allows_acquire_service()
3451
3452 2005-04-13  Havoc Pennington  <hp@redhat.com>
3453
3454         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3455         message at a time to avoid monopolizing the main loop, bug 
3456         #2953 from Benjamin Otte
3457
3458 2005-04-09  Havoc Pennington  <hp@redhat.com>
3459
3460         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3461         possible overlap, fix from Daniel Reed
3462         (fixup_alignment): fix signedness warnings
3463         (_dbus_string_append_unichar): ditto
3464
3465 2005-04-09  Havoc Pennington  <hp@redhat.com>
3466
3467         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3468
3469         * glib/dbus-glib-tool.c (main): fix warning
3470
3471         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3472
3473         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3474         add a new function that can be used in simple applications that
3475         don't have a main loop and are willing to block
3476
3477 2005-04-05  David Zeuthen  <davidz@redhat.com>
3478
3479         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3480
3481         * glib/dbus-gmain.c:
3482         (io_handler_destroy_source): Remove from list of IO handlers
3483         of the ConnectionSetup object
3484         (timeout_handler_destroy_source): -do- for timeout handlers
3485         (io_handler_source_finalized): Don't remove from list since
3486         we now do that in io_handler_destroy_source(). Renamed from
3487         io_handler_source_destroyed
3488         (timeout_handler_source_destroyed): -do- for timeout handlers
3489         (connection_setup_free): It is now safe to iterate over all
3490         IO and timeout handlers as the _destroy_source removes them
3491         from the list synchronously
3492
3493 2005-03-30  Havoc Pennington  <hp@redhat.com>
3494
3495         * configure.in: change check to gtk 2.4
3496
3497         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3498         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3499         to 2.4
3500
3501 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3502
3503         * News: Update 0.32
3504
3505         * HACKING: Fixed realease instructions.  configure.in should be updated to
3506           the next release by the person who made the last release.
3507
3508 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3509
3510         * python/lvalue_cast_post_process.py - removed.  Patch has been
3511           submitted to Pyrex maintainers that fixes gcc4.0 errors
3512
3513         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3514
3515 2005-03-24  Daniel Reed  <n@ml.org>
3516
3517         * tools/Makefile.am: Make print-introspect and
3518         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3519
3520 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3521
3522         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3523
3524         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3525           had in Red Hat packages for a while but for some reason never 
3526           got merged upstream
3527           (_dbus_is_a_number): New checks if a string
3528           can be converted to a number and does the conversion if it can
3529           (_dbus_user_database_lookup): Add check to see if the given username
3530           is a udi.  This allows udi's to be used instead of usernames in the
3531           config file.
3532           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3533           is a gdi.  This allows gdi's to be used instead of groupnames in the
3534           config file.
3535
3536 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3537
3538         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3539           code so that it compiles with gcc4.0
3540
3541         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3542           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3543           results back to dbus_binding.c
3544
3545 2005-03-20  Colin Walters  <walters@verbum.org>
3546
3547         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3548
3549         * configure.in: Require GTK+ 2.6.
3550         
3551 2005-03-20  Colin Walters  <walters@verbum.org>
3552
3553         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3554
3555 2005-03-17  Tom Parker  <palfrey@tevp.net>
3556
3557         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3558         print DBUS_UID_UNSET; instead print passed username.  Also
3559         be sure to actually use gid looked up in cache.
3560         
3561         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3562         for DBUS_GID_UNSET and groupname.
3563
3564 2005-03-17  Colin Walters  <walters@verbum.org>
3565
3566         * bus/print-introspect.c: Move to tools/.
3567         * bus/run-with-tmp-session-bus.sh: Ditto.
3568         
3569         * glib/Makefile.am (dbus-glib-bindings.h): Move
3570         generation to tools/Makefile.am.
3571
3572         * test/glib/run-test.sh: Update to handle move
3573         of run-with-tmp-session-bus.sh.
3574
3575         * test/glib/test-service-glib.c: Update to handle
3576         move of dbus-glib-bindings.h.
3577
3578         * tools/print-introspect.c: Moved here
3579         from bus/, and ported to GLib bindings.
3580
3581         * tools/run-with-tmp-session-bus.sh: Moved here
3582         from bus/.
3583
3584         * tools/Makefile.am: Generate dbus-glib-bindings.h
3585         and dbus-bus-introspect.xml here.
3586
3587         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3588         Update.
3589
3590 2005-03-17  Colin Walters  <walters@verbum.org>
3591
3592         * bus/driver.c (write_args_for_direction): Use
3593         _dbus_string_get_const_data to retrieve string;
3594         _dbus_string_get_const_data_len doesn't actually return
3595         a NULL-terminated substring.
3596
3597         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3598         (main): Change to use org_freedesktop_DBus_request_name
3599         instead of using g_proxy_begin_call/end_call.
3600
3601 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3602
3603         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3604         generating the finalizer.  Fixes from Ben Maurer.
3605
3606 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3607
3608         * mono/BusDriver.cs: Update method names: ListServices
3609         becomes ListNames; GetOwner becomes GetNameOwner.
3610
3611         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3612         onto the eval stack when removing the delegate.
3613
3614 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3615
3616         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3617         LT_CURRENT.  Set it to the autoconf variable.
3618                                                                                 
3619         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3620         classes that disconnects the signal handler delegate from the
3621         service object.  Fixes a big leak of proxy objects on the
3622         client side of things.  Patch from Ben Maurer
3623         <bmaurer@ximian.com>
3624
3625 2005-03-12  Colin Walters  <walters@verbum.org>
3626
3627         * bus/driver.c (write_args_for_direction): New function,
3628         parses a type signature into arguments and outputs to
3629         XML.
3630         (bus_driver_handle_introspect): Use it instead of
3631         hardcoding XML for certain signatures.
3632         
3633         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3634         dependency on dbus-daemon.
3635
3636         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3637         argument, pass it to dbus_binding_tool_output_glib_client.
3638
3639         * glib/dbus-binding-tool-glib.c
3640         (generate_client_glue): Protect against multiple inclusion.
3641         (dbus_binding_tool_output_glib_client): Add
3642         G_BEGIN_DECLS/G_END_DECLS.
3643
3644         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3645         Change to just take iface prefix directly.
3646         (write_formal_parameters): Clarify error message.
3647         (check_supported_parameters): New function; checks to see type
3648         signatures of method parameters are supported.
3649         (generate_client_glue): Handle ignore_unsupported flag.
3650         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3651         parameter.
3652
3653         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3654         --ignore-unsupported by default until glib bindings
3655         support arrays.
3656
3657 2005-03-11  Colin Walters  <walters@verbum.org>
3658
3659         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3660         install it.
3661
3662         * bus/print-introspect.c: New file; prints introspection
3663         data for a given name and object path.
3664
3665         * bus/run-with-tmp-session-bus.sh: New file, refactored
3666         from test/glib/run-test.sh.  Creates a temporary session
3667         bus and runs another program.
3668
3669         * test/glib/run-test.sh: Refactor to invoke
3670         run-with-tmp-session-bus.sh.
3671
3672         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3673         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3674         macros instead of hardcoding.
3675
3676         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3677
3678 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3679
3680         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3681         this unref; it doesn't match up evenly in some codepaths.
3682         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3683         this evenly matches with the ref near the top of this function.
3684
3685 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3686
3687         * dbus/dbus-object-tree.c
3688         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3689         and we try to unregister a path that's not registered, still go
3690         through the process of unlocking and don't just return.
3691
3692 2005-03-09  Colin Walters  <walters@verbum.org>
3693
3694         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3695         to this are generated for client-side wrappers.  Invokes a
3696         D-BUS method and returns reply values.  
3697
3698         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3699         function; writes signature string for argument direction.
3700         (write_args_for_direction): Change to pass input values directly
3701         instead of via address, and fix indentation.
3702         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3703         make generated wrappers inlineable.
3704
3705         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3706         note about using dbus_type_is_fixed.
3707
3708         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3709         dbus/dbus-signature.c as dbus_type_is_fixed.
3710
3711         All callers updated.
3712
3713         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3714         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3715
3716         * dbus/dbus-signature.h: Prototype.
3717
3718         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3719         error printf code.
3720
3721         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3722         appropriate instead of just freeing it.
3723         (main): Free returned strings using g_free.
3724
3725         * test/glib/Makefile.am (test-service-glib-glue.h)
3726         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3727
3728         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3729         simply maps a simple D-BUS type to GType.
3730         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3731         GType.
3732         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3733         initialize the value with it.
3734         (dbus_gvalue_binding_type_from_type): Unused, delete.
3735         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3736         various types instead of unmarshalling to value data directly.
3737         Remove can_convert boolean.
3738         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3739         returning directly instead of using can_convert boolean.
3740         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3741         Stores a GValue in a pointer to a value of its corresponding C
3742         type.
3743
3744         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3745         add dbus_gvalue_store.
3746
3747 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3748
3749         Fix a bunch of lifecycle and memory management problems
3750         in the mono bindings.
3751
3752         * mono/Arguments.cs (Arguments): Implement IDisposable
3753
3754         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3755         strictly a static class.
3756
3757         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3758         delegates into this file.
3759         (Connection): Implement IDisposable.
3760         (Dispose): Disconnect the connection and set the raw connection
3761         pointer to IntPtr.Zero.
3762         (~Connection): Call Dispose().
3763         (RegisterObjectPath): Added.  Manages the registration of object
3764         paths so we can cleanly disconnect them at dispose/finalize time.
3765         (UnregisterObjectPath): Ditto.
3766         (set_RawConnection): Unregister all of the object paths when
3767         changing the underlying DBusConnection.  Add them back onto the
3768         new connection, if any.
3769
3770         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3771         more unmanaged resources anymore, so it's not necessary.  Move all
3772         the DBusObjectPathVTable stuff out of here.
3773         (Handler): Save references to our delegates so that they don't get
3774         finalized.  Call Connection.RegisterObjectPath() instead of
3775         dbus_connection_register_object_path() directly.
3776         (Message_Called): Dispose the message after we're finished with
3777         it.
3778
3779         * mono/Message.cs (Message): Implement IDisposable.
3780         (Dispose): Dispose the Arguments, and set the RawMessage to
3781         IntPtr.Zero.
3782         (SendWithReplyAndBlock): We own the ref to the reply that comes
3783         back from dbus_connection_send_with_reply_and_block() so add a
3784         comment about that and unref it after we've constructed a managed
3785         MethodReturn class around it.  Fixes a big, big leak.
3786
3787         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3788         method.
3789         (BuildSignalHandler): After we've sent the Signal message, dispose
3790         of it.
3791         (BuildMethod): Dispose of the method call and reply messages after
3792         we've sent the message and extracted the data we want from the
3793         reply.
3794
3795         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3796         anymore.
3797         (Service_FilterCalled): Dispose of the message after we're
3798         finished with it.
3799
3800 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3801
3802         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3803         After we attach our pending call to the connection, unref
3804         it.  Fixes a leak.
3805  
3806         * mono/Connection.cs (set_RawConnection): Disconnect our
3807         filter and match callbacks from the old connection and
3808         reconnect them to the new connection, if any.
3809
3810         * mono/DBusType/Array.cs: "Code" is a static member, so
3811         don't use "this" to refer to it.  Fix for stricter checking
3812         in Mono 1.1.4.
3813  
3814         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3815         object path that we pass into unmanaged code.
3816  
3817         * mono/DBusType/String.cs (Append): Don't leak the string
3818         that we pass into unmanged code.
3819
3820 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3821         * NEWS: Update for 0.31
3822
3823         * configure.in: Release 0.31
3824         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3825
3826         * qt/Makefile.am: fixed build
3827
3828         * dbus/Makefile.am: soname bump for libdbus
3829
3830         * glib/Makefile.am: soname bump for libdbus-glib
3831
3832 2005-03-05  Havoc Pennington  <hp@redhat.com>
3833
3834         * dbus/dbus-sysdeps.c:
3835         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3836         value
3837         (_dbus_generate_random_bytes_buffer): fix return value
3838
3839         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3840         checks actually work, from Tom Parker <fdo@tevp.net>
3841
3842 2005-03-01  Colin Walters  <walters@verbum.org>
3843
3844         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3845         functions copied from dbus-glib-tool.c.
3846         (main): Convert lots of error code to use them.
3847         Also add some testing for introspection bits.
3848
3849 2005-03-01  Colin Walters  <walters@verbum.org>
3850         
3851         * doc/TODO: Remove introspection signature TODO.
3852
3853 2005-02-27  Colin Walters  <walters@verbum.org>
3854
3855         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3856         Change return value to const char * instead of int so we can do
3857         full signatures.
3858         (struct PropertyInfo, struct ArgInfo): Store char *.
3859         (property_info_new, arg_info_new): Update parameters, strdup.
3860         (property_info_unref, arg_info_unref): Free.
3861
3862         * glib/dbus-gidl.h: Update prototypes.
3863
3864         * glib/dbus-gparser.c (basic_type_from_string): Delete.
3865         (validate_signature): New function, just validates signature and
3866         sets GError.
3867         (parse_property, parse_arg): Invoke validate_signature.  Store
3868         signature instead of just type code.
3869
3870         * glib/dbus-gvalue.c (base_type_from_signature): New utility
3871         function to return a primary type for a signature, dropping
3872         information about types in container types.
3873         (dbus_gvalue_genmarshal_name_from_type)
3874         (dbus_gvalue_binding_type_from_type)
3875         (dbus_gvalue_ctype_from_type): Update to take full signature
3876          instead of type code.
3877         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3878
3879         * glib/dbus-gvalue.h: Update prototypes for above.
3880
3881         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3882         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3883         (introspect_properties, introspect_signals, write_interface):
3884         Update to handle signatures, and remove usage of
3885         _dbus_gutils_type_to_string.
3886         (handle_introspect): Print out type codes instead of e.g. "string"
3887         in hardcoded introspection XML; also use x_AS_STRING constants
3888         instead of hardcoding in string.
3889
3890         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3891         to string.  Remove usage of _dbus_gutils_type_to_string.
3892
3893         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3894
3895         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3896         deletion.
3897         
3898         * glib/dbus-binding-tool-glib.c (compute_marshaller)
3899         (compute_marshaller_name, generate_glue): Handle signature change
3900         to string.
3901         (write_formal_parameters, write_args_for_direction): Ditto, and
3902         remove FIXME.
3903
3904         * tools/dbus-tree-view.c (type_to_string): Delete.
3905         (info_set_func_text): Update to print full signatures.
3906
3907         * test/glib/test-service-glib.xml: Change types to new
3908         introspection format.
3909
3910 2005-02-26  Havoc Pennington  <hp@redhat.com>
3911
3912         * doc/TODO: remove the "guid" item
3913
3914         * test/glib/test-profile.c (no_bus_thread_func): use open_private
3915         (with_bus_thread_func): use open_private
3916
3917         * dbus/dbus-connection.c (dbus_connection_open_private): new
3918         function that works like the old dbus_connection_open()
3919         (dbus_connection_open): now returns an existing connection if
3920         possible
3921
3922         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3923         through the GUID to the transport
3924
3925         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3926         GUID in hex-encoded form.
3927
3928         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3929         pass GUID argument in to the transport
3930
3931         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3932         guid argument
3933
3934         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3935
3936         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3937
3938 2005-02-25  Havoc Pennington  <hp@redhat.com>
3939
3940         * doc/dbus-specification.xml: document the GUID thing
3941
3942         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3943         globally unique ID for the server, and put a "guid=hexencoded"
3944         field in the address
3945
3946         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3947
3948         * dbus/dbus-message.c: ditto
3949
3950         * dbus/dbus-dataslot.c: ditto
3951
3952         * dbus/dbus-list.c: ditto
3953
3954         * dbus/dbus-internals.h: wait, just include
3955         dbus-threads-internal.h here
3956         
3957         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3958         use in main library
3959
3960         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3961
3962 2005-02-24  Colin Walters  <walters@verbum.org>
3963
3964         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3965
3966 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
3967
3968         * glib/Makefile.am: added dbus-gobject.h to sources list
3969         so distcheck doesn't fail
3970         
3971 2005-02-24  Havoc Pennington  <hp@redhat.com>
3972
3973         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3974         you must disconnect before unref, since locking and other things
3975         are screwed up otherwise. Fix assorted other locking stuff.
3976
3977         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3978         fix compilation
3979
3980         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3981         into a private header and don't export from the library
3982
3983         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3984
3985 2005-02-24  Colin Walters  <walters@verbum.org>
3986         
3987         * dbus/dbus-signature.c: New file; implements various functions
3988         related to type signatures.  Includes an interator for parsing,
3989         validation functions.
3990         (dbus_type_is_basic): Moved here from
3991         dbus-marshal-basic.c:_dbus_type_is_basic.
3992         (dbus_type_is_container): Moved here from
3993         dbus-marshal-basic.c:_dbus_type_is_container.
3994
3995         All callers of _dbus_type_is_container and _dbus_type_is_basic
3996         updated, and include dbus-signature.h.
3997
3998         * dbus/dbus-signature.h: New file; prototypes for the above.
3999
4000         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4001         dbus-signature.h.
4002
4003         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4004         function factored out of _dbus_first_type_in_signature.
4005         (_dbus_first_type_in_signature_c_str): New function; returns first
4006         type code for a type signature character.
4007
4008         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4009         handle function moves.
4010
4011         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4012
4013         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4014         function; skips to next complete type in type signature.
4015         Implemented using previous skip_one_complete_type.  Now
4016         skip_one_complete_type just delegates to
4017         _dbus_type_signature_next.
4018
4019         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4020         to dbus-signature.c
4021         (_dbus_type_is_container): Ditto.
4022
4023         * doc/dbus-specification.xml: Update introspection sample to
4024         use real type signatures.
4025
4026         * dbus/dbus-test.h: Prototype signature test.
4027
4028         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4029         signature tests.
4030
4031         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4032
4033 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4034
4035         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4036         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4037
4038 2005-02-21  Colin Walters  <walters@verbum.org>
4039
4040         * dbus/dbus-test-main.c (main): Take optional specific test
4041         argument.
4042
4043         * dbus/dbus-test.c (run_test): New function, runs a test function
4044         with no data directory.
4045         (run_data_test): Like above, but takes data directory.
4046         (dbus_internal_do_not_use_run_tests): Take
4047         specific test argument.  Replace lots of cut n' paste code
4048         with run_test and run_data_test.
4049
4050         * dbus/dbus-test.h: Update prototype for
4051         dbus_internal_do_not_use_run_tests.
4052
4053 2005-02-20  Havoc Pennington  <hp@redhat.com>
4054
4055         Fix bugs reported by Daniel P. Berrange
4056         
4057         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4058         (protected_change_watch): new function
4059         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4060         (_dbus_server_add_watch): change to work like the
4061         dbus-connection.c equivalents; like those, probably kind of
4062         busted, but should at least mostly work for now
4063         (dbus_server_disconnect): drop the lock if we were already
4064         disconnected, patch from Daniel P. Berrange
4065
4066         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4067         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4068         same stuff
4069
4070         * doc/TODO: todo about unscrewing this mess
4071
4072 2005-02-19  Colin Walters  <walters@verbum.org>
4073
4074         * glib/dbus-binding-tool-glib.c
4075         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4076
4077         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4078         as errno.h and sys/stat.h.
4079         (lose): New function, prints error with
4080         newline and exits.
4081         (lose_gerror): Similar, but takes GError for message.
4082         (main): Add --output argument to specify output file to write to,
4083         instead of always printing to stdout.  In this mode, determine
4084         timestamps on source files to see whether any are newer than the
4085         target file.  If not, exit.  Also convert a number of error
4086         messages to use lose (since it's shorter), and switch to using
4087         g_io_channel_shutdown.
4088
4089 2005-02-19  Havoc Pennington  <hp@redhat.com>
4090
4091         * glib/dbus-gobject.c
4092         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4093
4094         * glib/dbus-glib.c: fix doxygen warnings
4095
4096         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4097         is found on an <arg>
4098
4099 2005-02-17  Colin Walters  <walters@verbum.org>
4100
4101         * glib/dbus-gobject.h: Don't export
4102         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4103         
4104         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4105         (invoke_object_method): Handle it.
4106
4107         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4108         Handle rename.
4109         
4110 2005-02-17  Colin Walters  <walters@verbum.org>
4111
4112         * bus/.cvsignore, doc/.cvsignore
4113         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4114         Update.
4115
4116 2005-02-17  Colin Walters  <walters@verbum.org>
4117         
4118         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4119         Rename to DBUS_SERVICE_DBUS.
4120         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4121         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4122         Change the value from "org.freedesktop.Local"
4123         to "org.freedesktop.DBus.Local".
4124         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4125         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4126         DBUS_INTERFACE_INTROSPECTABLE.
4127         Change the value from "org.freedesktop.Introspectable"
4128         to "org.freedesktop.DBus.Introspectable".
4129         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4130         DBUS_INTERFACE_PROPERTIES.
4131         Change the value from "org.freedesktop.Properties"
4132         to "org.freedesktop.DBus.Properties".
4133         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4134         DBUS_INTERFACE_PEER.
4135         Change the value from "org.freedesktop.Peer"
4136         to "org.freedesktop.DBus.Peer".
4137         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4138         DBUS_INTERFACE_LOCAL.
4139         Change the value from "org.freedesktop.Local"
4140         to "org.freedesktop.DBus.Local".
4141
4142         All other users of those constants have been changed.
4143
4144         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4145
4146         * glib/dbus-gobject.c (handle_introspect): Use constants.
4147
4148         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4149
4150 2005-02-17  Colin Walters  <walters@verbum.org>
4151
4152         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4153         (parse_node, parse_interface, parse_method, parse_signal)
4154         (parse_property, parse_annotation): Lose if we're currently in an
4155         annotation.
4156         (parse_annotation): New function.
4157         (parser_start_element, parser_end_element): Handle annotation.
4158         (parse_method, parse_interface): Remove support for c_name attribute,
4159         switch to annotations.
4160
4161         * glib/dbus-gidl.h (interface_info_get_binding_names)
4162         (method_info_get_binding_names)
4163         (interface_info_get_binding_name, method_info_get_binding_name)
4164         (interface_info_set_binding_name, method_info_set_binding_name):
4165         Remove.
4166         (interface_info_get_annotations, method_info_get_annotations)
4167         (interface_info_get_annotation, method_info_get_annotation)
4168         (interface_info_add_annotation, method_info_add_annotation):
4169         Prototype.
4170
4171         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4172         for "bindings".
4173         (struct MethodInfo): Ditto.
4174         Straightfoward conversion of binding methods into annotation methods
4175         as prototyped.
4176
4177         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4178
4179         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4180
4181         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4182         Use new annotation API.
4183
4184         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4185         annotation element.
4186         
4187         * doc/dbus-specification.xml: Discuss introspection annotations,
4188         include list of well-known annotations.
4189
4190         * test/glib/test-service-glib.xml: Make validate against new DTD.
4191
4192 2005-02-17  Colin Walters  <walters@verbum.org>
4193
4194         This patch is based on initial work from
4195         Paul Kuliniewicz <kuliniew@purdue.edu>.
4196
4197         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4198         initialization of GValue from dbus type to here.
4199         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4200         for the "glib-genmarshal" program from a DBus type.
4201         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4202         into the C name for it we use in the glib bindings.
4203         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4204         glib C type (not GValue).
4205         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4206
4207         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4208         from dbus-gobject.c.
4209
4210         * glib/dbus-gutils.h: Prototype it.
4211
4212         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4213         (marshal_dbus_message_to_g_marshaller): Use new shared function
4214         dbus_glib_marshal_dbus_message_to_gvalue_array.
4215
4216         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4217         Will be changed once we have annotations.
4218
4219         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4220         GStaticRWLock.  Callers updated.
4221         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4222         (string_table_next): New function for iterating over zero-terminated
4223         string value array.
4224         (string_table_lookup): New function; retrieves specific entry in
4225         array.
4226         (get_method_data): New function; look up method data in object data chunk.
4227         (object_error_domain_prefix_from_object_info)
4228         (object_error_code_from_object_info): New functions, but not implemented yet.
4229         (method_interface_from_object_info): New function; retrieve interface name.
4230         (method_name_from_object_info): New function; retrieve method name.
4231         (method_arg_info_from_object_info): New function; retrieve argument data.
4232         (arg_iterate): New function; iterates over serialized argument data.
4233         (method_dir_signature_from_object_info): New function; returns a
4234         GString holding type signature for arguments for just one
4235         direction (input or output).
4236         (method_input_signature_from_object_info)
4237         (method_output_signature_from_object_info): New functions.
4238         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4239         converts dbus message arguments into a GValue array.  Used for both
4240         signal handling and method invocation.
4241         (struct DBusGlibWriteIterfaceData): New utility structure.
4242         (write_interface): New function; generate introspection XML for
4243         an interface.
4244         (introspect_interfaces): New function; gathers all interface->methods,
4245         generates introspection XML for them.
4246         (handle_introspect): Invoke introspect_interfaces.
4247         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4248         (lookup_object_and_method): New function; examines an incoming message
4249         and attempts to match it up (via interface, method name, and argument
4250         signature) with a known object and method.
4251         (gerror_domaincode_to_dbus_error_name): New function; converts a
4252         GError domain and code into a DBus error name.  Needs GError data
4253         added to object introspection to work well.
4254         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4255         GError.
4256         (invoke_object_method): New function to invoke an object method
4257         looked up via lookup_object_and_method.  Parses the incoming
4258         message, turns it into a GValue array, then invokes the marshaller
4259         specified in the DBusGMethodInfo.  Creates a new message with
4260         either return values or error message as appropriate.
4261         (gobject_message_function): Invoke lookup_object_and_method and
4262         invoke_object_method.
4263
4264         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4265         (enum DBusBindingOutputMode): New enum for binding output modes.
4266         (pretty_print): Print binding names.
4267         (dbus_binding_tool_error_quark): GError bits.
4268         (version): Fix typo.
4269         (main): Create GIOChannel for output.  Parse new --mode argument,
4270         possible values are "pretty-print", "glib-server", "glib-client".
4271         Use mode to invoke appropriate function.
4272         
4273         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4274
4275         * glib/dbus-glib-tool.h: New header, just includes GError bits
4276         for now.
4277
4278         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4279         maps binding style to name.
4280         (struct MethodInfo): Ditto.
4281         (get_hash_keys, get_hash_key): Utility function, returns keys for
4282         a GHashTable.
4283         (interface_info_new, method_info_new): Initialize bindings.
4284         (interface_info_unref, method_info_unref): Destroy bindings.
4285         (method_info_get_binding_names, method_info_get_binding_name)
4286         (interface_info_get_binding_names, interface_info_get_binding_name):
4287         Functions for retrieving binding names.
4288         (method_info_set_binding_name, interface_info_set_binding_name):
4289         Functions for setting binding names.
4290
4291         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4292         for glib binding generation.
4293
4294         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4295         and client-side glib glue generation.
4296
4297         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4298         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4299         dbus-glib-tool.h.
4300
4301         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4302         of using GClosureMarshal directly.
4303         (struct DBusGObjectInfo): Add n_infos member.
4304
4305         * test/glib/test-service-glib.xml: New file; contains introspection data
4306         for MyTestObject used in test-service-glib.c.
4307
4308         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4309         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4310         (my_object_uppercase, my_object_many_args): New test methods.
4311         (main): Use dbus_g_object_class_install_info to include generated object
4312         info.
4313
4314         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4315         as well as client-side bindings.
4316
4317         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4318         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4319         using both the dbus_gproxy stuff directly as well as the generated bindings.
4320
4321 2005-02-15  Havoc Pennington  <hp@redhat.com>
4322
4323         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4324         complete a pending call, don't run filters first.
4325
4326         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4327         dbus_pending_call_steal_reply
4328
4329         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4330         _dbus_connection_block_pending_call
4331         (dbus_pending_call_get_reply): change to steal_reply and return a
4332         ref
4333
4334         * dbus/dbus-connection.c
4335         (dbus_connection_send_with_reply_and_block): port to work in terms
4336         of DBusPendingCall
4337         (_dbus_connection_block_pending_call): replace block_for_reply
4338         with this
4339
4340 2005-02-14  Havoc Pennington  <hp@redhat.com>
4341
4342         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4343         properly handle looking up group information by name; fix 
4344         from j@bootlab.org
4345
4346 2005-02-13  Havoc Pennington  <hp@redhat.com>
4347
4348         * dbus/dbus-connection.c (dbus_connection_return_message) 
4349         (dbus_connection_borrow_message): hold dispatch lock while message
4350         is outstanding
4351         (_dbus_connection_block_for_reply): hold dispatch lock while we
4352         block for the reply, so nobody steals our reply
4353         (dbus_connection_pop_message): hold the dispatch lock while we
4354         pluck the message
4355
4356 2005-02-13  Havoc Pennington  <hp@redhat.com>
4357
4358         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4359         (_dbus_connection_release_dispatch)
4360         (_dbus_connection_acquire_io_path)
4361         (_dbus_connection_release_io_path): make the mutex and condvar
4362         control access to the "acquired" flag. Drop the connection lock
4363         while waiting on the condvar. Hopefully these are baby steps in
4364         roughly the right direction.
4365
4366 2005-02-13  Havoc Pennington  <hp@redhat.com>
4367
4368         * dbus/dbus-connection.c: use separate mutexes for the condition
4369         variables; this is some kind of baseline for sanity, but the
4370         condition variables still aren't used correctly afaict
4371
4372 2005-02-13  Havoc Pennington  <hp@redhat.com>
4373
4374         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4375         fix a double-unlock
4376
4377         * dbus/dbus-connection.c
4378         (_dbus_connection_detach_pending_call_unlocked): add this
4379
4380         Initial semi-correct pass through to fix thread locking; there are
4381         still some issues with the condition variable paths I'm pretty
4382         sure
4383         
4384         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4385         lock/unlock calls
4386
4387         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4388         rename to add _unlocked
4389         (struct DBusConnection): move "dispatch_acquired" and
4390         "io_path_acquired" to use only one bit each.
4391         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4392         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4393         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4394         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4395         (_dbus_connection_remove_timeout) 
4396         (_dbus_connection_toggle_timeout): drop lock when calling out to
4397         user functions; done in a hacky/bad way.
4398         (_dbus_connection_send_and_unlock): add a missing unlock
4399         (_dbus_connection_block_for_reply): add a missing unlock
4400
4401         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4402         drop lock in a hacky probably unsafe way to call out to user
4403         function
4404
4405 2005-02-12  Havoc Pennington  <hp@redhat.com>
4406
4407         * tools/dbus-tree-view.c (info_set_func_text): display more
4408         details on args
4409
4410         * bus/driver.c (bus_driver_handle_list_services): list the bus
4411         driver
4412
4413         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4414
4415         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4416         (method_info_get_n_args): new function
4417
4418 2005-02-12  Havoc Pennington  <hp@redhat.com>
4419
4420         * bus/driver.c (bus_driver_handle_introspect): add introspection
4421         for bus driver
4422
4423 2005-02-12  Havoc Pennington  <hp@redhat.com>
4424
4425         * bus/driver.c: put the signature of each bus driver method in the
4426         table of handlers and check it on incoming calls; this isn't
4427         really useful, but going to add introspect support in a minute.
4428
4429 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4430
4431         * mono/Connection.cs: The unpredictability of finalizers in mono
4432         prevents us from deterministically disconnecting the filters from
4433         the Service class's finalizer, so move tracking of filters and
4434         matches here.  Add API for that.
4435
4436         * mono/Service.cs: Remove the code, add code which calls the
4437         methods now on the Connection class.
4438
4439 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4440
4441         * python/dbus.py (class Sender): added to support dbus signals better
4442         (Bus::add_signal_receiver): added expand_args parameter which defaults
4443         to True.  When expand args is True the signal handler will pass the 
4444         message arguments as parameters to the signal handler.  If False
4445         revert to previous behavior where the signal handler must get the
4446         argument list from the message.  This is to help port applications
4447         like HAL that have a tendancy to send variable length argument lists.
4448         self._match_rule_to_receivers is now a dict of dicts.
4449         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4450         removing it from a list
4451         (Bus::_signal_func): change signal handlers so that interface,
4452         signal_name, service, path and message are packed into a Sender
4453         object and that is passed to the handler.  If expand_args is True
4454         extract the args list from the message and append it to the parameter
4455         list
4456         
4457         * python/dbus_bindings.pyx.in (class Signature): added to support 
4458         signiature types
4459         (MessageIter::__init__): changed iteration limit to match D-BUS
4460         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4461         STRUCT and VARIENT type support
4462         (MessageIter::python_value_to_dbus_sig): made recursive to support
4463         recursive types
4464         (MessageIter::append*): added Signature, dict, tuple 
4465         support
4466
4467         * python/examples/example-client.py: added examples of getting tuples
4468         and dicts
4469
4470         * python/examples/example-service.py: added examples of sending tuples
4471         and dicts
4472
4473         * python/examples/example-signal-recipient.py: Fixed to handle new
4474         signal callback format
4475
4476 2005-02-10  Havoc Pennington  <hp@redhat.com>
4477
4478         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4479         (call dbus_g_proxy_add_signal)
4480
4481         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4482         escape the hostname
4483         (_dbus_server_new_for_domain_socket): escape the path
4484
4485         * dbus/dbus-address.c (dbus_address_escape_value): new
4486         (dbus_address_unescape_value): new
4487         (dbus_parse_address): unescape values
4488
4489         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4490
4491         * doc/dbus-specification.xml: explain how to escape values in
4492         addresses
4493
4494 2005-02-10  Havoc Pennington  <hp@redhat.com>
4495
4496         * dbus/dbus-message-factory.c (generate_special): modify test to
4497         avoid using a non-basic dict key
4498
4499         * dbus/dbus-marshal-validate-util.c: add test for the below
4500
4501         * doc/dbus-specification.xml: require that dict keys are a basic
4502         type
4503
4504         * dbus/dbus-marshal-validate.c
4505         (_dbus_validate_signature_with_reason): require that dict key is a
4506         basic type
4507
4508 2005-02-10  Havoc Pennington  <hp@redhat.com>
4509
4510         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4511         change to be _and_unlock instead of _unlocked
4512
4513         * dbus/dbus-connection.c
4514         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4515         have no_update so we can find this bug quickly in future
4516
4517 2005-02-10  Havoc Pennington  <hp@redhat.com>
4518
4519         * dbus/dbus-message-util.c (verify_test_message): tests for string
4520         array
4521
4522         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4523         support for arrays of string/signature/path
4524
4525 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4526
4527         * dbus/dbus-connection.c
4528         (_dbus_connection_queue_received_message_link,
4529         _dbus_connection_message_sent): Add the path to
4530         the verbose output.
4531         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4532         _dbus_connection_send_preallocated_unlocked(), updated the
4533         dispatch status, and unlocks.  Fixes a bug where certain
4534         situations (like a broken pipe) could cause a Disconnect message
4535         to not be sent, tricking the bus into thinking a service was still
4536         there when the process had quit.
4537         (_dbus_connection_send_preallocated): Call
4538         _dbus_connection_send_preallocated_and_unlock().
4539         (_dbus_connection_send_and_unlock): Added.  Calls
4540         _dbus_connection_send_preallocated_and_unlock().
4541         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4542         (dbus_connection_send_with_reply): Update the dispatch status and
4543         unlock.
4544
4545         * mono/Service.cs (~Service): Added.  Removes the filter so that
4546         we don't get unmanaged code calling back into a GCed delegate.
4547         (RemoveFilter); Added.
4548
4549 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4550
4551         * dbus/dbus-message.c (dbus_message_iter_open_container):
4552         - Removed check for iterator type being an array because
4553         get_arg_type does not work with writer iterators
4554         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4555
4556 2005-02-07  Havoc Pennington  <hp@redhat.com>
4557
4558         * doc/dbus-specification.xml: some more language cleanups; add
4559         stuff about how to deal with invalid protocol and extension
4560         points; add _ to allowed chars in auth commands; add EXTENSION_
4561         auth command prefix
4562
4563 2005-02-06  Havoc Pennington  <hp@redhat.com>
4564
4565         * s/expected/required/ in a couple places for clarity
4566
4567 2005-02-07  Colin Walters  <walters@verbum.org>
4568
4569         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4570         sender or proposed_recipient.
4571
4572 2005-02-06  Havoc Pennington  <hp@redhat.com>
4573
4574         * dbus/dbus-message-factory.c (generate_special): more tests
4575
4576         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4577         array length that exceeds the maximum
4578
4579 2005-02-05  Havoc Pennington  <hp@redhat.com>
4580
4581         * dbus/dbus-message-factory.c (generate_special): more test cases,
4582         increasing coverage
4583
4584         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4585         reason why a signature was invalid
4586
4587         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4588         skip the length of the string before we look at it in validation
4589
4590         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4591         equal_substring
4592
4593         * dbus/dbus-message.c (_dbus_message_loader_new): default
4594         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4595
4596 2005-02-05  Havoc Pennington  <hp@redhat.com>
4597
4598         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4599         if the signature of a variant was empty
4600         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4601         struct with no element type)
4602
4603         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4604         mangled messages to break things
4605
4606 2005-02-04  Havoc Pennington  <hp@redhat.com>
4607
4608         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4609         g_quark_try_string() so it actually can return 0
4610         (dbus_g_proxy_connect_signal): ditto
4611
4612 2005-02-04  Havoc Pennington  <hp@redhat.com>
4613
4614         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4615         bogus warning
4616         (tristring_from_message): assert cleanly on null path/interface
4617         (should not be possible though I decided later)
4618         (dbus_g_proxy_dispose): move proxy manager unregistration here
4619         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4620         g_return_if_fail() checks
4621
4622 2005-02-04  Havoc Pennington  <hp@redhat.com>
4623
4624         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4625
4626         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4627         (with some minor changes)
4628
4629         * doc/dbus-specification.xml: add deprecated attribute to
4630         introspection format
4631
4632 2005-01-31  Havoc Pennington  <hp@redhat.com>
4633
4634         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4635         think it's sort of right
4636
4637 2005-01-30  Havoc Pennington  <hp@redhat.com>
4638
4639         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4640
4641 2005-01-30  Havoc Pennington  <hp@redhat.com>
4642
4643         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4644
4645         * autogen.sh: change to autotools 1.9
4646
4647         * glib/dbus-gproxy.c: completely change how signals work
4648         (dbus_g_proxy_add_signal): new function to specify signature of a
4649         signal
4650         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4651         and g_warning if the incoming message has the wrong signature.
4652
4653 2005-01-30  Havoc Pennington  <hp@redhat.com>
4654
4655         * tools/dbus-names-model.c (have_names_notify): fix this
4656
4657         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4658         up the string array handling a bit 
4659
4660 2005-01-30  Havoc Pennington  <hp@redhat.com>
4661
4662         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4663         (dbus_g_pending_call_cancel): new function
4664
4665         * dbus/dbus-glib.h: move GType decls for connection/message here;
4666         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4667         here, just kind of rationalizing how we handle all that
4668
4669         * tools/dbus-names-model.c: new file for a tree model listing the
4670         services on a bus
4671
4672         * tools/dbus-tree-view.c (model_new): use proper typing on the
4673         model rows
4674
4675 2005-01-30  Havoc Pennington  <hp@redhat.com>
4676
4677         * glib/dbus-gmain.c: add a custom GSource back that just checks
4678         whether the message queue has anything in it; otherwise, there are 
4679         cases where we won't see messages in the queue since there was no 
4680         IO visible to the glib main loop
4681
4682         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4683         increase default message timeout to 25 seconds
4684
4685 2005-01-30  Havoc Pennington  <hp@redhat.com>
4686
4687         * test/glib/test-profile.c (no_bus_stop_server): remove the
4688         warning about the g_warning that I just fixed
4689
4690         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4691         custom source, seems to be a lot easier to understand and work
4692         better.
4693
4694 2005-01-30  Havoc Pennington  <hp@redhat.com>
4695
4696         I think this main loop thing is conceptually broken, but here are 
4697         some band aids. I'll maybe rewrite it in a minute.
4698         
4699         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4700         custom GSource, so don't pass it in; confusing
4701         (gsource_server_finalize, gsource_connection_finalize): add
4702         finalize handlers that remove all the watches.  
4703
4704 2005-01-30  Havoc Pennington  <hp@redhat.com>
4705
4706         * glib/dbus-gobject.c (introspect_properties): fix the XML
4707         generated
4708
4709         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4710         which effectively detects the use of freed messages
4711
4712         * glib/dbus-gobject.c (handle_introspect): modify and return the
4713         reply message instead of the incoming message
4714
4715         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4716         gee, maybe it should SEND THE XML instead of just making a string
4717         and freeing it again ;-)
4718
4719         * tools/dbus-print-message.c (print_message): improve printing of
4720         messages
4721
4722         * configure.in: add debug-glib.service to the output
4723
4724 2005-01-30  Havoc Pennington  <hp@redhat.com>
4725
4726         dbus-viewer introspected and displayed the bus driver
4727         
4728         * dbus/dbus-object-tree.c 
4729         (object_tree_test_iteration): add tests for a handler registered on "/"
4730
4731         * dbus/dbus-object-tree.c
4732         (_dbus_decompose_path): fix to handle path "/" properly
4733         (run_decompose_tests): add tests for path decomposition
4734         
4735         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4736         properly
4737
4738         * glib/dbus-gobject.c (handle_introspect): fix quotes
4739
4740         * test/glib/run-test.sh: support launching the bus, then running
4741         dbus-viewer
4742
4743         * test/glib/test-service-glib.c (main): put in a trivial gobject
4744         subclass and register it on the connection
4745
4746         * bus/driver.c (bus_driver_handle_introspect): implement
4747         introspection of the bus driver service
4748
4749         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4750         identifiers, doctype decl
4751
4752         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4753         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4754         returning the service unchanged.
4755         (bus_driver_handle_message): remove old check for reply_serial in
4756         method calls, now the message type deals with that
4757         (bus_driver_handle_message): handle NULL interface
4758
4759         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4760
4761         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4762         -1 for len
4763
4764         * tools/dbus-viewer.c: add support for introspecting a service on
4765         a bus
4766
4767         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4768         (dbus_g_pending_call_unref): add
4769
4770 2005-01-29  Havoc Pennington  <hp@redhat.com>
4771
4772         * tools/dbus-tree-view.c: add support for displaying properties.
4773         (run dbus-viewer with an introspect xml file as arg, then resize
4774         the window so the tree elements show up, not sure what that is)
4775
4776         * glib/dbus-gobject.c (handle_introspect): return
4777         org.freedesktop.Properties and org.freedesktop.Introspectable
4778         interfaces when we are introspected.
4779
4780         * doc/dbus-specification.xml: allow empty interface name when 
4781         Get/Set a property
4782
4783 2005-01-29  Havoc Pennington  <hp@redhat.com>
4784
4785         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4786         though it uses glib, it could be extended for any binding in
4787         principle
4788
4789         * glib/dbus-gobject.c (gobject_message_function): change to the
4790         new way properties work
4791
4792         * dbus/dbus-protocol.h: add the new interfaces
4793
4794         * doc/dbus-specification.xml: document the introspection format,
4795         Introspectable interface, and add an org.freedesktop.Properties
4796         interface.
4797
4798         * glib/dbus-gparser.c: add support for a <property> element
4799
4800         * glib/dbus-gidl.c: add PropertyInfo
4801
4802         * glib/dbus-gobject.c (handle_introspect): put the outermost
4803         <node> outside the signal and property descriptions.
4804         (introspect_properties): export properties as <property> rather
4805         than as method calls
4806
4807 2005-01-28  Havoc Pennington  <hp@redhat.com>
4808
4809         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4810         related to authentication protocol
4811
4812 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4813
4814         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4815                 - BUS_ACTIVATION -> BUS_STARTER
4816                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4817                 - class MessageIter (__init__): Added recursion checking 
4818                 so we throw a nice error instead of just disconnecting from the
4819                 bus.
4820                 (get): Added arg_type parameter for recursion.
4821                 Removed the nil type
4822                 Added signiture type placeholder (not implemented)
4823                 Added struct type placeholder (not implemented)
4824                 Added varient type placeholder (not implemented)
4825                 Commented out dict type for now     
4826                 (get_element_type): renamed from get_array_type
4827                 (get_*): changed to use the dbus_message_iter_get_basic API
4828                 (get_*_array): removed in favor of recursive get_array method
4829                 (get_array): new recursive method which calls get to marshal
4830                 the elements of the array
4831                 (value_to_dbus_sig): New method returns the corrasponding
4832                 dbus signiture to a python value
4833                 (append): Comment out dict handling for now
4834                 Handle lists with the new recursive API
4835                 Comment out None handling for now
4836                 (append_nil): removed
4837                 (append_*): changed to use dbus_message_iter_append_basic API
4838                 (append_*_array): removed in favor of recursive append_array 
4839                 method
4840                 (__str__): Make it easier to print out recursive iterators
4841                 for debugging
4842                 - class Message (__str__): moved type inspection to the
4843                 MessageIter class' __str__ method
4844                 (get_iter): Added an append parameter wich defaults to False
4845                 If True use the new API's to create an append iterator
4846
4847         * python/dbus.py: Update to use new bindings API
4848                 - TYPE_ACTIVATION -> TYPE_STARTER
4849                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4850                 - class ActivationBus -> class StarterBus
4851                 - class RemoteObject (__call__): get an append iterator
4852                 - (_dispatch_dbus_method_call): get an append iterator
4853                 - class Object (emit_signal): get an append iterator
4854
4855         * python/examples/: Fixed up the examples to work with the new API
4856                 
4857 2005-01-28  Joe Shaw  <joeshaw@novell.com>
4858
4859         * configure.in: Bump version up to 0.30.
4860
4861         * HACKING: Add a release item to bump the version number up after 
4862         a release.
4863
4864 2005-01-28  Havoc Pennington  <hp@redhat.com>
4865
4866         * doc/dbus-specification.xml: update to describe 16-bit types and
4867         dict entries
4868
4869         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4870         assertion
4871
4872         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4873         type
4874
4875         * dbus/dbus-marshal-recursive.c: implement
4876
4877 2005-01-27  Havoc Pennington  <hp@redhat.com>
4878
4879         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4880
4881         * configure.in: find the right type for 16 and 32 bit ints as well
4882         as 64
4883
4884         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4885         the 16-bit types so people don't have to stuff them in 32-bit or
4886         byte arrays.
4887
4888 2005-01-27  Havoc Pennington  <hp@redhat.com>
4889
4890         * dbus/dbus-message.c: byteswap the message if you init an
4891         iterator to read/write from it
4892         
4893         * dbus/dbus-marshal-byteswap.c: new file implementing 
4894         _dbus_marshal_byteswap()
4895
4896         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4897
4898 2005-01-26  Havoc Pennington  <hp@redhat.com>
4899         
4900         * dbus/dbus-marshal-validate-util.c: break this out (and fix
4901         build, apparently - nobody noticed?)
4902         
4903 2005-01-26  Havoc Pennington  <hp@redhat.com>
4904
4905         * dbus/dbus-marshal-recursive.h: remove todo comment
4906
4907 2005-01-25  Joe Shaw  <joeshaw@novell.com>
4908
4909         * Land the mono binding changes to conform to the new APIs.
4910
4911         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4912         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4913
4914         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
4915         type code as a string.
4916         (InitAppending): Rename dbus_message_append_iter_init() to
4917         dbus_message_iter_init_append().
4918
4919         * mono/BusDriver.cs: Rename ServiceEventHandler to
4920         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
4921         Rename ServiceOwnerChanged to NameOwnerChanged.
4922
4923         * mono/Connection.cs: Rename BaseService to UniqueName, and the
4924         underlying C call.
4925
4926         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
4927
4928         * mono/Service.cs: Rename Exists to HasOwner, internally rename
4929         dbus_bus_acquire_service() to dbus_bus_request_name().
4930
4931         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4932         of Type.UnderlyingSystemType to get the correct element type for
4933         the array.
4934         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4935         dbus_message_get_{element|arg}_type() instead of
4936         dbus_message_iter_init_array_iterator().
4937         (Append): Replace dbus_message_iter_append_array() with
4938         dbus_message_iter_open_container() and
4939         dbus_message_iter_close_container().
4940
4941         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
4942         types have been removed.
4943         
4944         * mono/DBusType/*.cs: Replace calls of
4945         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4946         but specify the type in the DllImport extern declaration.  Ditto
4947         for dbus_message_iter_append_[type]() ->
4948         dbus_message_iter_append_basic().
4949
4950         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4951         NameOwnerChangedHandler.
4952
4953 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
4954
4955         * python/dbus_bindings.pyx.in: Rename of methods and bindings
4956                 - get_base_service -> get_unique_name
4957                 - bus_get_base_service -> bus_get_unique_name
4958                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4959                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
4960                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4961                 - bus_activate_service -> bus_start_service_by_name
4962                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4963                 - bus_acquire_service -> bus_request_name
4964                 - dbus_bus_acquire_service -> dbus_bus_request_name
4965                 - bus_service_exists -> bus_name_has_owner
4966                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4967
4968         * python/dbus.py: Rename of methods
4969                 - activate_service -> start_service_by_name
4970                 - bus_acquire_service -> bus_request_name
4971                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
4972                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4973
4974         
4975 2005-01-24  Joe Shaw  <joeshaw@novell.com>
4976
4977         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4978         signature for the method that can't be found.
4979
4980         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4981         the message has any arguments, we need to call
4982         _dbus_type_reader_get_current_type(), not
4983         _dbus_type_reader_has_next().
4984
4985 2005-01-24  Havoc Pennington  <hp@redhat.com>
4986
4987         * dbus/dbus-message-factory.c: more testing of message validation
4988
4989         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4990         header
4991
4992 2005-01-23  Havoc Pennington  <hp@redhat.com>
4993
4994         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
4995         get this all working, not many tests in the framework yet though
4996
4997 2005-01-22  Havoc Pennington  <hp@redhat.com>
4998
4999         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5000         tutorial, based on work from David Wheeler.
5001
5002 2005-01-21  Havoc Pennington  <hp@redhat.com>
5003
5004         * dbus/dbus-bus.c: add more return_if_fail checks
5005
5006         * dbus/dbus-message.c (load_message): have the "no validation"
5007         mode (have to edit the code to toggle the mode for now though)
5008
5009         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5010         skips all validation; I want to use this at least for benchmark
5011         baseline, I'm not sure if it should be a publicly-available switch.
5012
5013 2005-01-21  Havoc Pennington  <hp@redhat.com>
5014
5015         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5016         toplevel doxygen group as the low-level API stuff
5017
5018         * dbus/dbus.h: note that libdbus is the low-level API
5019
5020 2005-01-20  Havoc Pennington  <hp@redhat.com>
5021
5022         * update-dbus-docs.sh: script to update docs on the web site, only
5023         works for me though. neener.
5024
5025 2005-01-20  Havoc Pennington  <hp@redhat.com>
5026
5027         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5028         code can reveal bugs in it
5029
5030 2005-01-20  Havoc Pennington  <hp@redhat.com>
5031
5032         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5033         select() version, patches from Tor Lillqvist
5034
5035 2005-01-20  Havoc Pennington  <hp@redhat.com>
5036
5037         * doc/dbus-tutorial.xml: replace > with &gt;
5038
5039         * bus/services.c (bus_registry_acquire_service): validate the name
5040         and return a better error if it's no good.
5041
5042         * doc/dbus-specification.xml: note NO_AUTO_START change
5043
5044         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5045         from AUTO_START, we're toggling the default
5046
5047         * bus/dispatch.c: adapt the tests to change of auto-start default
5048
5049 2005-01-18  Havoc Pennington  <hp@redhat.com>
5050
5051         * rename dbus-daemon-1 to dbus-daemon throughout
5052
5053 2005-01-18  Havoc Pennington  <hp@redhat.com>
5054
5055         * Throughout, grand renaming to strip out the use of "service",
5056         just say "name" instead (or "bus name" when ambiguous).  Did not
5057         change the internal code of the message bus itself, only the
5058         programmer-facing API and messages.
5059         
5060         * doc/dbus-specification.xml: further update the message bus section
5061         
5062         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5063         in error case
5064
5065 2005-01-17  Havoc Pennington  <hp@redhat.com>
5066
5067         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5068         ever
5069
5070         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5071         "invalid name character" not only non-ASCII
5072
5073         * doc/dbus-specification.xml: further update spec, message bus 
5074         parts are still out-of-date but the marshaling etc. stuff is now
5075         accurate-ish
5076
5077 2005-01-17  Havoc Pennington  <hp@redhat.com>
5078
5079         * doc/dbus-specification.xml: partially update spec
5080
5081 2005-01-17  Havoc Pennington  <hp@redhat.com>
5082
5083         * Throughout, align variant bodies according to the contained
5084         type, rather than always to 8. Should save a fair bit of space in
5085         message headers.
5086         
5087         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5088         fix handling of case where p == end
5089
5090         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5091
5092 2005-01-17  Havoc Pennington  <hp@redhat.com>
5093
5094         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5095
5096         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5097         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5098         are marshaling/unmarshaling a boolean.
5099
5100 2005-01-16  Havoc Pennington  <hp@redhat.com>
5101
5102         This is about it on what can be disabled/deleted from libdbus
5103         easily, back below 150K anyhow. Deeper cuts are more work than 
5104         just turning the code off as I've done here.
5105         
5106         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5107         signed int convenience funcs
5108
5109         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5110         verbose mode
5111
5112         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5113         things out of libdbus
5114
5115         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5116         
5117         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5118         tests-enabled-only, though it should probably be deleted)
5119
5120         * dbus/dbus-message-util.c: same stuff
5121
5122         * dbus/dbus-auth-util.c: same stuff
5123
5124 2005-01-16  Havoc Pennington  <hp@redhat.com>
5125
5126         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5127
5128         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5129         way for stripping down dbus-userdb.c stuff included in libdbus.
5130         Rename _dbus_parse_uid for consistency.
5131
5132 2005-01-16  Havoc Pennington  <hp@redhat.com>
5133
5134         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5135         name the assertion failed in
5136
5137         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5138         (_dbus_return_val_if_fail): assert that the name of the function
5139         containing the check doesn't start with '_', since we only want to 
5140         use checks on public functions
5141         
5142         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5143         checks to assertions
5144
5145         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5146         change checks to asserts for private function
5147
5148         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5149         to asserts for private function
5150
5151         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5152         broken assertion that was breaking make check
5153         (_dbus_type_reader_array_is_empty): remove this rather than fix
5154         it, was only used in assertions
5155
5156 2005-01-16  Havoc Pennington  <hp@redhat.com>
5157
5158         * test/unused-code-gc.py: hacky script to find code that's used
5159         only by the bus (not libdbus) or used only by tests or not used at
5160         all. It has some false alarms, but looks like we can clean up a
5161         lot of size from libdbus.
5162
5163         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5164         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5165         
5166 2005-01-16  Havoc Pennington  <hp@redhat.com>
5167
5168         * Add and fix docs according to Doxygen warnings throughout
5169         source.
5170         
5171         * dbus/dbus-marshal-recursive.c
5172         (_dbus_type_reader_array_is_empty): change this to just call
5173         array_reader_get_array_len() and make it static
5174
5175         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5176         from get_array_type
5177         (dbus_message_iter_init_append): rename from append_iter_init
5178
5179         * dbus/dbus-marshal-recursive.c
5180         (_dbus_type_reader_get_element_type): rename from
5181         _dbus_type_reader_get_array_type
5182
5183 2005-01-15  Havoc Pennington  <hp@redhat.com>
5184
5185         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5186
5187         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5188         when DBUS_DISABLE_ASSERT
5189         (_dbus_marshal_set_basic): be sure we align for the string length
5190
5191         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5192         this look faster
5193
5194         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5195         inline macro version
5196         (_dbus_string_set_byte): provide inline macro version
5197
5198 2005-01-15  Havoc Pennington  <hp@redhat.com>
5199
5200         * Land the new message args API and type system.
5201
5202         This patch is huge, but the public API change is not 
5203         really large. The set of D-BUS types has changed somewhat, 
5204         and the arg "getters" are more geared toward language bindings;
5205         they don't make a copy, etc.
5206
5207         There are also some known issues. See these emails for details
5208         on this huge patch:
5209         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5210         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5211         
5212         * dbus/dbus-marshal-*: all the new stuff
5213
5214         * dbus/dbus-message.c: basically rewritten
5215
5216         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5217         freed blocks to be all non-nul bytes so using freed memory is less
5218         likely to work right
5219
5220         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5221         DBUS_FAIL_MALLOC=N environment variable, so you can do
5222         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5223         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5224         thorough.
5225
5226         * qt/message.cpp: port to the new message args API
5227         (operator<<): use str.utf8() rather than str.unicode()
5228         (pretty sure this is right from the Qt docs?)
5229
5230         * glib/dbus-gvalue.c: port to the new message args API
5231
5232         * bus/dispatch.c, bus/driver.c: port to the new message args API
5233
5234         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5235         "locked" flag to TRUE and align_offset to 0; I guess we never
5236         looked at these anyhow, but seems cleaner.
5237
5238         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5239         move allocation padding macro to this header; use it to implement
5240         (_DBUS_STRING_STATIC): ability to declare a static string.
5241
5242         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5243         change to return TRUE if the interface is not set.
5244
5245         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5246         to dbus-marshal-validate.[hc]
5247
5248         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5249         dbus-internals.c
5250
5251         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5252         to dbus-marshal-*.[hc]
5253
5254         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5255         function here from dbus-marshal.c
5256
5257 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5258
5259         * NEWS: Update for 0.23.
5260
5261         * configure.in: Release 0.23.
5262
5263 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5264
5265         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5266         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5267         behind.
5268
5269         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5270         uninstall"
5271
5272         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5273         is an enum, get the enum's underlying type.  Another mono
5274         1.1.3 fix.
5275
5276 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5277
5278         Patch from Sjoerd Simons <sjoerd@luon.net>
5279
5280         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5281         DESTDIR.  It breaks stuff.
5282
5283 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5284
5285         Patch from Tambet Ingo <tambet@ximian.com>
5286
5287         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5288         calling type.GetElementType().  The code previously depended on
5289         broken Mono behavior, which was fixed in Mono 1.1.3.
5290
5291         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5292         Activator.CreateInstance() so that the class's constructor is
5293         called with the right parameters.
5294
5295 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5296
5297         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5298
5299         * dbus/dbus-connection.c
5300         (_dbus_connection_queue_received_message_link): Call
5301         _dbus_connection_remove_timeout() instead of the _locked()
5302         variant, since it's always called from
5303         _dbus_connection_handle_watch(), which handles the locking.
5304         Removed the _locked() variant since it's no longer used.
5305
5306 2005-01-03  Havoc Pennington  <hp@redhat.com>
5307
5308         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5309         return
5310         
5311 2004-12-26  Havoc Pennington  <hp@redhat.com>
5312
5313         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5314
5315 2005-01-03  Havoc Pennington  <hp@redhat.com>
5316
5317         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5318         floating point
5319
5320         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5321
5322 2005-01-02  Havoc Pennington  <hp@redhat.com>
5323
5324         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5325
5326 2005-01-01  Havoc Pennington  <hp@redhat.com>
5327
5328         * configure.in: add -Wfloat-equal
5329
5330 2005-01-01  Havoc Pennington  <hp@redhat.com>
5331
5332         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5333         for a variety of reasons '==' doesn't do this.
5334
5335 2004-12-31  Havoc Pennington  <hp@redhat.com>
5336
5337         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5338         I keep wishing I had
5339
5340 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5341
5342         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5343
5344 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5345
5346         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5347         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5348         dbus-protocol.h.  Because they are defines and not enums they are not
5349         autogenerated.
5350
5351 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5352
5353         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5354         dbus_bus_activate_service
5355
5356         * python/dbus.py (Bus.activate_service): activate a service on the
5357         bus.
5358
5359 2004-12-24  Havoc Pennington  <hp@redhat.com>
5360
5361         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5362         file format has also changed and I haven't adapted to that yet
5363         
5364         * Makefile.am: load .gcno files from latest gcc
5365
5366 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5367         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5368
5369         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5370         lowlevel binding
5371
5372         * python/dbus.py (get_unix_user): Added binding to 
5373         call dbus_bindings.bus_get_unix_user
5374
5375         * python/extract.py: Modified the proto_pat regex to
5376         handle unsigned long
5377
5378 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5379
5380         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5381         better POSIX compliance.
5382
5383 2004-12-19  Havoc Pennington  <hp@redhat.com>
5384
5385         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5386         (_dbus_string_insert_8_aligned): new functions
5387
5388         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5389
5390 2004-12-18  Havoc Pennington  <hp@redhat.com>
5391
5392         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5393         macro
5394
5395         * dbus/dbus-message.c: fix a comment, and add a still-unused
5396         not-implemented function
5397
5398         * dbus/dbus-marshal.h: fix comment
5399
5400         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5401
5402 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5403
5404         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5405         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5406         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5407         Type.UnderlyingSystemType to get the actual system type
5408         underneath.  This code previously depended on the broken Mono
5409         behavior, which was fixed in 1.1.3.
5410
5411 2004-11-27  Havoc Pennington  <hp@redhat.com>
5412
5413         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5414         are disabled
5415         (_dbus_string_get_const_data): inline when asserts are disabled
5416
5417         * dbus/dbus-message.c: record the _dbus_current_generation of
5418         creation so we can complain if dbus_shutdown() is used improperly.
5419         Do this only if checks are enabled.
5420
5421         * dbus/dbus-connection.c: ditto
5422         
5423 2004-11-26  Havoc Pennington  <hp@redhat.com>
5424
5425         * test/glib/test-profile.c: add with_bus mode to profile echoes
5426         that go through the bus.
5427
5428         * test/glib/run-test.sh: add ability to run test-profile
5429
5430         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5431         config file reload.
5432
5433 2004-11-26  Havoc Pennington  <hp@redhat.com>
5434
5435         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5436         thing was implemented
5437
5438 2004-11-26  Havoc Pennington  <hp@redhat.com>
5439
5440         * test/glib/test-profile.c: tweak a bit, add support for some
5441         made-up minimal malloc overhead with plain sockets, since in 
5442         real life some sort of buffers are unavoidable thus we could 
5443         count them in the theoretical best case
5444
5445 2004-11-26  Havoc Pennington  <hp@redhat.com>
5446
5447         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5448         where I was trying to cache one too many messages
5449
5450 2004-11-26  Havoc Pennington  <hp@redhat.com>
5451
5452         * dbus/dbus-message.c: reimplement message cache as an array which 
5453         makes the cache about twice as fast and saves maybe 1.5% overall
5454
5455 2004-11-26  Havoc Pennington  <hp@redhat.com>
5456
5457         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5458         message cache lock here
5459
5460 2004-11-26  Havoc Pennington  <hp@redhat.com>
5461
5462         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5463         the "char byte_order" next to each other to save 4 bytes
5464         (dbus_message_new_empty_header): reduce preallocation, since the
5465         message cache should achieve a similar effect
5466         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5467         message cache that keeps a few DBusMessage around in a pool,
5468         another 8% speedup or so.
5469
5470         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5471
5472 2004-11-25  Havoc Pennington  <hp@redhat.com>
5473
5474         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5475         to write, without reading or blocking, try it before the poll()
5476         and skip the poll() if nothing remains to write. This is about a
5477         3% speedup in the echo client/server
5478
5479 2004-11-25  Havoc Pennington  <hp@redhat.com>
5480
5481         The primary change here is to always write() once before adding
5482         the write watch, which gives us about a 10% performance increase.
5483         
5484         * dbus/dbus-transport-unix.c: a number of modifications to cope
5485         with removing messages_pending
5486         (check_write_watch): properly handle
5487         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5488         messages_pending stuff
5489         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5490         AUTHENTICATED cases
5491         (unix_handle_watch): after writing, see if the write watch can be
5492         removed
5493         (unix_do_iteration): assert that write_watch/read_watch are
5494         non-NULL rather than testing that they aren't, since they 
5495         aren't allowed to be NULL. check_write_watch() at the end so 
5496         we add the watch if we did not finish writing (e.g. got EAGAIN)
5497
5498         * dbus/dbus-transport-protected.h: remove messages_pending call,
5499         since it resulted in too much inefficient watch adding/removing; 
5500         instead we now require that the transport user does an iteration 
5501         after queueing outgoing messages, and after trying the first
5502         write() we add a write watch if we got EAGAIN or exceeded our 
5503         max bytes to write per iteration setting
5504
5505         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5506         function
5507
5508         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5509         freed and then accessed, valgrind flagged this bug, fix it
5510
5511         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5512         as the last valid field plus 1, where really it is equal to the
5513         last valid field. Corrects some message corruption issues.
5514
5515         * dbus/dbus-mainloop.c: verbosity changes
5516
5517         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5518         instead of aborting in one of the test codepaths
5519
5520         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5521         caused not printing the pid ever again if a verbose was missing
5522         the newline at the end
5523         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5524
5525         * dbus/dbus-connection.c: verbosity changes; 
5526         (dbus_connection_has_messages_to_send): new function
5527         (_dbus_connection_message_sent): no longer call transport->messages_pending
5528         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5529         try to write() immediately, so we can avoid the write watch. This
5530         is the core purpose of this patchset
5531         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5532         dump the outgoing message queue, so nobody will get confused
5533         trying to send them or thinking stuff is pending to be sent
5534
5535         * bus/test.c: verbosity changes
5536
5537         * bus/driver.c: verbosity/assertion changes
5538
5539         * bus/dispatch.c: a bunch of little tweaks to get it working again
5540         because this patchset changes when/where you need to block.
5541
5542 2004-11-23  Havoc Pennington  <hp@redhat.com>
5543
5544         * test/glib/test-profile.c: modify to accept a plain_sockets
5545         argument in which case it will bench plain sockets instead of
5546         libdbus, for comparison purposes.
5547
5548 2004-11-22  Havoc Pennington  <hp@redhat.com>
5549
5550         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5551         threads for more time, so sysprof can get a grip on it.
5552
5553         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5554         pointless variable
5555
5556 2004-11-13  Havoc Pennington  <hp@redhat.com>
5557
5558         * test/glib/test-profile.c: fix this thing up a bit
5559
5560         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5561         preallocation sizes by a fair bit; not sure if this will be an
5562         overall performance win or not, but it does reduce reallocs.
5563
5564         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5565         the test hack that forced constant realloc if asserts are
5566         disabled, so we can profile sanely. Sprinkle in some
5567         _DBUS_UNLIKELY() which are probably pointless, but before I
5568         noticed the real performance problem I put them in.
5569         (_dbus_string_validate_utf8): micro-optimize this thing a little
5570         bit, though callgrind says it didn't help; then special-case
5571         ascii, which did help a lot; then be sure we detect nul bytes as
5572         invalid, which is a bugfix.
5573         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5574         superstition; use memset to nul the padding instead of a manual
5575         loop.
5576         (_dbus_string_get_length): inline this as a
5577         macro; it showed up in the profile because it's used for loop
5578         tests and so forth
5579
5580 2004-11-10  Colin Walters  <walters@verbum.org>
5581
5582         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5583         for extra paranoia.
5584
5585 2004-11-09  Colin Walters  <walters@verbum.org>
5586
5587         * dbus/dbus-string.c (_dbus_string_get_length): New
5588         function, writes DBusString to C buffer.
5589
5590         * dbus/dbus-string.h: Prototype it.
5591
5592         * dbus/dbus-message.c (dbus_message_type_to_string): New
5593         function, converts message type into C string.
5594
5595         * dbus/dbus-message.h: Prototype it.
5596
5597         * bus/selinux.c (bus_selinux_check): Take source pid,
5598         target pid, and audit data.  Pass audit data to
5599         avc_has_perm.
5600         (log_audit_callback): New function, appends extra
5601         audit information.
5602         (bus_selinux_allows_acquire_service): Also take
5603         service name, add it to audit data.
5604         (bus_selinux_allows_send): Also take message
5605         type, interface, method member, error name,
5606         and destination, and add them to audit data.
5607         (log_cb): Initialize func_audit.
5608         
5609         * bus/selinux.h (bus_selinux_allows_acquire_service)
5610         (bus_selinux_allows_send): Update prototypes 
5611
5612         * bus/services.c (bus_registry_acquire_service): Pass
5613         service name to bus_selinux_allows_acquire_service.
5614
5615         * bus/bus.c (bus_context_check_security_policy): Pass
5616         additional audit data.  Move assignment of dest
5617         to its own line.
5618
5619 2004-11-07  Colin Walters  <walters@verbum.org>
5620
5621         * dbus/dbus-transport-unix.c (do_authentication): Always
5622         initialize auth_completed.
5623         
5624 2004-11-07  Colin Walters  <walters@verbum.org>
5625
5626         * bus/bus.c (load_config): Break into three
5627         separate functions: process_config_first_time_only,
5628         process_config_every_time, and process_config_postinit.
5629         (process_config_every_time): Move call of
5630         bus_registry_set_service_context_table into
5631         process_config_postinit.
5632         (process_config_postinit): New function, does
5633         any processing that needs to happen late
5634         in initialization (and also on reload).
5635         (bus_context_new): Instead of calling load_config,
5636         open config parser here and call process_config_first_time_only
5637         and process_config_every_time directly.  Later, after
5638         we have forked but before changing UID,
5639         invoke bus_selinux_full_init, and then call
5640         process_config_postinit.
5641         (bus_context_reload_config): As in bus_context_new,
5642         load parse file inside here, and call process_config_every_time
5643         and process_config_postinit.
5644
5645         * bus/services.h, bus/services.c
5646         (bus_registry_set_service_context_table): Rename
5647         from bus_registry_set_sid_table.  Take string hash from config
5648         parser, and convert them here into SIDs.
5649
5650         * bus/config-parser.c (struct BusConfigParser): Have
5651         config parser only store a mapping of service->context
5652         string.
5653         (merge_service_context_hash): New function.
5654         (merge_included): Merge context string hashes instead
5655         of using bus_selinux_id_table_union.
5656         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5657         simply create a new string hash.
5658         (bus_config_parser_unref): Unref it.
5659         (start_selinux_child): Simply insert strings into hash,
5660         don't call bus_selinux_id_table_copy_over.
5661
5662         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5663         (bus_selinux_id_table_copy_over): Delete.
5664
5665 2004-11-03  Colin Walters  <walters@verbum.org>
5666
5667         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5668         variables.
5669         
5670 2004-11-03  Colin Walters  <walters@verbum.org>
5671
5672         * bus/test-main.c (test_pre_hook): Fix test logic,
5673         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5674
5675 2004-11-02  Colin Walters  <walters@redhat.com>
5676
5677         * bus/selinux.c (bus_selinux_init): Split into two functions,
5678         bus_selinux_pre_init and bus_selinux_post_init.
5679         (bus_selinux_pre_init): Just determine whether SELinux is
5680         enabled.
5681         (bus_selinux_post_init): Do everything else.
5682
5683         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5684         config file, and bus_selinux_post_init after.  This ensures that
5685         we don't lose the policyreload notification thread that
5686         bus_selinux_init created before forking previously.
5687         
5688         * bus/test-main.c (test_pre_hook): Update for split.
5689
5690 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5691
5692         Patch from Johan Fischer <linux@fischaz.com>
5693         
5694         * mono/doc/Makefile.am (install-data-local): Added directory
5695         install for DESTDIR
5696
5697 2004-10-29  Colin Walters  <walters@redhat.com>
5698
5699         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5700         parameter for fd to write pid to.       
5701
5702         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5703         
5704         * bus/bus.c (bus_context_new): Pass print_pid_fd
5705         to _dbus_become_daemon (bug #1720)
5706
5707 2004-10-29  Colin Walters  <walters@redhat.com>
5708
5709         Patch from Ed Catmur <ed@catmur.co.uk>
5710
5711         * mono/doc/Makefile.am (install-data-local): Handle
5712         DESTDIR.
5713
5714 2004-10-29  Colin Walters  <walters@redhat.com>
5715
5716         * bus/.cvsignore, qt/.cvsignore: Update.
5717
5718 2004-10-29  Colin Walters  <walters@redhat.com>
5719
5720         Patch from Kristof Vansant <de_lupus@pandora.be>
5721
5722         * configure.in: Detect Slackware.
5723         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5724         * bus/rc.messagebus.in: New file.
5725
5726 2004-10-29  Colin Walters  <walters@redhat.com>
5727
5728         * tools/dbus-monitor.c (filter_func): Return
5729         DBUS_HANDLER_RESULT_HANDLED in filter function
5730         for now.  See:
5731         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5732
5733 2004-10-29  Colin Walters  <walters@redhat.com>
5734
5735         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5736
5737         * bus/services.c (bus_registry_acquire_service): 
5738         Correctly retrieve service name from DBusString
5739         for printing.
5740
5741 2004-10-29  Colin Walters  <walters@redhat.com>
5742
5743         * dbus/dbus-glib.h: Update documentation to not
5744         refer to internal APIs.
5745
5746 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5747
5748         * mono/Arguments.cs (GetDBusTypeConstructor):
5749         type.UnderlyingSystemType will return "System.Byte" if you do it
5750         on "byte[]", which is not what we want.  So check the type.IsArray
5751         property and use System.Array instead.
5752
5753 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5754
5755         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5756         the DBusUserInfo structure since this is passed into the function.
5757         This would cause a double free when the function that allocated
5758         the structure would try to free it when an error occured.
5759
5760         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5761         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5762         for service activation to avoid 32bit/64bit parallel install issues
5763
5764 2004-10-21  Colin Walters  <walters@verbum.org>
5765
5766         * AUTHORS: Fix my email address, the @gnu.org one
5767         has been bouncing for some time.  Also add J5.
5768         
5769 2004-10-21  Colin Walters  <walters@verbum.org>
5770
5771         * dbus/dbus-transport-unix.c (do_authentication): Return
5772         authentication status to callers.
5773         (unix_handle_watch): If we completed authentication this round,
5774         don't do another read.  Instead wait until the next iteration,
5775         after we've read any pending data in the auth buffer.
5776         (unix_do_iteration): Ditto.
5777         (unix_handle_watch): Updated for new do_authentication prototype.
5778
5779 2004-10-18  Colin Walters  <walters@verbum.org>
5780
5781         * bus/selinux.c (bus_selinux_enabled): Handle
5782         --disable-selinux case.
5783         
5784 2004-10-18  Colin Walters  <walters@verbum.org>
5785
5786         * bus/selinux.h: Add bus_selinux_enabled.
5787         
5788         * bus/selinux.c (bus_selinux_enabled): Implement it.
5789         
5790         * bus/config-parser.c (struct include): Add
5791         if_selinux_enabled member.
5792         (start_busconfig_child): Parse if_selinux_enabled
5793         attribute for include.
5794         (bus_config_parser_content): Handle it.
5795
5796         * bus/session.conf.in, bus/system.conf.in: Add
5797         inclusion of context mapping to default config files;
5798         conditional on SELinux being enabled.
5799         
5800         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5801         
5802         * test/data/invalid-config-files/badselinux-1.conf, 
5803         test/data/invalid-config-files/badselinux-2.conf:
5804         Test files for bad syntax.
5805         
5806 2004-10-17  Colin Walters  <walters@verbum.org>
5807
5808         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5809         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5810         format specifier mismatches.
5811
5812 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5813
5814         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5815         format string.
5816
5817         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5818         pointer (bug #1540, Leonardo Boiko).
5819
5820 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5821
5822         * mono/BusDriver.cs: Changed BusDriver struct to remove
5823         the ServiceCreated and ServiceDeleted events and replace them
5824         with the new ServiceOwnerChanged event.
5825
5826         * mono/example/BusListener.cs: Added a new example program,
5827         which listens for and reports any ServiceOwnerChanged events
5828         on the bus driver.
5829
5830         * mono/example/Makefile.am (DESTDIR): Build changes for the
5831         new BusListener.cs example.
5832
5833 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5834
5835         * bus/signals.c (bus_match_rule_parse): validate the components of
5836         match rules (bug #1439).
5837
5838         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5839
5840 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5841
5842         * doc/dbus-specification.xml: document ServiceOwnerChanged
5843         signal.
5844         
5845         * bus/driver.c, bus/driver.h, bus/services.c: Use
5846         ServiceOwnerChanged signal instead of ServiceCreated and
5847         ServiceDeleted.
5848         
5849         * bus/dispatch.c: update testcase for the new signal.
5850
5851 2004-09-20  Jon Trowbridge  <trow@ximian.com>
5852
5853         Patch from Nat Friedman <nat@novell.com>
5854
5855         * mono/Makefile.am: A number of small build fixes to allow "make
5856         distcheck" to succeed.
5857
5858         * mono/example/Makefile.am: "make distcheck" fixes.
5859
5860         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5861         key in @srcdir@.
5862
5863         * test/Makefile.am: "make distcheck" fixes.
5864
5865 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5866
5867         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5868
5869         * doc/busconfig.dtd: update the DTD for the at_console attribute.
5870
5871         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5872         messages after the first one (bug #1389).
5873         
5874         * bus/dispatch.c (check_double_hello_message): add a test case for
5875         the double hello message bug.
5876         (check_existent_service_activation): fix check of spawning error.
5877         
5878 2004-09-16  David Zeuthen  <david@fubar.dk>
5879
5880         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5881
5882 2004-09-12  David Zeuthen  <david@fubar.dk>
5883
5884         Patch from Kay Sievers <kay.sievers@vrfy.org>
5885
5886         * bus/bus.c (bus_context_new):
5887         * bus/bus.h:
5888         * bus/main.c (usage)
5889         (main):
5890         Add commandline option --nofork to override configuration file
5891         setting.
5892
5893 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5894
5895         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5896         compilers don't like it (bug #974).
5897
5898 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
5899
5900         * qt/connection.*: Applied patch by Jérôme Lodewyck
5901         <lodewyck@clipper.ens.fr> to integrate an existing
5902         connection into the Qt eventloop
5903
5904 2004-08-30  Jon Trowbridge  <trow@ximian.com>
5905
5906         * mono/BusDriver.cs: Added.  This is a class for interacting with
5907         the org.freedesktop.DBus service.
5908
5909         * mono/Message.cs: Added a mechanism to expose the message that is
5910         currently being dispatched via the static Message.Current
5911         property.  Added Message.Sender and Message.Destination
5912         properties.
5913
5914         * mono/Handler.cs: Expose the dispatched message via
5915         Message.Current when handling method calls.
5916
5917         * mono/Service.cs: Expose the dispatched message via
5918         Message.Current when handling signal emissions.
5919         
5920         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5921         Connection.BaseService property.
5922
5923 2004-08-28  Havoc Pennington  <hp@redhat.com>
5924
5925         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5926
5927         More fixes from Steve Grubb
5928         
5929         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5930         (_dbus_listen_tcp_socket): fix fd leak
5931
5932         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5933         EINTR to a bit lower in the code
5934
5935 2004-08-26  Jon Trowbridge  <trow@ximian.com>
5936
5937         * bus/driver.c (bus_driver_handle_service_exists): Respond with
5938         TRUE if we are inquiring about the existence of the built-in
5939         org.freedesktop.DBus service.
5940
5941 2004-08-25  John Palmieri  <johnp@redhat.com>
5942         * bus/config-parser.c:
5943         (struct PolicyType): Add POLICY_CONSOLE
5944         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5945         (start_busconfig_child): Sets up console element when
5946         <policy at_console=""> is encountered in a policy file
5947         (append_rule_from_element): Convert console elements to console
5948         rules.
5949
5950         * bus/policy.c: 
5951         (bus_policy_create_client_policy): Add console rules to the client
5952         policy based on if the client is at the console
5953         (bus_policy_append_console_rule): New function for adding a
5954         console rule to a policy
5955         (bus_policy_merge): Handle console rule merging
5956
5957         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5958         where we check for console user files
5959         
5960         * dbus/dbus-sysdeps.c:
5961         (_dbus_file_exists): New function which checks if the given
5962         file exists
5963         (_dbus_user_at_console): New function which does the system
5964         specific process of checking if the user is at the console
5965
5966         * dbus/dbus-userdb.c:
5967         (_dbus_is_console_user): New function converts a UID to user name
5968         and then calls the system specific _dbus_user_at_console to 
5969         see if the user is at the console and therefor a console user
5970
5971 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5972
5973         * bus/config-parser.c (set_limit):
5974         * bus/dbus-daemon-1.1.in:
5975         * test/data/valid-config-files/many-rules.conf: set the
5976         max_match_rules_per_connection limt from the config file. 
5977
5978         * doc/busconfig.dtd: update the DTD.
5979
5980         * bus/driver.c: remove some unused variables.
5981
5982 2004-08-24  Mikael Hallendal  <micke@imendio.com>
5983
5984         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
5985         it's been replaced by dbus_g_bus_get
5986
5987 2004-08-23  Colin Walters  <walters@redhat.com>
5988
5989         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5990
5991         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5992
5993         * bus/selinux.c: Create a thread for policy reload notification.
5994         (bus_selinux_get_policy_root): Implement.
5995
5996         * bus/config-parser.c (start_busconfig_child)
5997         (bus_config_parser_content): Support SELinux-root relative
5998         inclusion.
5999
6000         * configure.in <HAVE_SELINUX>: Add -lpthread.
6001         
6002         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6003         (test_post_hook): Move memory checking into here.
6004         (test_pre_hook, test_post_hook): Move SELinux checks in
6005         here, but conditional on a DBUS_TEST_SELINUX environment
6006         variable.  Unfortunately we can't run the SELinux checks
6007         as a normal user, since they won't have any permissions
6008         for /selinux.  So this will have to be tested manually
6009         for now, until we have virtualization for most of
6010         libselinux.
6011         
6012 2004-08-23  Havoc Pennington  <hp@redhat.com>
6013
6014         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6015         drop supplementary groups, suggested by Steve Grubb
6016
6017 2004-08-20  Colin Walters  <walters@redhat.com>
6018
6019         * bus/config-parser.c (start_busconfig_child): Remove some unused
6020         variables.
6021         
6022         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6023         warning.
6024
6025 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6026
6027         * configure.in: If --enable-mono is passed in, if we can't find
6028         mono error out.
6029
6030         * mono/Makefile.am: Use /gacutil to install assemblies into the
6031         GAC and not /root.
6032
6033 2004-08-12  Havoc Pennington  <hp@redhat.com>
6034
6035         * NEWS: update for 0.22
6036
6037         * configure.in: release 0.22
6038
6039 2004-08-11  Colin Walters  <walters@redhat.com>
6040
6041         * tools/dbus-send.c (main, usage): Add --reply-timeout
6042         argument.
6043
6044 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6045
6046         * bus/bus.c (process_config_first_time_only): get rid of an unused
6047         DBusError that was causing a memoy leak (bug #989).
6048
6049         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6050         fix compilation on Solaris/Forte C (bug #974)
6051
6052         * bus/main.c (main): plug two minuscule memleaks.
6053
6054 2004-08-10  Havoc Pennington  <hp@redhat.com>
6055
6056         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6057
6058 2004-08-09  Havoc Pennington  <hp@redhat.com>
6059
6060         * COPYING: switch to Academic Free License version 2.1 instead of
6061         2.0, to resolve complaints about patent termination clause.
6062
6063 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6064
6065         * README: added documentation for the --enable-python 
6066         configure switch.
6067
6068 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6069
6070         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6071         _unref in the SELinux support.
6072
6073         * doc/busconfig.dtd: update DTD for SELinux support.
6074
6075         * bus/config-loader-libxml.c: fix error handler and parser
6076         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6077
6078         * configure.in: remove the warning about libxml2.
6079
6080         * dbus/dbus-bus.c: silence doxygen warning.
6081
6082 2004-07-31  Colin Walters  <walters@redhat.com>
6083
6084         * configure.in: Move #error in SELinux check to its own line.
6085
6086 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6087
6088         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6089         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6090         dbus_error_set.
6091
6092         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6093         broken by the change in the _SET_OOM macros.
6094
6095 2004-07-31  Colin Walters  <walters@redhat.com>
6096
6097         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6098         BUS_SET_OOM.
6099
6100 2004-07-31  Colin Walters  <walters@redhat.com>
6101
6102         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6103         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6104         AC_MSG_CHECKING.
6105
6106 2004-07-24  Havoc Pennington  <hp@redhat.com>
6107
6108         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6109
6110         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6111         functionality
6112
6113         * configure.in: add --enable-selinux
6114         
6115         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6116
6117         * bus/main.c (main): initialize and shut down selinux
6118
6119         * bus/connection.c: store SELinux ID on each connection, to avoid 
6120         repeated getting of the string context and converting it into 
6121         an ID
6122
6123         * bus/bus.c (bus_context_get_policy): new accessor, though it
6124         isn't used
6125         (bus_context_check_security_policy): check whether the security
6126         context of sender connection can send to the security context of
6127         recipient connection
6128
6129         * bus/config-parser.c: add parsing for <selinux> and <associate>
6130         
6131         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6132         implement dbus_connection_get_unix_fd()
6133
6134         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6135         function, used by the selinux stuff
6136         
6137 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6138
6139         * bus/config-loader-libxml.c: complete the implementation of
6140         libxml backend for config file loader. Doesn't work with full OOM
6141         test yet. 
6142         
6143         * configure.in: change error when selecting libxml into a warning.
6144         
6145         * test/data/invalid-config-files: add two non-well-formed XML
6146         files. 
6147         
6148         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6149         
6150         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6151         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6152         be necessary to read all the buffer. (bug #894)
6153
6154         * bus/activation.c (bus_activation_activate_service): fix a
6155         potential assertion failure (bug #896). Small optimization in the
6156         case of auto-activation messages.
6157
6158         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6159         add test case for byte-through-vararg bug (#901). patch by Kimmo
6160         Hämäläinen. 
6161
6162 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6163
6164         * python/dbus.py:
6165         * python/dbus_bindings.pyx.in:
6166         Add dbus.init_gthreads (), allow emit_signal to pass
6167         arguments to the signal.
6168         
6169 2004-07-24  Havoc Pennington  <hp@redhat.com>
6170
6171         * AUTHORS: add some people, not really comprehensively, let me
6172         know if I missed you
6173
6174 2004-07-24  Havoc Pennington  <hp@redhat.com>
6175
6176         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6177         Owen
6178
6179         * test/Makefile.am (DIST_SUBDIRS): here also
6180
6181 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6182
6183         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6184         breaking build on Solaris, reported by Farhad Saberi on the ML.
6185
6186         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6187         va_arg invocation to account for integer promotion in the case of
6188         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6189
6190         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6191         _dbus_list_get_first_link, not _dbus_list_get_first.
6192
6193         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6194
6195         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6196         handler functions so that the asserts in _dbus_object_subtree_unref
6197         do not fail.
6198
6199         * dbus/dbus-transport-unix.c (do_reading):
6200         _dbus_transport_queue_messages return value is of type
6201         dbus_bool_t, not DBusDispatchStatus.
6202         
6203 2004-07-19  David Zeuthen  <david@fubar.dk>
6204
6205         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6206
6207         * bus/dispatch.c:
6208         (check_get_connection_unix_user): Debug says GetProperty; but the
6209         method is called GetConnectionUnixUser
6210         (check_get_connection_unix_process_id): New function
6211         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6212         also call check_get_connection_unix_process_id()
6213         
6214         * bus/driver.c:
6215         (bus_driver_handle_get_connection_unix_process_id): New function,
6216         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6217         interface
6218         
6219         * dbus/dbus-auth.c:
6220         (handle_server_data_external_mech): Set pid from the credentials
6221         obtained from the socket
6222         
6223         * dbus/dbus-connection.c:
6224         (dbus_connection_get_unix_process_id): New function
6225         
6226         * dbus/dbus-connection.h: 
6227         Add prototype for dbus_connection_get_unix_process_id
6228         
6229         * dbus/dbus-transport.c:
6230         (_dbus_transport_get_unix_process_id): New function
6231         
6232         * dbus/dbus-transport.h:
6233         Add prototype for _dbus_transport_get_unix_process_id
6234         
6235 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6236
6237         * dbus/dbus-message.c: Message counter fix, patch by Christian
6238         Hammond <chipx86@gnupdate.org>
6239
6240 2004-07-18  Seth Nickell  <seth@gnome.org>
6241
6242         * python/dbus.py:
6243         * python/dbus_bindings.pyx.in:
6244         * python/tests/test-client.py:
6245
6246         Add dbus.ByteArray and dbus_bindings.ByteArray
6247         types so that byte streams can be passed back.
6248
6249         Give jdahlin the heaps of credit that are so
6250         rightfully his.
6251         
6252 2004-07-12  Seth Nickell  <seth@gnome.org>
6253
6254         * python/dbus.py:
6255
6256         Add message argument to the default object_method_handler
6257         function.
6258         
6259         * python/dbus_bindings.pyx.in:
6260
6261         Automatically return NIL when passed an empty list
6262         (we can't pass back a list since lists are typed
6263         and we don't have any idea what type the the client
6264         intended the list to be... :-( )
6265         
6266 2004-07-10  Seth Nickell  <seth@gnome.org>
6267
6268         * python/examples/Makefile.am:
6269
6270         Fix distcheck breakage caused by new examples.
6271
6272 2004-07-10  Seth Nickell  <seth@gnome.org>
6273
6274         * python/dbus.py:
6275
6276         Add "message" argument to service-side dbus.Object
6277         methods. This will break existing services written
6278         using the python bindings, but will allow extraction
6279         of all the message information (e.g. who its from).
6280
6281         Add improved "object oriented" signal handling/emission.
6282         
6283         * python/examples/example-service.py:
6284
6285         Nix this example.
6286         
6287         * python/examples/example-signal-emitter.py:
6288         * python/examples/example-signal-recipient.py:
6289
6290         Two new examples that show how to emit and receive
6291         signals using the new APIs.
6292         
6293         * python/examples/example-signals.py:
6294         * python/examples/gconf-proxy-service.py:
6295         * python/examples/gconf-proxy-service2.py:
6296
6297         Add "message" argument to service methods.
6298
6299 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6300
6301         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6302         * dbus/bus.c (dbus_bus_get_unix_user)
6303         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6304         method of org.freedesktop.DBus interface.
6305
6306         * bus/dispatch.c: test case
6307
6308 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6309
6310         * python/Makefile.am: switched include directory from glib/ to dbus/
6311         since dbus-glib.h moved
6312  
6313 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6314
6315         * configure.in: prevent building the gcj stuff and libxml loader
6316         since they are broken.
6317
6318 2004-06-20  Havoc Pennington  <hp@redhat.com>
6319
6320         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6321         codes from the dbus error names
6322         
6323         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6324         as dbus/dbus-glib.h and that breakage is now visible due to 
6325         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6326         
6327         * glib/dbus-glib.h: s/gproxy/g_proxy/
6328
6329         * dbus/dbus-shared.h: new header to hold stuff shared with
6330         binding APIs
6331         
6332         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6333         than dbus-errors.h
6334
6335         * glib/dbus-glib.h (dbus_set_g_error): move to
6336         dbus-glib-lowlevel.h
6337
6338         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6339         of stuff to enable this
6340
6341         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6342
6343         * a bunch of other changes with the same basic "separate glib 
6344         bindings from dbus.h" theme
6345         
6346 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6347
6348         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6349
6350         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6351
6352 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6353
6354         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6355         the reply value of the ServiceExists message.
6356
6357 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6358
6359         * python/dbus_bindings.pyx.in: No longer need to parse path
6360         elements and pass them as arrays of strings.  The C API now
6361         accepts plain path strings.
6362         (_build_parsed_path): removed 
6363
6364 2004-06-07  Havoc Pennington  <hp@redhat.com>
6365
6366         * doc/TODO: remove auto-activation item since it's done; sort
6367         items by importance/milestone
6368
6369 2004-06-07  Havoc Pennington  <hp@redhat.com>
6370
6371         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6372         random signature when using REQUIRED_FIELDS (this hack won't work
6373         in the long term)
6374
6375         * dbus/dbus-message.c: change the signature to be a header field,
6376         instead of message->signature special-case string. Incremental
6377         step forward. Then we can fix up code to send the signature in the
6378         message, then fix up code to validate said signature, then fix up
6379         code to not put the typecodes inline, etc.
6380         (load_one_message): don't make up the signature after the fact
6381         (decode_header_data): require signature field for the known
6382         message types
6383
6384         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6385
6386         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6387
6388 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6389
6390         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6391
6392         * mono/Handler.cs: Updated to follow new path argument for
6393         (un-)registering objects.
6394
6395         * mono/example/Makefile.am:
6396         * mono/Makefile.am:
6397         * configure.in: Bumped required version for mono and use new -pkg
6398         syntax for deps
6399
6400 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6401
6402         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6403         registration functions take the path argument as char* instead of
6404         char**.
6405
6406         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6407         split off the path decompostion part of
6408         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6409         warnings. 
6410
6411         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6412         
6413 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6414  
6415         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6416         machine approach.  A state is implemented as a function that
6417         handles incoming events as specified for that state.
6418         
6419         * doc/dbus-specification.xml: Update auth protocol state machine
6420         specification to match implementation.  Remove some leftover
6421         base64 examples.
6422
6423 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6424
6425         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6426         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6427         quiet doxygen.
6428
6429         * Doxyfile.in: remove deprecated options.
6430
6431         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6432         glib/test-thread.h, glib/test-thread-client.c,
6433         glib/test-thread-server.c, glib/test-profile.c,
6434         glib/test-dbus-glib.c: remove these unused files.
6435
6436 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6437
6438         * dbus/dbus-object-tree.c
6439         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6440         non-fallback handlers (bug #684).
6441         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6442         (find_subtree_recurse): report wether the returned subtree is an
6443         exact match or a "fallback" match higher up in the tree.
6444         (object_tree_test_iteration): update test case.
6445
6446 2004-06-01  Seth Nickell  <seth@gnome.org>
6447
6448         * python/dbus_bindings.pyx.in:
6449         * python/tests/test-client.py:
6450
6451         Round off basic type support. Add dicts (yay!), and 
6452         remaining array types.
6453
6454         Make MessageIter more general so it works for dicts too.
6455
6456         Mark all loop variables as C integers.
6457         
6458 2004-05-31  Havoc Pennington  <hp@redhat.com>
6459
6460         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6461         "in" before "out"
6462
6463         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6464
6465         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6466         option that runs the tests, and start filling in some code
6467         including for starters just dumping the interfaces to stdout
6468
6469         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6470
6471         * test/data/valid-introspection-files/lots-of-types.xml: test of
6472         an example introspection file
6473
6474         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6475         "node" (I think...)
6476
6477 2004-05-31  Seth Nickell  <seth@gnome.org>
6478
6479         * python/dbus_bindings.pyx.in:
6480         * python/tests/test-client.py:
6481
6482         Test Suite: 1
6483         Python Bindings: 0
6484
6485         Fix string array memory trashing bug... oops...
6486
6487 2004-05-30  Seth Nickell  <seth@gnome.org>
6488
6489         * python/dbus.py:
6490
6491         Add a nicer-but-less-flexible alternate API for handling 
6492         calls to virtual objects in dbus.ObjectTree.
6493
6494         Screw up the argument order to the dbus.Object constructor
6495         for consistency with dbus.ObjectTree (and to make dbus_methods
6496         optional for future extension)
6497         
6498         * python/examples/Makefile.am:
6499         * python/examples/gconf-proxy-service.py:
6500         * python/examples/gconf-proxy-service2.py:
6501
6502         Alternate implementation of gconf-proxy-service using the
6503         nicer dbus.ObjectTree API.
6504         
6505         * python/examples/example-service.py:
6506         * python/tests/test-server.py
6507
6508         Reverse the argument order to deal with dbus.Object constructor
6509         changes.
6510         
6511 2004-05-30  Seth Nickell  <seth@gnome.org>
6512
6513         * python/examples/example-client.py:
6514         * python/examples/example-service.py:
6515
6516         Take it back. Lists seem to work but they're broken
6517         in the test suite. Make the base examples use
6518         lists (works fine).
6519
6520 2004-05-30  Seth Nickell  <seth@gnome.org>
6521
6522         * python/dbus_bindings.pyx.in:
6523         * python/tests/test-client.py:
6524
6525         Add some more tests and fix errors that crop up.
6526         Unfortunately, currently it seems like marshalling
6527         and unmarshalling of lists is completely broken :-(
6528
6529 2004-05-30  Seth Nickell  <seth@gnome.org>
6530
6531         * python/dbus_bindings.pyx.in:
6532
6533         Add support for ObjectPath type.
6534
6535         * python/dbus.py:
6536
6537         Refactor message handling code to a common function.
6538         
6539         * python/tests/test-client.py:
6540         * python/tests/test-server.py:
6541
6542         Add tests that check to make sure values of all types
6543         can be echoed from a service w/o mangling.
6544         
6545 2004-05-29  Seth Nickell  <seth@gnome.org>
6546
6547         * python/dbus.py:
6548
6549         Add ObjectTree class which allows implementation
6550         of trees of "virtual" objects. Basically the python
6551         wrapper for "register_fallback".
6552         
6553         * python/examples/Makefile.am
6554         * python/examples/gconf-proxy-client.py:
6555         * python/examples/gconf-proxy-service.py:
6556
6557         Implement a simple GConf proxy service that supports
6558         get/set on string and int GConf keys using the ObjectTree.
6559         
6560 2004-05-29  Seth Nickell  <seth@gnome.org>
6561
6562         * python/dbus.py:
6563         * python/examples/example-client.py:
6564         * python/examples/example-service.py:
6565         * python/examples/list-system-services.py:
6566
6567         Add SessionBus, SystemBus and ActivationBus classes
6568         so you don't need to know the special little BUS_TYPE
6569         flag.
6570         
6571 2004-05-29  Havoc Pennington  <hp@redhat.com>
6572
6573         * bus/config-parser.c (process_test_valid_subdir): temporarily
6574         stop testing config parser OOM handling, since expat has issues
6575         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6576
6577         * bus/dbus-daemon-1.1.in: change requested_reply to
6578         send_requested_reply/receive_requested_reply so we can send the
6579         replies, not just receive them.
6580
6581         * bus/config-parser.c: parse the new
6582         send_requested_reply/receive_requested_reply
6583
6584         * bus/policy.c (bus_client_policy_check_can_send): add
6585         requested_reply argument and use it
6586
6587         * bus/bus.c (bus_context_check_security_policy): pass through
6588         requested_reply status to message send check
6589
6590         * bus/system.conf.in: adapt to requested_reply change
6591         
6592 2004-05-28  Havoc Pennington  <hp@redhat.com>
6593
6594         * test/glib/test-service-glib.c (main): remove unused variable
6595
6596         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6597
6598         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6599         from the enum, no longer in use.
6600
6601         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6602         works right.
6603
6604         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6605         whether error_name passed in is a valid error name.
6606
6607 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6608
6609         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6610         OBJECT_PATH and OBJECT_PATH_ARRAY
6611
6612 2004-05-28  Seth Nickell  <seth@gnome.org>
6613
6614         * python/examples/Makefile.am:
6615
6616         Forget to add Makefile.am. Do not pass go.
6617
6618 2004-05-28  Michael Meeks  <michael@ximian.com>
6619
6620         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6621         fix no int64 case.
6622
6623         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6624
6625         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6626         (_dbus_message_iter_get_basic_type_array): impl.
6627         drastically simplify ~all relevant _get methods to use these.
6628         (_dbus_message_iter_append_basic_array),
6629         (dbus_message_iter_append_basic): impl
6630         drastically simplify ~all relevant _append methods to use these.
6631
6632         * dbus/dbus-message-builder.c (parse_basic_type) 
6633         (parse_basic_array, lookup_basic_type): impl.
6634         (_dbus_message_data_load): prune scads of duplicate /
6635         cut & paste coding.
6636
6637         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6638         (_dbus_demarshal_basic_type): implement,
6639         (demarshal_and_validate_len/arg): beef up debug.
6640         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6641
6642 2004-05-27  Seth Nickell  <seth@gnome.org>
6643
6644         * configure.in:
6645         * python/Makefile.am:
6646
6647         Include the example python apps in the tarball.
6648         
6649         * python/examples/list-system-services.py
6650
6651         Add a python new example that fetches the list of services
6652         from the system bus.
6653         
6654 2004-05-27  Seth Nickell  <seth@gnome.org>
6655
6656         * python/dbus.py:
6657         * python/dbus_bindings.pyx.in:
6658
6659         Fix failure to notify that a signal was not handled,
6660         resulted in hung functions.
6661         
6662 2004-05-25  Colin Walters  <walters@redhat.com>
6663
6664         * tools/dbus-monitor.c (main): Monitor all types of messages.
6665
6666 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6667
6668         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6669         which unregisters the object path and disposes the handler.
6670
6671 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6672  
6673         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6674          
6675         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6676         operands to && so we call dbus_message_iter_next () for the last
6677         argument also.
6678
6679 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6680
6681         * dbus/dbus-object-tree.c
6682         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6683         children even if the requested path isn't registered.
6684         (object_tree_test_iteration): test object_tree_list_registered.
6685
6686         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6687         it to 0.
6688         
6689 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6690
6691         * doc/TODO: Remove resolved items.
6692
6693         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6694         field.
6695         
6696         * bus/connection.c (bus_connections_expect_reply): Enforce the
6697         per-connection limit on pending replies.
6698         
6699         Patch from Jon Trowbridge <trow@ximian.com>:
6700  
6701         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6702         up a watch that triggers a config reload when one end of the pipe
6703         becomes readable.
6704         (signal_handler): Instead of doing the config reload in our SIGHUP
6705         handler, just write to the reload pipe and let the associated
6706         watch handle the reload when control returns to the main loop.
6707  
6708         * bus/driver.c (bus_driver_handle_reload_config): Added.
6709         Implements a ReloadConfig method for requesting a configuration
6710         file reload via the bus driver.
6711  
6712 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6713
6714         * HACKING: Updated release instructions concerning the wiki page.
6715
6716 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6717
6718         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6719         filter against auth->allowed_mechs; we only add allowed mechs in
6720         record_mechanisms().
6721  
6722         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6723         ALLOWED_MECHS to auth-script format so we can set the list of
6724         allowed mechanisms.
6725  
6726         * data/auth/client-out-of-mechanisms.auth-script: New test to
6727         check client disconnects when it is out of mechanisms to try.
6728  
6729         * dbus/dbus-auth.c (process_command): Remove check for lines
6730         longer that 1 MB; we only buffer up maximum 16 kB.
6731  
6732         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6733         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6734         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6735         assume there might be unused bytes.
6736  
6737         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6738         client-out-of-mechs, it is handled in process_reject(). Move check
6739         for max failures to send_rejected(), as it's a server-only thing.
6740
6741         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6742         send_auth(), send_data(), send_rejected(), send_error(),
6743         send_ok(), send_begin() and send_cancel().
6744
6745 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6746
6747         Remove base64 encoding, replace with hex encoding. Original patch
6748         from trow@ximian.com, added error handling.
6749
6750         * dbus/dbus-string.c (_dbus_string_base64_encode)
6751         (_dbus_string_base64_decode): Remove.
6752         (_dbus_string_hex_decode): Add end_return argument so we can
6753         distinguish between OOM and invalid hex encoding.
6754         (_dbus_string_test): Remove base64 tests and add test case for
6755         invalid hex.
6756
6757         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6758         Replace base64 with hex.
6759
6760         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6761         for invalid hex encoded data in auth protocol.
6762
6763 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6764
6765         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6766         leak.
6767
6768 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6769
6770         * mono/dbus-sharp.dll.config.in: Added for GAC
6771         * mono/dbus-sharp.snk: Added for GAC
6772         * mono/Assembly.cs.in: Added for GAC
6773         * mono/Makefile.am: Changes for GAC installation        
6774         * configure.in: Added refs for dbus-sharp.dll.config.in and
6775         Assembly.cs.in. More fixes for mono testing
6776         * mono/example/Makefile.am: Changed var to CSC
6777         * Makefile.am: Changed flag name to DBUS_USE_CSC
6778
6779 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6780
6781         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6782         * mono/doc/*: Added documentation framework
6783         * configure.in: Added monodoc check
6784         * README: Added description of mono configure flags
6785
6786 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6787
6788         * doc/dbus-specification.xml: Added a "Required" column to the 
6789         header fields table and changed the "zero or more" verbage in
6790         the above paragraph to read "The header must contain the required 
6791         named header fields and zero or more of the optional named header 
6792         fields".
6793         * test/data/invalid-messages/*.message: Added the required PATH 
6794         named header field to the tests so that they don't fail on 
6795         'Missing path field'
6796
6797 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6798
6799         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6800         the stack by implicitly defining variable and parameter types and
6801         removing the hack of defining C pointers as python objects and later
6802         casting them.
6803
6804 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6805
6806         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6807
6808 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6809
6810         * mono/DBusType/Dict.cs: Handle empty dicts
6811         * mono/DBusType/Array.cs: Handle empty arrays
6812         * mono/Arguments.cs: Handle empty arguments
6813
6814 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6815
6816         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6817         field
6818
6819 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6820
6821         * test/data/valid-messages/standard-*.message: Update message
6822         test scripts to new header field names.
6823
6824 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6825
6826         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6827         overflow to times_we_did_each_thing array which would chop off the
6828         first character of the failure_dir string. Increased the size of
6829         the array to 7 to reflect the number of random mutation functions
6830         we have.
6831
6832 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6833
6834         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6835         unix_server->watch here, it is unreffed in disconnect.
6836         (_dbus_server_new_for_tcp_socket): convert NULL host to
6837         "localhost" here so we don't append NULL to address.
6838         
6839         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6840         various addresses, including tcp with no explicit host.
6841
6842 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6843
6844         * dbus/dbus-message.c (decode_header_data, decode_string_field):
6845         fix incorrect setting of .name_offset in the HeaderField (it was
6846         off by two bytes, positioned right after the name and typecode)
6847
6848         * bus/bus.c (bus_context_new, bus_context_unref): test before
6849         calling dbus_server_free_data_slot and _dbus_user_database_unref
6850         in case of an error.
6851
6852         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6853         by libdbus-gtool.
6854
6855 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
6856
6857         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6858         _dbus_poll() instead of select().
6859
6860 2004-04-15  Jon Trowbridge  <trow@ximian.com>
6861
6862         * bus/main.c (signal_handler): Reload the configuration files
6863         on SIGHUP.
6864         (main): Set up our SIGHUP handler.
6865
6866         * bus/bus.c (struct BusContext): Store the config file, user and
6867         fork flag in the BusContext.
6868         (process_config_first_time_only): Added.  Contains the code
6869         (previously in bus_context_new) for setting up the BusContext from
6870         the BusConfigParser that should only be run the first time the
6871         config files are read.
6872         (process_config_every_time): Added.  Contains the code (previously
6873         in bus_context_new) for setting up the BusContext from the
6874         BusConfigParser that should be run every time the config files are
6875         read.
6876         (load_config): Added.  Builds a BusConfigParser from the config
6877         files and passes the resulting structure off to
6878         process_config_first_time_only (assuming this is the first time)
6879         and process_config_every_time.
6880         (bus_context_new): All of the config-related code has been moved
6881         to process_config_first_time_only and process_config_every_time.
6882         Now this function just does the non-config-related initializations
6883         and calls load_config.
6884         (bus_context_reload_config): Added.
6885
6886 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6887
6888         * bus/driver.c (bus_driver_handle_get_service_owner):
6889         implement a GetServiceOwner method.
6890         * doc/dbus-specification.xml: document it.
6891         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6892         
6893         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6894         implement, using the bus GetServiceOwner method.
6895
6896         * test/glib/test-dbus-glib.c:
6897         use dbus_gproxy_new_for_service_owner so that we can receive the
6898         signal. 
6899
6900 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
6901
6902         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6903         dbus/dbus-message.c, dbus/dbus-protocol.h
6904         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6905
6906         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6907         dbus/dbus-message.c, dbus/dbus-protocol.h
6908         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6909
6910         * dbus/dbus-internals.c (_dbus_header_field_to_string):
6911         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6912         DBUS_HEADER_FIELD_SENDER resolves to "sender"
6913
6914         * doc/dbus-specification.xml (Header Fields Table):
6915         s/SERVICE/DESTINATION
6916         s/SENDER_SERVICE/SENDER
6917
6918
6919 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6920
6921         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6922         a few seconds.
6923
6924 2004-04-13  Michael Meeks  <michael@ximian.com>
6925
6926         * glib/dbus-gobject.c (handle_introspect): split out
6927         (introspect_properties): this.
6928         (handle_introspect): implement this.
6929
6930         * test/glib/Makefile.am: use the absolute path so the bus
6931         daemon's chdir ("/") doesn't kill us dead.
6932
6933         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6934
6935 2004-04-12  Jon Trowbridge  <trow@ximian.com>
6936
6937         * bus/config-parser.c (struct BusConfigParser): Added
6938         included_files field.
6939         (seen_include): Added.  Checks whether or not a file has already
6940         been included by any parent BusConfigParser.
6941         (bus_config_parser_new): Copy the parent's included_files.
6942         (include_file): Track which files have been included, and fail on
6943         circular inclusions.
6944         (process_test_valid_subdir): Changed printf to report if we are
6945         testing valid or invalid conf files.
6946         (all_are_equiv): Changed printf to be a bit clearer about
6947         what we are actually doing.
6948         (bus_config_parser_test): Test invalid configuration files.
6949
6950 2004-04-09  Jon Trowbridge  <trow@ximian.com>
6951
6952         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6953         argument.  If non-null, the newly-constructed BusConfigParser will
6954         be initialized with the parent's BusLimits instead of the default
6955         values.
6956         (include_file): When including a config file, pass in
6957         the current parser as the parent and then copy the BusLimits
6958         from the included BusConfigParser pack to the current parser.
6959         (process_test_valid_subdir): Renamed from process_test_subdir.
6960         (process_test_equiv_subdir): Added.  Walks through a directory,
6961         descending into each subdirectory and loading the config files
6962         it finds there.  If any subdirectory contains two config files
6963         that don't produce identical BusConfigParser structs, fail.
6964         For now, the BusConfigParser's BusPolicies are not compared.
6965         (bus_config_parser_test): Call both process_test_valid_subdir and
6966         process_test_equiv_subdir.
6967
6968         * bus/config-loader-libxml.c (bus_config_load): Take a parent
6969         argument and pass it along to the call to bus_config_parser_new.
6970         Also made a few small changes to allow this code to compile.
6971
6972         * bus/config-loader-expat.c (bus_config_load): Take a parent
6973         argument and pass it along to the call to bus_config_parser_new.
6974
6975         * bus/bus.c (bus_context_new): Load the config file
6976         with a NULL parent argument.
6977
6978 2004-03-29  Michael Meeks  <michael@ximian.com>
6979
6980         * glib/dbus-gobject.c (introspect_properties): split
6981         out, fix mangled 'while' flow control.
6982         (introspect_signals): implement.
6983         (handle_introspect): update.
6984
6985 2004-03-29  Michael Meeks  <michael@ximian.com>
6986
6987         * glib/dbus-gobject.c (set_object_property): split out / 
6988         re-work, use the property type, and not the message type(!)
6989         (get_object_property): ditto.
6990
6991         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6992         (dbus_gvalue_marshal): make this code re-usable, needed
6993         for signals too, also on both proxy and server side.
6994         Re-write for more efficiency / readability.
6995
6996 2004-03-29  Michael Meeks  <michael@ximian.com>
6997
6998         * dbus/dbus-message.c
6999         (dbus_message_new_error_printf): impl.
7000
7001         * dbus/dbus-connection.c
7002         (dbus_connection_unregister_object_path): fix warning.
7003
7004         * configure.in: fix no-mono-installed situation.
7005
7006 2004-03-27  Havoc Pennington  <hp@redhat.com>
7007
7008         Patch from Timo Teräs:
7009         
7010         * tools/dbus-send.c (main): if --print-reply, assume type is
7011         method call; support boolean type args
7012         
7013         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7014         bunch of memleak and logic bugs
7015         
7016 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7017
7018         * mono/Arguments.cs:
7019         * mono/Introspector.cs:
7020         * mono/Handler.cs:
7021         * mono/InterfaceProxy.cs:
7022         * mono/Message.cs
7023         * mono/ProxyBuilder.cs:
7024         * mono/Service.cs:
7025         Added InterfaceProxy class to avoid building proxies for every
7026         object.
7027
7028         * dbus-message.h:
7029         * dbus-message.c (dbus_message_append_args_valist)
7030         (dbus_message_iter_get_object_path)
7031         (dbus_message_iter_get_object_path_array)
7032         (dbus_message_iter_append_object_path)
7033         (dbus_message_iter_append_object_path_array):
7034         Added object_path iter functions to handle OBJECT_PATH arguments
7035         
7036 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7037
7038         First checkin of mono bindings.
7039         * configure.in:
7040         * Makefile.am:
7041         Build stuff for the bindings
7042         * dbus-sharp.pc.in: Added for pkgconfig
7043         
7044 2004-03-21  Havoc Pennington  <hp@redhat.com>
7045
7046         * test/test-service.c (main): remove debug spew
7047
7048 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7049
7050         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7051         arrays
7052
7053         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7054         (dbus_message_iter_init_array_iterator)
7055         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7056         indicate whether the iterator is empty
7057
7058         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7059         warnings
7060
7061 2004-03-19  Havoc Pennington  <hp@redhat.com>
7062
7063         * NEWS: 0.21 updates
7064
7065         * configure.in: 0.21
7066
7067         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7068         
7069         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7070         you don't need pyrex to make dist
7071
7072         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7073         sources; run moc
7074         
7075 2004-03-18  Richard Hult  <richard@imendio.com>
7076
7077         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7078         (dbus_message_set_auto_activation): Add doxygen docs.
7079
7080 2004-03-16  Richard Hult  <richard@imendio.com>
7081
7082         * bus/activation.c: (bus_activation_service_created),
7083         (bus_activation_send_pending_auto_activation_messages),
7084         (bus_activation_activate_service):
7085         * bus/activation.h:
7086         * bus/dispatch.c: (bus_dispatch),
7087         (check_nonexistent_service_auto_activation),
7088         (check_service_auto_activated),
7089         (check_segfault_service_auto_activation),
7090         (check_existent_service_auto_activation), (bus_dispatch_test):
7091         * bus/driver.c: (bus_driver_handle_activate_service):
7092         * bus/services.c: (bus_registry_acquire_service):
7093         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7094         (dbus_message_get_auto_activation):
7095         * dbus/dbus-message.h:
7096         * dbus/dbus-protocol.h: Implement auto-activation.
7097         
7098         * doc/dbus-specification.xml: Add auto-activation to the spec.
7099
7100 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7101
7102         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7103         fix a bug with CUSTOM types.
7104
7105         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7106         a unit test for this bug (used to fail).
7107
7108 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7109
7110         * bus/activation.c:
7111         (babysitter_watch_callback): notify all pending activations waiting for
7112           the same exec that the activation failed.
7113         (bus_activation_activate_service): shortcut the activation if we 
7114           already waiting for the same executable to start up.
7115
7116 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7117
7118         * bus/activation.c: 
7119         - Added service file reloading. 
7120           Each service files directory is kept in an hash table in 
7121           BusActivation and each BusActivationEntry knows what .service-file it
7122           was read from. So when you try to activate a service the bus will 
7123           check if it's been updated, removed or if new .service-files has 
7124           been installed.
7125         - Test code at the bottom for the service file reloading.
7126         * bus/test-main.c: (main):
7127         * bus/test.h:
7128         - added service reloading test.
7129         * dbus/dbus-sysdeps.c: 
7130         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7131
7132 2004-03-08  Michael Meeks  <michael@ximian.com>
7133
7134         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7135         bail immediately if disconnected, to avoid busy loop.
7136
7137         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7138         cleanup cut/paste/inefficiency.
7139
7140 2004-03-01  David Zeuthen  <david@fubar.dk>
7141
7142         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7143         bug where args were used twice. This bug resulted in a segfault
7144         on a Debian/PPC system when starting the messagebus daemon. Include
7145         dbus-sysdeps.h for DBUS_VA_COPY
7146
7147         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7148
7149         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7150         appropriate va_copy implementation. From GLib
7151         
7152 2004-02-24  Joe Shaw  <joe@ximian.com>
7153
7154         * bus/services.c (bus_registry_acquire_service): We need to pass
7155         in the service name to dbus_set_error() to prevent a crash.
7156
7157 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7158
7159         * AUTHORS: Reveal my True identity.
7160
7161 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7162
7163         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7164         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7165
7166 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7167
7168         * doc/TODO: Added not about better error check of configuration files.
7169
7170 2003-12-02  Richard Hult  <richard@imendio.com>
7171
7172         * Update AFL version to 2.0 throughout the source files to reflect
7173         the update that was done a while ago.
7174
7175 2003-12-02  Richard Hult  <richard@imendio.com>
7176
7177         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7178         wrote_dict_key to FALSE on the iter that the dict is appended to,
7179         just like when appending other types. Fixes a bug where a dict
7180         couldn't be put inside a dict.
7181         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7182         (message_iter_test, _dbus_message_test): Add test case for dict
7183         inside dict.
7184
7185 2003-12-01  David Zeuthen  <david@fubar.dk>
7186
7187         * python/dbus.py: Add the actual message when calling the reciever
7188         of a signal such that parameters can be inspected. Add the method
7189         remove_signal_receiver
7190         
7191 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7192
7193         * bus/*.[ch]:
7194         * dbus/*.[ch]:
7195         * glib/*.[ch]: Made ref functions return the pointer
7196
7197 2003-11-25  Zack Rusin  <zack@kde.org>
7198
7199         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7200
7201         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7202         wrappers,
7203
7204         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7205         the Integrator and to better fit with the server,
7206
7207 2003-11-24  Zack Rusin  <zack@kde.org>
7208
7209         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7210         the integrator handles it now
7211
7212         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7213         since QTimer wasn't really meant to be used the way DBusTimeout is
7214
7215 2003-11-24  Zack Rusin  <zack@kde.org>
7216
7217         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7218         Integrator class which integrates D-BUS with the Qt event loop,
7219
7220         * qt/connection.h, qt/connection.cpp: Move all the code which
7221         was dealing with D-BUS integration to the Integrator class,
7222         and start using Integrator,
7223
7224 2003-11-23  Zack Rusin  <zack@kde.org>
7225
7226         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7227         wrapper
7228
7229         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7230         switching namespaces to DBusQt, reworking the class,
7231
7232         * Makefile.cvs: switching dependencies so that it matches KDE 
7233         schematics,
7234         
7235         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7236         the library
7237
7238 2003-11-19  Havoc Pennington  <hp@redhat.com>
7239
7240         * NEWS: update
7241
7242         * configure.in: bump version to 0.20
7243
7244         * configure.in (have_qt): add yet another place to look for qt
7245         (someone hand trolltech a .pc file...)
7246
7247 2003-11-01  Havoc Pennington  <hp@redhat.com>
7248
7249         * doc/dbus-specification.xml: add state machine docs on the auth
7250         protocol; just a first draft, I'm sure it's wrong.      
7251
7252 2003-10-28  David Zeuthen  <david@fubar.dk>
7253
7254         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7255         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7256         
7257 2003-10-28  Havoc Pennington  <hp@redhat.com>
7258
7259         * dbus/dbus-message.c (get_next_field): delete unused function
7260
7261 2003-10-28  Havoc Pennington  <hp@redhat.com>
7262
7263         * bus/expirelist.c (do_expiration_with_current_time): detect
7264         failure of the expire_func due to OOM
7265
7266         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7267
7268         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7269         NoReply error that's now created by the bus when the service exits
7270
7271 2003-10-28  Havoc Pennington  <hp@redhat.com>
7272
7273         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7274         tests for set_path, set_interface, set_member, etc.
7275
7276         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7277
7278         * dbus/dbus-message.c (set_string_field): always just delete and
7279         re-append the field; accept NULL for deletion
7280         (re_align_fields_recurse): reimplement
7281         
7282 2003-10-26  Havoc Pennington  <hp@redhat.com>
7283
7284         * dbus/dbus-connection.c: fix docs to properly describe the
7285         disconnected message
7286         (_dbus_connection_notify_disconnected): remove this function; 
7287         we can't synchronously add the disconnected message, we have to 
7288         do it after we've queued any remaining real messages
7289         (_dbus_connection_get_dispatch_status_unlocked): queue the
7290         disconnect message only if the transport has finished queueing all
7291         its real messages and is disconnected.
7292         (dbus_connection_disconnect): update the dispatch status here
7293
7294 2003-10-22  Havoc Pennington  <hp@redhat.com>
7295
7296         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7297
7298         * bus/connection.c (bus_transaction_send_from_driver): set the
7299         destination to the connection's base service
7300
7301 2003-10-20  Havoc Pennington  <hp@redhat.com>
7302
7303         hmm, make check is currently not passing.
7304         
7305         * doc/dbus-specification.xml: add requirement that custom type
7306         names follow the same rules as interface names.
7307
7308         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7309         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7310         'map'
7311
7312         * doc/dbus-specification.xml: update type codes to match
7313         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7314         CUSTOM. Add type OBJECT_PATH to the spec.
7315
7316 2003-10-17  Havoc Pennington  <hp@redhat.com>
7317
7318         * bus/driver.c (create_unique_client_name): use "." as separator
7319         in base service names instead of '-'
7320
7321         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7322         byte at the end of the string
7323
7324         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7325         optimization macros since string validation seems to be a slow
7326         point.
7327         
7328         * doc/dbus-specification.xml: restrict valid
7329         service/interface/member/error names. Add test suite code for the
7330         name validation.
7331
7332         * dbus/dbus-string.c: limit service/interface/member/error names 
7333         to [0-9][A-Z][a-z]_
7334
7335         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7336         format arg to verbose spew
7337
7338         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7339         memory, return instead of g_error
7340
7341         * test/test-service.c (path_message_func): support emitting a
7342         signal on request
7343
7344         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7345         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7346         assuming the activation bus was the session bus so that services
7347         started manually will still register.
7348         (init_connections_unlocked): fix so that in OOM situation we get
7349         the same semantics when retrying the function
7350         
7351         * test/test-service.c (main): change to use path registration, to
7352         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7353         than DBUS_BUS_SESSION
7354
7355 2003-10-16  Havoc Pennington  <hp@redhat.com>
7356
7357         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7358
7359         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7360         coverage of the tests
7361         (coverage-report.txt): don't move the .da and .bbg files around
7362
7363 2003-10-16  Havoc Pennington  <hp@redhat.com>
7364
7365         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7366         to put there
7367
7368 2003-10-16  Havoc Pennington  <hp@redhat.com>
7369
7370         * bus/connection.c (bus_pending_reply_expired): either cancel or
7371         execute, not both
7372         (bus_connections_check_reply): use unlink, not remove_link, as we
7373         don't want to free the link; fixes double free mess
7374
7375         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7376         where no reply was received
7377
7378         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7379         fix a refcount leak
7380
7381         * bus/signals.c (match_rule_matches): add special cases for the
7382         bus driver, so you can match on sender/destination for it.
7383
7384         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7385         DBUS_PRINT_BACKTRACE is set
7386
7387         * dbus/dbus-internals.c: add pid to assertion failure messages
7388
7389         * dbus/dbus-connection.c: add message type code to the debug spew
7390
7391         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7392         sender=foo not service=foo
7393
7394         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7395         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7396         DBUS_ACTIVATION_ADDRESS instead
7397
7398         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7399         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7400
7401         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7402         context struct
7403
7404         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7405         (dbus_message_iter_get_object_path_array): new function (half
7406         finished, disabled for the moment)
7407         
7408         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7409         DBUS_MESSAGE_TYPE_ERROR
7410
7411         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7412         avoid redirecting stderr to /dev/null
7413         (babysit): close stdin if not doing the "exit_with_session" thing
7414
7415         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7416         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7417         stdout/stdin, so things don't get confused
7418         
7419         * bus/system.conf.in: fix to allow replies, I modified .conf
7420         instead of .conf.in again.
7421
7422 2003-10-14  David Zeuthen  <david@fubar.dk>
7423
7424         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7425         argtype to arg_type when raising unknown arg type exception.
7426         Changed type list to reflect the changes in dbus-protocol.h so 
7427         the bindings actually work.
7428
7429 2003-10-14  Havoc Pennington  <hp@redhat.com>
7430
7431         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7432         to have a bug keeping it from outputting the .da files sometimes
7433         (string_get_string): don't append garbage nul bytes to the string.
7434
7435 2003-10-15  Seth Nickell  <seth@gnome.org>
7436
7437         * python/Makefile.am:
7438
7439         Include dbus_h_wrapper.h in the dist tarball.
7440
7441 2003-10-14  Havoc Pennington  <hp@redhat.com>
7442
7443         * bus/bus.c (bus_context_check_security_policy): revamp this to
7444         work more sanely with new policy-based requested reply setup
7445
7446         * bus/connection.c (bus_transaction_send_from_driver): set bus
7447         driver messages as no reply
7448
7449         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7450         requested_reply attribute on allow/deny rules
7451
7452         * bus/system.conf: add <allow requested_reply="true"/>
7453
7454         * bus/driver.c (bus_driver_handle_message): fix check for replies
7455         sent to the bus driver, which was backward. How did this ever work
7456         at all though? I think I'm missing something.
7457
7458         * dbus/dbus-message.c (decode_header_data): require error and
7459         method return messages to have a reply serial field to be valid
7460         (_dbus_message_loader_queue_messages): break up this function;
7461         validate that reply serial and plain serial are nonzero; 
7462         clean up the OOM/error handling.
7463         (get_uint_field): don't return -1 from this
7464         (dbus_message_create_header): fix signed/unsigned bug
7465
7466         * bus/connection.c (bus_connections_expect_reply): save serial of
7467         the incoming message, not reply serial
7468
7469 2003-10-14  Havoc Pennington  <hp@redhat.com>
7470
7471         * bus/connection.c: implement pending reply tracking using
7472         BusExpireList
7473
7474         * bus/bus.c (bus_context_check_security_policy): verify that a
7475         reply is pending in order to allow a reply to be sent. Deny 
7476         messages of unknown type.
7477
7478         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7479
7480         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7481         (bus_context_get_reply_timeout): new
7482
7483 2003-10-13  Seth Nickell  <seth@gnome.org>
7484
7485         * python/Makefile.am:
7486
7487         Pass "make distcheck": remove a couple files from DIST_FILES
7488         that weren't included in the final version.
7489
7490 2003-10-12  Havoc Pennington  <hp@pobox.com>
7491
7492         Added test code that 1) starts an actual bus daemon and 2) uses
7493         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7494         more testing possible, but this is the basic framework.
7495         
7496         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7497         empty proxy lists from the proxy list hash
7498
7499         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7500         couple of return_if_fail checks
7501
7502         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7503         to allocate, so everything is cleared to NULL as it should be.
7504
7505         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7506         source as data to dbus_connection_set_timeout_functions() as the 
7507         timeout functions expected
7508
7509         * test/glib/run-test.sh: add a little script to start up a message
7510         bus and run tests using it
7511
7512         * tools/dbus-launch.1: updates
7513
7514         * tools/dbus-launch.c (main): add --config-file option
7515
7516         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7517         that could never be reached.
7518
7519         * dbus/dbus-message.c (dbus_message_new_method_return) 
7520         (dbus_message_new_error, dbus_message_new_signal): set the
7521         no-reply-expected flag on all these. Redundant, but may
7522         as well be consistent.
7523
7524 2003-10-11  Havoc Pennington  <hp@pobox.com>
7525
7526         * test/decode-gcov.c (function_solve_graph): make broken block
7527         graph a nonfatal error since it seems to be broken. Need to debug
7528         this.
7529
7530         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7531         can't just check type > INVALID < LAST anymore
7532
7533         * dbus/dbus-message.c (dbus_message_get_signature): new function
7534         (dbus_message_has_signature): new function
7535         (struct DBusMessage): add signature field (right now it isn't sent
7536         over the wire, just generated on the fly)
7537         (dbus_message_copy): copy the signature, and init strings to
7538         proper length to avoid some reallocs
7539         (dbus_message_iter_init_array_iterator): return void, since it
7540         can't fail
7541         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7542         (_dbus_message_loader_queue_messages): add silly temporary hack to
7543         fill in message->signature on load
7544
7545         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7546         characters, so they are relatively human-readable.
7547
7548 2003-10-11  Havoc Pennington  <hp@pobox.com>
7549
7550         * dbus/dbus-message.c (_dbus_message_test): add more test
7551         coverage, but #if 0 for now since they uncover a bug 
7552         not fixed yet; I think in re_align_field_recurse()
7553         (re_align_field_recurse): add FIXME about broken assertion
7554
7555         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7556
7557         * bus/connection.c: share a couple code bits with expirelist.c
7558
7559         * bus/expirelist.h, bus/expirelist.c: implement a generic
7560         expire-items-after-N-seconds facility, was going to share between
7561         expiring connections and replies, decided not to use for expiring
7562         connections for now.
7563
7564         * COPYING: include AFL 2.0 (still need to change all the file headers)
7565
7566 2003-10-09  Havoc Pennington  <hp@redhat.com>
7567
7568         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7569         gcc 3.3. Not that we do anything about it yet.
7570
7571         * bus/signals.c (bus_match_rule_parse): impose max length on the
7572         match rule text
7573
7574         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7575
7576 2003-10-09  Havoc Pennington  <hp@redhat.com>
7577
7578         Make matching rules theoretically work (add parser).
7579         
7580         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7581         the case where destination is explicitly specified as bus driver
7582         and someone else is eavesdropping.
7583         
7584         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7585         definition of eavesdropping and assertion
7586
7587         * tools/dbus-send.c (main): use dbus_message_type_from_string
7588
7589         * bus/signals.c (bus_match_rule_parse): implement
7590
7591         * dbus/dbus-message.c (dbus_message_type_from_string): new
7592
7593         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7594
7595 2003-10-02  Havoc Pennington  <hp@pobox.com>
7596
7597         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7598         dbus_gproxy_oneway_call
7599
7600         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7601         (dbus_server_setup_with_g_main): fix to allow calling them more
7602         than once on the same args
7603         (dbus_bus_get_with_g_main): new function
7604
7605 2003-10-02  Havoc Pennington  <hp@redhat.com>
7606
7607         * doc/dbus-tutorial.xml: write some stuff
7608
7609 2003-09-29  Havoc Pennington  <hp@pobox.com>
7610
7611         * configure.in: split checks for Doxygen from XML docs, check for
7612         xmlto
7613
7614         * doc/Makefile.am: XML-ify all the docs, and add a blank
7615         dbus-tutorial.xml
7616
7617 2003-09-29  Havoc Pennington  <hp@pobox.com>
7618
7619         * Merge dbus-object-names branch. To see the entire patch 
7620         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7621         it's huuuuge though.
7622         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7623         
7624 2003-09-28  Havoc Pennington  <hp@pobox.com>
7625
7626         * HACKING: update to reflect new server
7627
7628 2003-09-26  Seth Nickell  <seth@gnome.org>
7629
7630         * python/dbus.py:
7631         * python/examples/example-signals.py:
7632
7633         Start implementing some notions of signals. The API
7634         is really terrible, but they sort of work (with the
7635         exception of being able to filter by service, and to
7636         transmit signals *as* a particular service). Need to
7637         figure out how to make messages come from the service
7638         we registered :-(
7639         
7640         * python/dbus_bindings.pyx.in:
7641
7642         Removed duplicate message_handler callbacks.
7643         
7644 2003-09-25  Havoc Pennington  <hp@redhat.com>
7645
7646         * bus/session.conf.in: fix my mess
7647
7648 2003-09-25  Havoc Pennington  <hp@pobox.com>
7649
7650         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7651
7652 2003-09-25  Seth Nickell  <seth@gnome.org>
7653
7654         * python/examples/example-service.py:
7655
7656         Johan notices complete wrong code in example-service, but
7657         completely wrong in a way that works exactly the same (!).
7658         Johan is confused, how could this possibly work? Example
7659         code fails to serve purpose of making things clear.
7660         Seth fixes.
7661
7662 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7663
7664         * doc/dbus-specification.sgml: don't require header fields
7665         to be 4-byte aligned and specify that fields should be
7666         distinguished from padding by the fact that zero is not
7667         a valid field name.
7668         
7669         * doc/TODO: remove re-alignment item and add item to doc
7670         the OBJECT_PATH type.
7671         
7672         * dbus/dbus-message.c:
7673         (HeaderField): rename the original member to value_offset
7674         and introduce a name_offset member to keep track of where
7675         the field actually begins.
7676         (adjust_field_offsets): remove.
7677         (append_int_field), (append_uint_field),
7678         (append_string_field): don't align the start of the header
7679         field to a 4-byte boundary.
7680         (get_next_field): impl finding the next marhsalled field
7681         after a given field.
7682         (re_align_field_recurse): impl re-aligning a number of
7683         already marshalled fields.
7684         (delete_field): impl deleting a field of any type and
7685         re-aligning any following fields.
7686         (delete_int_or_uint_field), (delete_string_field): remove.
7687         (set_int_field), (set_uint_field): no need to re-check
7688         that we have the correct type for the field.
7689         (set_string_field): ditto and impl re-aligning any
7690         following fields.
7691         (decode_header_data): update to take into account that
7692         the fields aren't 4-byte aligned any more and the new
7693         way to distinguish padding from header fields. Also,
7694         don't exit when there is too much header padding.
7695         (process_test_subdir): print the directory.
7696         (_dbus_message_test): add test to make sure a following
7697         field is re-aligned correctly after field deletion.
7698         
7699         * dbus/dbus-string.[ch]:
7700         (_dbus_string_insert_bytes): rename from insert_byte and
7701         allow the insert of multiple bytes.
7702         (_dbus_string_test): test inserting multiple bytes.
7703
7704         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7705         warning note to docs about having to re-align any
7706         marshalled values following the string.
7707         
7708         * dbus/dbus-message-builder.c:
7709         (append_string_field), (_dbus_message_data_load):
7710         don't align the header field.
7711         
7712         * dbus/dbus-auth.c: (process_test_subdir): print the
7713         directory.
7714         
7715         * test/break-loader.c: (randomly_add_one_byte): upd. for
7716         insert_byte change.
7717         
7718         * test/data/invalid-messages/bad-header-field-alignment.message:
7719         new test case.
7720         
7721         * test/data/valid-messages/unknown-header-field.message: shove
7722         a dict in the unknown field.
7723
7724 2003-09-25  Seth Nickell  <seth@gnome.org>
7725
7726         * python/dbus.py:
7727         * python/dbus_bindings.pyx.in:
7728
7729         Handle return values.
7730         
7731         * python/examples/example-client.py:
7732         * python/examples/example-service.py:
7733
7734         Pass back return values from the service to the client.
7735         
7736 2003-09-24  Seth Nickell  <seth@gnome.org>
7737
7738         * python/dbus.py:
7739
7740         Connect Object methods (when you are sharing an object) up... pass
7741         in a list of methods to be shared. Sharing all the methods just
7742         worked out too weird. You can now create nice Services over the
7743         DBus in Python. :-)
7744         
7745         * python/dbus_bindings.pyx.in:
7746
7747         Keep references to user_data tuples passed into C functions so 
7748         Python doesn't garbage collect on us.
7749
7750         Implement MethodReturn and Error subclasses of Message for creating
7751         DBusMessage's of those types.
7752         
7753         * python/examples/example-client.py:
7754         * python/examples/example-service.py:
7755
7756         Simple example code showing both how create DBus services and objects,
7757         and how to use them.
7758
7759 2003-09-23  Havoc Pennington  <hp@pobox.com>
7760
7761         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7762
7763 2003-09-23  Havoc Pennington  <hp@redhat.com>
7764
7765         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7766         (dbus_gproxy_disconnect_signal): implement
7767         (dbus_gproxy_manager_remove_signal_match): implement
7768         (dbus_gproxy_manager_add_signal_match): implement
7769         (dbus_gproxy_oneway_call): implement
7770
7771 2003-09-23  Havoc Pennington  <hp@pobox.com>
7772
7773         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7774         subclass. This means dropping the transparent thread safety of the
7775         proxy; you now need a separate proxy per-thread, or your own
7776         locking on the proxy. Probably right anyway.
7777         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7778
7779 2003-09-22  Havoc Pennington  <hp@redhat.com>
7780
7781         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7782
7783 2003-09-21  Seth Nickell  <seth@gnome.org>
7784
7785         First checkin of the Python bindings.
7786         
7787         * python/.cvsignore:
7788         * python/Makefile.am:
7789         * python/dbus_bindings.pyx.in:
7790         * python/dbus_h_wrapper.h:
7791
7792         Pieces for Pyrex to operate on, building a dbus_bindings.so
7793         python module for low-level access to the DBus APIs.
7794         
7795         * python/dbus.py:
7796
7797         High-level Python module for accessing DBus objects.
7798
7799         * configure.in:
7800         * Makefile.am:
7801
7802         Build stuff for the python bindings.
7803
7804         * acinclude.m4:
7805
7806         Extra macro needed for finding the Python C header files.
7807
7808 2003-09-21  Havoc Pennington  <hp@pobox.com>
7809
7810         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7811         implementing the proxy manager, didn't get very far.
7812
7813         * dbus/dbus-bus.c (dbus_bus_add_match): new
7814         (dbus_bus_remove_match): new
7815
7816         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7817         path_name argument; adjust the other not-yet-implemented 
7818         gproxy constructors to be what I think they should be.
7819
7820 2003-09-21  Havoc Pennington  <hp@pobox.com>
7821
7822         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7823         by default for message bus connections.
7824
7825         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7826         exit_on_disconnect flag is set and we process the disconnected
7827         signal.
7828         (dbus_connection_set_exit_on_disconnect): new function
7829
7830 2003-09-21  Havoc Pennington  <hp@pobox.com>
7831
7832         Get matching rules mostly working in the bus; only actually
7833         parsing the rule text remains. However, the client side of
7834         "signal connections" hasn't been started, this patch is only the
7835         bus side.
7836         
7837         * dbus/dispatch.c: fix for the matching rules changes
7838         
7839         * bus/driver.c (bus_driver_handle_remove_match)
7840         (bus_driver_handle_add_match): send an ack reply from these
7841         method calls
7842
7843         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7844         arguments, reported by Seth Nickell
7845
7846         * bus/config-parser.c (append_rule_from_element): support
7847         eavesdrop=true|false attribute on policies so match rules 
7848         can be prevented from snooping on the system bus.
7849
7850         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7851         and "destination" in attribute names; fix some docs bugs; 
7852         add eavesdrop=true|false attribute
7853
7854         * bus/driver.c (bus_driver_handle_add_match)
7855         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7856         messages
7857
7858         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7859         rid of broadcast service concept, signals are just always broadcast
7860
7861         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7862         mostly implement matching rules stuff (currently only exposed as signal
7863         connections)
7864
7865 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
7866
7867         * doc/dbus-specification.sgml: Change the header field name
7868         to be an enum and update the rest of the spec to reference
7869         the fields using the conventinal name.
7870
7871         * dbus/dbus-protocol.h: update to reflect the spec.
7872
7873         * doc/TODO: add item to remove the 4 byte alignment requirement.
7874         
7875         * dbus/dbus-message.c: Remove the code to generalise the
7876         header/body length and serial number header fields as named
7877         header fields so we can reference field names using the 
7878         protocol values.
7879         (append_int_field), (append_uint_field), (append_string_field):
7880         Append the field name as a byte rather than four chars.
7881         (delete_int_or_uint_field), (delete_string_field): reflect the
7882         fact that the field name and typecode now occupy 4 bytes instead
7883         of 8.
7884         (decode_string_field), (decode_header_data): update to reflect
7885         protocol changes and move the field specific encoding from
7886         decode_string_field() back into decode_header_data().
7887         
7888         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7889         Add utility to aid debugging.
7890         
7891         * dbus/dbus-message-builder.c:
7892         (append_string_field), (_dbus_message_data_load): Update to
7893         reflect protocol changes; Change the FIELD_NAME directive
7894         to HEADER_FIELD and allow it to take the field's conventional
7895         name rather than the actual value.
7896         
7897         * test/data/*/*.message: Update to use HEADER_FIELD instead
7898         of FIELD_NAME; Always align the header on an 8 byte boundary
7899         *before* updating the header length.
7900
7901 2003-09-15  Havoc Pennington  <hp@pobox.com>
7902
7903         * dbus/dbus-pending-call.c: add the get/set object data
7904         boilerplate as for DBusConnection, etc. Use generic object data
7905         for the notify callback.
7906
7907         * glib/dbus-gparser.c (parse_node): parse child nodes
7908
7909         * tools/dbus-viewer.c: more hacking on the dbus-viewer
7910         
7911         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7912         contain functions shared between the convenience lib and the
7913         installed lib
7914
7915         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7916         -export-symbols-regex to the GLib library
7917
7918         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7919         fix the locking in here, and add a default handler for
7920         Introspect() that just returns sub-nodes.
7921
7922 2003-09-14  Havoc Pennington  <hp@pobox.com>
7923
7924         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7925         rather than gfoo consistent
7926
7927         * glib/dbus-gproxy.h: delete for now, move contents to
7928         dbus-glib.h, because the include files don't work right since we
7929         aren't in the dbus/ subdir.
7930         
7931         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7932         (dbus_gproxy_end_call): finish
7933         (dbus_gproxy_begin_call): finish
7934
7935         * glib/dbus-gmain.c (dbus_set_g_error): new
7936
7937         * glib/dbus-gobject.c (handle_introspect): include information
7938         about child nodes in the introspection
7939
7940         * dbus/dbus-connection.c (dbus_connection_list_registered): new
7941         function to help in implementation of introspection
7942
7943         * dbus/dbus-object-tree.c
7944         (_dbus_object_tree_list_registered_and_unlock): new function
7945
7946 2003-09-12  Havoc Pennington  <hp@pobox.com>
7947
7948         * glib/dbus-gidl.h: add common base class for all the foo_info
7949         types
7950
7951         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7952         similar to kdcop
7953
7954         * test/Makefile.am: try test srcdir -ef . in addition to test
7955         srcdir = ., one of them should work (yeah lame)
7956         
7957         * glib/Makefile.am: build the "idl" parser stuff as a convenience
7958         library
7959         
7960         * glib/dbus-gparser.h: make description_load routines return
7961         NodeInfo* not Parser*
7962
7963         * Makefile.am (SUBDIRS): build test dir after all library dirs
7964
7965         * configure.in: add GTK+ detection
7966
7967 2003-09-07  Havoc Pennington  <hp@pobox.com>
7968
7969         * Make Doxygen contented.
7970
7971 2003-09-07  Havoc Pennington  <hp@pobox.com>
7972
7973         * doc/dbus-specification.sgml: more updates
7974
7975 2003-09-06  Havoc Pennington  <hp@pobox.com>
7976
7977         * doc/dbus-specification.sgml: partial updates
7978
7979         * bus/dbus-daemon-1.1.in: fix the config file docs for the
7980         zillionth time; hopefully I edited the right file this time.
7981
7982         * bus/config-parser.c (append_rule_from_element): support
7983         send_type, send_path, receive_type, receive_path
7984
7985         * bus/policy.c: add message type and path to the list of things
7986         that can be "firewalled"
7987
7988 2003-09-06  Havoc Pennington  <hp@pobox.com>
7989
7990         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7991         (dbus_connection_register_object_path): make this not handle
7992         messages to paths below the given path
7993
7994 2003-09-03  Havoc Pennington  <hp@pobox.com>
7995
7996         * test/glib/Makefile.am: add this with random glib-linked test
7997         programs
7998
7999         * glib/Makefile.am: remove the random test programs from here,
8000         leave only the unit tests
8001
8002         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8003         uscore/javacaps conversion, and fix     
8004         (get_object_property, set_object_property): change to .NET
8005         convention for mapping props to methods, set_FooBar/get_FooBar, 
8006         since one language has such a convention we may as well copy it. 
8007         Plus real methods in either getFooBar or get_foo_bar style won't 
8008         collide with this convention.
8009
8010 2003-09-01  Havoc Pennington  <hp@pobox.com>
8011
8012         * glib/dbus-gparser.c: implement
8013
8014         * glib/dbus-gobject.c: start implementing skeletons support
8015
8016         * configure.in: when disabling checks/assert, also define
8017         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8018
8019 2003-09-01  Havoc Pennington  <hp@pobox.com>
8020
8021         * glib/Makefile.am: rearrange a bunch of files and get "make
8022         check" framework set up
8023
8024 2003-08-31  Havoc Pennington  <hp@pobox.com>
8025
8026         * fix build with --disable-tests
8027
8028 2003-08-30  Havoc Pennington  <hp@pobox.com>
8029
8030         * dbus/dbus-connection.c: purge DBusMessageHandler
8031
8032         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8033         use callbacks everywhere
8034
8035 2003-08-30  Havoc Pennington  <hp@pobox.com>
8036
8037         * test/data/valid-config-files/system.d/test.conf: change to 
8038         root for the user so warnings don't get printed
8039
8040         * dbus/dbus-message.c: add dbus_message_get_path,
8041         dbus_message_set_path
8042         
8043         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8044         dispatching to a path
8045
8046         * dbus/dbus-string.c (_dbus_string_validate_path): add
8047
8048         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8049         (_dbus_marshal_object_path): implement
8050
8051         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8052         to contain the path to the target object
8053         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8054         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8055
8056 2003-08-30  Havoc Pennington  <hp@pobox.com>
8057
8058         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8059
8060 2003-08-29  Havoc Pennington  <hp@pobox.com>
8061
8062         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8063         registered
8064         (struct DBusObjectSubtree): shrink this
8065         a lot, since we may have a lot of them
8066         (_dbus_object_tree_free_all_unlocked): implement
8067         (_dbus_object_tree_dispatch_and_unlock): implement
8068
8069 2003-08-29  Havoc Pennington  <hp@pobox.com>
8070
8071         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8072
8073 2003-08-28  Havoc Pennington  <hp@pobox.com>
8074
8075         purge DBusObjectID
8076         
8077         * dbus/dbus-connection.c: port to no ObjectID, create a
8078         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8079
8080         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8081         everything except UnregisterFunction and MessageFunction
8082         
8083         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8084         add DBUS_TYPE_OBJECT_PATH
8085         
8086         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8087         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8088         path-based object IDs
8089
8090 2003-08-25  Havoc Pennington  <hp@pobox.com>
8091
8092         Just noticed that dbus_message_test is hosed, I wonder when I
8093         broke that. I thought make check was passing earlier...
8094         
8095         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8096         container tree, will replace most of dbus-object-registry
8097
8098         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8099         screwup
8100
8101 2003-08-19  Havoc Pennington  <hp@pobox.com>
8102
8103         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8104         (dbus_message_is_error): fix this function
8105
8106         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8107         match
8108
8109         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8110         reflect clarified man page
8111         (bus_client_policy_check_can_send): ditto
8112         
8113         * bus/session.conf.in: fixup
8114
8115         * bus/system.conf.in: fixup
8116
8117 2003-08-18  Havoc Pennington  <hp@redhat.com>
8118
8119         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8120
8121         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8122         dumb bug created earlier (wrong order of args to
8123         decode_header_data())
8124         
8125         * tools/dbus-send.c: port
8126
8127         * tools/dbus-print-message.c (print_message): port
8128
8129         * test/data/*messages: port all messages over
8130         
8131         * dbus/dbus-message-builder.c: support including 
8132         message type
8133         
8134         * bus/driver.c: port over
8135         
8136         * bus/dispatch.c: port over to new stuff
8137
8138         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8139         rename disconnect signal to "Disconnected"
8140
8141 2003-08-17  Havoc Pennington  <hp@pobox.com>
8142
8143         This doesn't compile yet, but syncing up so I can hack on it from
8144         work. What are branches for if not broken code? ;-)
8145         
8146         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8147         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8148         DBUS_HEADER_FIELD_ERROR_NAME
8149         
8150         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8151         for the interface+member pairs
8152         (string_hash): change to use g_str_hash algorithm
8153         (find_direct_function, find_string_function): refactor these to
8154         share most code.
8155         
8156         * dbus/dbus-message.c: port all of this over to support 
8157         interface/member fields instead of name field
8158
8159         * dbus/dbus-object-registry.c: port over
8160         
8161         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8162         from _dbus_string_validate_name
8163
8164         * bus/dbus-daemon-1.1: change file format for the 
8165         <deny>/<allow> stuff to match new message naming scheme
8166
8167         * bus/policy.c: port over
8168
8169         * bus/config-parser.c: parse new format
8170         
8171 2003-08-16  Havoc Pennington  <hp@pobox.com>
8172
8173         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8174         broken assertion
8175
8176         * glib/dbus-gproxy.c: some hacking
8177
8178 2003-08-15  Havoc Pennington  <hp@redhat.com>
8179
8180         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8181
8182         * dbus/dbus-connection.c
8183         (dbus_connection_send_with_reply_and_block): factor out internals;
8184         change to convert any error replies to DBusError instead of 
8185         returning them as a message
8186
8187 2003-08-15  Havoc Pennington  <hp@pobox.com>
8188
8189         * dbus/dbus-connection.c, 
8190         dbus/dbus-pending-call.c: Finish the pending call stuff
8191
8192 2003-08-14  Havoc Pennington  <hp@redhat.com>
8193
8194         * dbus/dbus-pending-call.c: start on new object that will replace
8195         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8196         replies
8197
8198         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8199         with remote interfaces
8200
8201         * dbus/dbus-gidl.c: do the boring boilerplate in here
8202         
8203 2003-08-12  Havoc Pennington  <hp@pobox.com>
8204
8205         * bus/dispatch.c (bus_dispatch): make this return proper 
8206         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8207
8208         * dbus/dbus-errors.c (dbus_set_error): use
8209         _dbus_string_append_printf_valist
8210
8211         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8212         (_dbus_string_append_printf): new
8213
8214         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8215         UNKNOWN_METHOD
8216
8217         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8218         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8219         message is unhandled.
8220
8221 2003-08-11  Havoc Pennington  <hp@pobox.com>
8222
8223         * bus/test.c (client_disconnect_handler): change to return
8224         HANDLED (would have been REMOVE_MESSAGE)
8225
8226         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8227         HANDLED/NOT_YET_HANDLED instead of
8228         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8229         should be used.
8230
8231 2003-08-10  Havoc Pennington  <hp@pobox.com>
8232
8233         * tools/dbus-send.c (main): add --type argument, for now
8234         supporting only method_call and signal types.
8235
8236         * tools/dbus-print-message.c: print message type
8237
8238         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8239         init connection->objects
8240
8241         * doc/dbus-specification.sgml: fix sgml
8242
8243         * bus/*.c: port over to object-instance API changes
8244
8245         * test/test-service.c: ditto
8246         
8247         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8248         name, we will have to fix up the rest of the code to also handle
8249         this
8250         (dbus_message_new): generic message-creation call
8251         (set_string_field): allow appending name field
8252
8253 2003-08-06  Havoc Pennington  <hp@pobox.com>
8254
8255         * dbus/dbus-object-registry.c: implement signal connection 
8256         and dispatch
8257
8258         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8259
8260         * dbus/dbus-internals.c (_dbus_memdup): new function
8261
8262 2003-08-02  Havoc Pennington  <hp@pobox.com>
8263
8264         * dbus/dbus-message.c (dbus_message_get_no_reply)
8265         (dbus_message_set_no_reply): add these and remove
8266         set_is_error/get_is_error
8267
8268         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8269         remove the ERROR flag, since there's now an ERROR type
8270
8271 2003-08-01  Havoc Pennington  <hp@pobox.com>
8272
8273         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8274         implement
8275
8276         * dbus/dbus-message.c (dbus_message_get_type): new function
8277
8278         * doc/dbus-specification.sgml: add "type" byte to messages
8279
8280 2003-08-01  Havoc Pennington  <hp@pobox.com>
8281
8282         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8283         a message type enum to distinguish kinds of message
8284         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8285         that need not be replied to
8286
8287 2003-08-01  Havoc Pennington  <hp@pobox.com>
8288
8289         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8290         (unpack_8_octets): fix no-64-bit-int bug
8291
8292         * dbus/dbus-object-registry.c (validate_id): validate the 
8293         connection ID bits, not just the instance ID.
8294
8295         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8296         the connection-global 33 bits of the object ID
8297
8298         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8299         object ID in the new way
8300
8301         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8302         define server/client/instance bits.
8303
8304 2003-07-30  Havoc Pennington  <hp@pobox.com>
8305
8306         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8307         build
8308
8309 2003-07-13  Havoc Pennington  <hp@pobox.com>
8310
8311         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8312         fields to DBusObjectVTable and DBusObjectInfo
8313
8314 2003-07-12  Havoc Pennington  <hp@pobox.com>
8315
8316         * dbus/dbus-object-registry.c: implement unit test,
8317         fix bugs discovered in process
8318
8319         * dbus/dbus-connection.c: remove handler_table and
8320         register_handler(), add DBusObjectRegistry usage
8321
8322         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8323         (dbus_object_id_set_null): new functions
8324
8325 2003-07-08  Havoc Pennington  <hp@pobox.com>
8326
8327         * dbus/dbus-object.c: implement some of this
8328
8329         * dbus/dbus-object-registry.c
8330         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8331         param
8332         (_dbus_object_registry_new): handle OOM
8333
8334 2003-07-08  Havoc Pennington  <hp@pobox.com>
8335
8336         * dbus/dbus-object.h: sketch out an API for registering objects
8337         with a connection, that allows us to use as little as 24 bytes
8338         per object and lets application code represent an object in 
8339         any conceivable way.
8340
8341         * dbus/dbus-object-registry.c: implement the hard bits of the
8342         DBusConnection aspect of object API. Not yet wired up.
8343         
8344 2003-07-06  Havoc Pennington  <hp@pobox.com>
8345
8346         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8347         (_dbus_marshal_object_id): new
8348         (_dbus_demarshal_object_id): new
8349         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8350         consolidate identical switch cases. Don't conditionalize handling
8351         of DBUS_TYPE_UINT64, need to handle the type always.
8352         (_dbus_marshal_validate_arg): consolidate identical cases, and
8353         handle DBUS_TYPE_OBJECT_ID
8354
8355         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8356
8357         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8358
8359 2003-09-28  Havoc Pennington  <hp@pobox.com>
8360
8361         * real 0.13 release
8362
8363 2003-09-28  Havoc Pennington  <hp@pobox.com>
8364
8365         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8366         to work with Debian db2html
8367
8368 2003-09-28  Havoc Pennington  <hp@pobox.com>
8369
8370         * configure.in: 0.13
8371
8372         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8373         stylesheet-images for benefit of Debian
8374         
8375         Change back to using filesystem-linked sockets for the system
8376         bus, so only root can create the default system bus address.
8377         
8378         * bus/system.conf.in: change to use
8379         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8380
8381         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8382         from here.
8383
8384         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8385         here, and AC_DEFINE DBUS_SYSTEM_PATH
8386
8387 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8388
8389         * doc/TODO:
8390         * doc/busconfig.dtd:
8391         Add busconfig DTD.
8392         
8393 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8394
8395         * doc/dbus-specification.sgml:
8396         Add activation reply values.
8397         
8398 2003-08-05  Havoc Pennington  <hp@redhat.com>
8399
8400         * configure.in: 0.12
8401
8402 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8403
8404         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8405         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8406         (add_watch), (remove_watch), (create_source):
8407         Refcount fds, fixes some reentrancy issues.
8408         
8409 2003-07-30  Havoc Pennington  <hp@redhat.com>
8410
8411         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8412         bus address to be abstract if we have abstract sockets
8413
8414         * NEWS: update
8415
8416 2003-07-28  Havoc Pennington  <hp@redhat.com>
8417
8418         * bus/messagebus.in: fix to avoid processname/servicename 
8419         confusion, from Michael Kearey
8420         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8421         
8422 2003-07-23  Havoc Pennington  <hp@pobox.com>
8423
8424         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8425         fix from Andy Hanton to remove broken "+1"
8426
8427 2003-07-16  Havoc Pennington  <hp@pobox.com>
8428
8429         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8430         babysitter process, as suggested by Thomas Leonard, so 
8431         an "eval `dbus-launch --exit-with-session`" will actually 
8432         return
8433
8434 2003-07-16  Havoc Pennington  <hp@pobox.com>
8435
8436         * configure.in: print out EXPANDED_* variables in the summary at
8437         the end; clean up the code that computes EXPANDED_ variables and
8438         get the ones using exec_prefix right. Should make things work
8439         when you build without --prefix
8440
8441 2003-06-29  Havoc Pennington  <hp@pobox.com>
8442
8443         * mono/Test.cs (class Test): fire up a main loop and run it
8444
8445         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8446         done once, the app has to do it
8447
8448 2003-06-26  Havoc Pennington  <hp@pobox.com>
8449
8450         * mono/Connection.cs: set up connection with the glib main loop
8451
8452 2003-07-01  Havoc Pennington  <hp@redhat.com>
8453
8454         * doc/dbus-specification.sgml: clarify the format of a type code,
8455         change suggested by Jim Blandy
8456
8457 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8458
8459         * doc/Makefile.am:
8460         * tools/Makefile.am: Don't assume srcdir == builddir.
8461
8462         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8463         the allocated block.
8464         (_dbus_memory_test): New function.
8465         * dbus/dbus-test.h: Add _dbus_memory_test ().
8466         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8467
8468         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8469         of %c%c%c%c.
8470         (dbus_message_new): Remove obsolete @todo.
8471
8472         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8473         (_dbus_marshal_set_uint64): Fix comment.
8474
8475         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8476         hardcode FIELD_REPLY_SERIAL.
8477
8478         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8479         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8480
8481         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8482         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8483
8484 2003-06-24  Havoc Pennington  <hp@pobox.com>
8485
8486         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8487
8488 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8489
8490         * configure.in:
8491         * gcj/.cvsignore:
8492         * gcj/Hello.java:
8493         * gcj/Makefile.am:
8494         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8495         * gcj/org/.cvsignore:
8496         * gcj/org/Makefile.am:
8497         * gcj/org/freedesktop/.cvsignore:
8498         * gcj/org/freedesktop/Makefile.am:
8499         * gcj/org/freedesktop/dbus/.cvsignore:
8500         * gcj/org/freedesktop/dbus/Makefile.am:
8501         * gcj/org/freedesktop/dbus/Message.java: (Message),
8502         (Message.Message):
8503         * gcj/org/freedesktop/dbus/natMessage.cc:
8504         Fix the build system.
8505
8506 2003-06-22  Havoc Pennington  <hp@pobox.com>
8507
8508         * mono/Connection.cs: add more bindings
8509
8510         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8511         more than once.
8512
8513 2003-06-22  Havoc Pennington  <hp@pobox.com>
8514
8515         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8516         Start wrapping more stuff.
8517
8518 2003-06-22  Havoc Pennington  <hp@pobox.com>
8519
8520         * mono/Message.cs: implement Message.Wrap() that ensures we only
8521         have a single C# wrapper per DBusMessage, assuming it works which
8522         it probably doesn't.
8523
8524         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8525         (dbus_message_free_data_slot): new
8526         (dbus_message_set_data): new
8527         (dbus_message_get_data): new
8528
8529 2003-06-22  Havoc Pennington  <hp@pobox.com>
8530
8531         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8532         (_dbus_data_slot_allocator_alloc): rework these to keep a
8533         reference count on each slot and automatically manage a global
8534         slot ID variable passed in by address
8535
8536         * bus/bus.c: convert to new dataslot API
8537
8538         * dbus/dbus-bus.c: convert to new dataslot API
8539
8540         * dbus/dbus-connection.c: convert to new dataslot API
8541
8542         * dbus/dbus-server.c: convert to new dataslot API
8543
8544         * glib/dbus-gmain.c: ditto
8545
8546         * bus/test.c: ditto
8547
8548         * bus/connection.c: ditto
8549
8550 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8551
8552         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8553         after the gcj checks so that the correct configuration tags
8554         will be added to libtool.
8555
8556         * dbus-glib-1.pc.in: No need to specify any includes since
8557         dbus-1.pc.in has those.
8558
8559 2003-06-22  Havoc Pennington  <hp@pobox.com>
8560
8561         * mono/*, gcj/*, configure.in, Makefile.am:
8562         Check in makefiles and subdirs for mono and gcj bindings.
8563         Neither binding actually exists, just trying to get through
8564         all the build and other boring bits.
8565
8566 2003-06-21  Philip Blundell  <philb@gnu.org>
8567
8568         * tools/dbus-monitor.1: Updated.
8569
8570         * tools/dbus-send.1: Likewise.
8571
8572 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8573
8574         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8575         for hangup and error after checking read so we won't discard
8576         pending data if both hangup and read are set.
8577
8578 2003-06-19  Philip Blundell  <philb@gnu.org>
8579
8580         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8581
8582         * tools/dbus-send.c: Accept both --system and --session.
8583
8584         * tools/dbus-monitor.c: Same here.
8585
8586 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8587
8588         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8589         from C++ (Patch by Miloslav Trmac).
8590
8591 2003-06-15  Joe Shaw  <joe@assbarn.com>
8592
8593         * configure.in: Check for socklen_t.
8594
8595         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8596
8597         * test/test-segfault.c: Add #include <sys/time.h>
8598
8599         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8600         dbus-launch needs it.
8601
8602 2003-06-09  Havoc Pennington  <hp@redhat.com>
8603
8604         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8605         SUN_LEN, it breaks abstract socket usage
8606
8607         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8608         starts of lines.
8609
8610 2003-06-04  Havoc Pennington  <hp@pobox.com>
8611
8612         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8613         using unix:abstract=/foo, and when listening in a tmpdir
8614         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8615
8616         * dbus/dbus-transport.c (_dbus_transport_open): support
8617         unix:abstract=/foo
8618
8619         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8620         support abstract sockets
8621
8622         * dbus/dbus-transport-unix.c
8623         (_dbus_transport_new_for_domain_socket): support abstract sockets
8624
8625         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8626         toggle as an argument, implement abstract namespace support
8627         (_dbus_listen_unix_socket): ditto
8628
8629         * configure.in: add --enable-abstract-sockets and implement
8630         a configure check for autodetection of the right value.
8631
8632 2003-06-01  Havoc Pennington  <hp@pobox.com>
8633
8634         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8635         in /tmp (though on Linux this will end up being useless,
8636         when we add abstract namespace support)
8637
8638         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8639         subst'ing it
8640
8641 2003-05-28  Colin Walters  <walters@verbum.org>
8642
8643         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8644
8645 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8646
8647         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8648
8649 2003-05-17  Colin Walters  <walters@gnu.org>
8650
8651         * tools/dbus-send.c: Don't exit with an error code if --help was
8652         passed.  Default to using the session bus instead of the system
8653         one.
8654
8655         * tools/dbus-launch.c: Ditto.
8656
8657         * tools/dbus-monitor.c: Ditto.
8658
8659         * tools/dbus-send.1: Update with new arguments.
8660
8661         * tools/dbus-launch.c: Emit code to export variables.  New
8662         arguments -s and -c to specify shell syntax, and a bit of code to
8663         autodetect syntax.  Also, allow specifying a program to run.
8664
8665         * tools/dbus-launch.1: Update with new arguments.
8666
8667         * tools/dbus-send.1: Ditto.
8668
8669         * tools/dbus-monitor.1: Ditto.
8670
8671 2003-05-17  Havoc Pennington  <hp@pobox.com>
8672
8673         * bus/config-parser.c (merge_included): merge in policies from
8674         child configuration file.
8675
8676         * bus/policy.c (bus_policy_merge): function to merge two policies
8677         together
8678
8679 2003-05-16  Havoc Pennington  <hp@redhat.com>
8680
8681         * dbus/dbus-connection.c: disable verbose lock spew
8682
8683         * tools/dbus-send.c: add --print-reply command line option
8684
8685         * tools/dbus-print-message.h (print_message): new util function
8686         shared by dbus-send and dbus-monitor
8687
8688         * tools/dbus-monitor.c (handler_func): exit on disconnect
8689
8690         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8691         disconnected, don't try to use the read_watch
8692
8693         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8694         so we can find this bug more easily
8695
8696 2003-05-16  Havoc Pennington  <hp@redhat.com>
8697
8698         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8699         NULL as DBusHashTable is annoyingly likely to do.
8700
8701 2003-05-16  Colin Walters  <walters@verbum.org>
8702
8703         * tools/dbus-monitor.c: Add --session argument and usage()
8704         function.
8705
8706         * tools/dbus-monitor.1: Update with new --session arg.
8707
8708         * bus/Makefile.am (install-data-hook): Create
8709         $(libdir)/dbus-1.0/services so that the session bus is happy.
8710
8711 2003-05-15  Havoc Pennington  <hp@redhat.com>
8712
8713         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8714         on non-x86. ifdef's are evil.
8715
8716 2003-05-15  Havoc Pennington  <hp@redhat.com>
8717
8718         * configure.in: 0.11
8719
8720         * NEWS: update
8721
8722         * bus/Makefile.am (initddir): apparently we are supposed to put
8723         init scripts in /etc/rc.d/init.d not /etc/init.d
8724
8725         * bus/Makefile.am: remove the "you must --enable-tests to make
8726         check" as it broke distcheck
8727
8728         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8729
8730 2003-05-13  James Willcox  <jwillcox@gnome.org>
8731
8732         * configure.in:
8733         * bus/activation.c: (bus_activation_service_created),
8734         (bus_activation_activate_service):
8735         * bus/driver.c: (bus_driver_send_service_deleted),
8736         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8737         (bus_driver_send_service_acquired),
8738         (bus_driver_send_welcome_message),
8739         (bus_driver_handle_list_services):
8740         * bus/session.conf.in:
8741         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8742         (dbus_bus_service_exists), (dbus_bus_activate_service):
8743         * dbus/dbus-bus.h:
8744
8745         Add some convenience API which lets you activate a service, and did a
8746         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8747         and dbus_message_get_args()
8748
8749 2003-05-11  Havoc Pennington  <hp@pobox.com>
8750
8751         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8752         calling _dbus_marshal_validate_arg() for every byte in a byte
8753         array, etc.
8754
8755         * dbus/dbus-message-handler.c: use atomic reference counting to
8756         reduce number of locks slightly; the global lock in here sucks
8757
8758         * dbus/dbus-connection.c
8759         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8760         update_dispatch_status that can be called with lock held; then use
8761         in a couple places to reduce locking/unlocking
8762         (dbus_connection_send): hold the lock over the whole function
8763         instead of acquiring it twice.
8764
8765         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8766
8767         * bus/connection.c (bus_connections_setup_connection): fix access
8768         to already-freed memory.
8769
8770         * dbus/dbus-connection.c: keep a little cache of linked list
8771         nodes, to avoid using the global linked list alloc lock in the
8772         normal send-message case. Instead we just use the connection lock
8773         that we already have to take.
8774
8775         * dbus/dbus-list.c (_dbus_list_find_last): new function
8776
8777         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8778         change to use a struct for the atomic type; fix docs,
8779         they return value before increment, not after increment.
8780
8781         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8782         (_dbus_string_append_8_aligned): new functions to try to
8783         microoptimize this operation.
8784         (reallocate_for_length): break this out of set_length(), to
8785         improve profile info, and also so we can consider inlining the
8786         set_length() part.
8787
8788         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8789         strings with some preallocation, cuts down on our calls to realloc
8790         a fair bit. Though if we can get the "move entire string to empty
8791         string" optimization below to kick in here, it would be better.
8792
8793         * dbus/dbus-string.c (_dbus_string_move): just call
8794         _dbus_string_move_len
8795         (_dbus_string_move_len): add a special case for moving
8796         an entire string into an empty string; we can just
8797         swap the string data instead of doing any reallocs.
8798         (_dbus_string_init_preallocated): new function
8799
8800 2003-05-11  Havoc Pennington  <hp@pobox.com>
8801
8802         Write a "test-profile" that does echo client-server with threads;
8803         profile reveals lock contention, memcpy/realloc of buffers, and
8804         UTF-8 validation as hot spots. 20% of lock contention eliminated
8805         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8806         contention is global mempool locks for GList and DBusList.
8807
8808         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8809         x86 implementation
8810
8811         * dbus/dbus-connection.c (struct DBusConnection): use
8812         dbus_atomic_t for the reference count
8813
8814         * dbus/dbus-message.c (struct DBusMessage): declare
8815         dbus_atomic_t values as volatile
8816
8817         * configure.in: code to detect ability to use atomic integer
8818         operations in assembly, from GLib patch
8819
8820         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8821         time, tired of it being wrong in threads and forked processes
8822
8823         * glib/test-profile.c: a little program to bounce messages back
8824         and forth between threads and eat CPU
8825
8826         * dbus/dbus-connection.c: add debug spew macros for debugging
8827         thread locks; include config.h at top; fix deadlock in
8828         dbus_connection_flush()
8829
8830 2003-05-08  Havoc Pennington  <hp@pobox.com>
8831
8832         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8833         data from getting written, and there wasn't a good reason to
8834         use _exit really.
8835
8836         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8837         dbus_verbose lines in test coverage
8838         (main): add list of functions sorted by # of untested blocks
8839         to the coverage report
8840
8841         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8842
8843         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8844
8845         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8846         extend test coverage
8847
8848         * test/data/auth/cancel.auth-script: test canceling an
8849         authentication
8850
8851         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8852         aren't used. in CVS history if we end up needing them.
8853
8854 2003-05-04  Havoc Pennington  <hp@pobox.com>
8855
8856         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8857         unit test
8858
8859         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8860         function, which assumed length was in # of strings, not bytes
8861
8862         * dbus/dbus-message.c (_dbus_message_test): add tests for some
8863         missing coverage
8864
8865         * dbus/dbus-connection.c
8866         (_dbus_connection_queue_received_message): disable function for
8867         now, we are only using it in test mode
8868
8869         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8870         remove a mistaken FIXME
8871
8872 2003-05-04  Havoc Pennington  <hp@pobox.com>
8873
8874         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8875         unlock mutex on successful return, patch from Anders Gustafsson
8876
8877 2003-05-04  Havoc Pennington  <hp@pobox.com>
8878
8879         * dbus-glib-1.pc.in (Requires): fix dependencies, from
8880         Anders Gustafsson
8881
8882 2003-05-04  Havoc Pennington  <hp@pobox.com>
8883
8884         * tools/dbus-launch.c: implement
8885
8886         * bus/main.c (main), bus/bus.c (bus_context_new):
8887         implement --print-pid and --fork
8888
8889 2003-05-03  Havoc Pennington  <hp@redhat.com>
8890
8891         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8892         the address had no value, and add to test suite. Fix and
8893         regression test from Miloslav Trmac
8894
8895 2003-05-03  Havoc Pennington  <hp@pobox.com>
8896
8897         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8898         watch is invalid when handled
8899
8900         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8901         dbus-launch utility to launch the bus from a shell script.  Didn't
8902         actually implement dbus-launch yet, it's just a placeholder still.
8903
8904 2003-05-03  Havoc Pennington  <hp@pobox.com>
8905
8906         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8907         daemon; also documents daemon config file, so replaces
8908         doc/config-file.txt. Corrected some stuff from config-file.txt in
8909         the process of moving it.
8910
8911 2003-05-03  Havoc Pennington  <hp@pobox.com>
8912
8913         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8914         add some man pages
8915
8916 2003-05-03  Colin Walters  <walters@verbum.org>
8917
8918         * dbus/dbus-sysdeps.c (fill_user_info): Test against
8919         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8920
8921         * Makefile.am: Update to use new .pc versioning scheme.
8922
8923 2003-05-02  Havoc Pennington  <hp@redhat.com>
8924
8925         * bus/system.conf.in: allow send/receive to/from message bus
8926         service
8927
8928 2003-04-30  Havoc Pennington  <hp@redhat.com>
8929
8930         * configure.in: print a note when building with unit tests and
8931         without assertions
8932
8933 2003-04-30  Havoc Pennington  <hp@redhat.com>
8934
8935         * Makefile.am: add a check-local that complains if you didn't
8936         configure with --enable-tests
8937
8938 2003-04-29  Havoc Pennington  <hp@redhat.com>
8939
8940         * glib/dbus-gmain.c: docs cleanups
8941
8942         * dbus/dbus-types.h: add docs on int64 types
8943
8944         * dbus/dbus-memory.c: fix docs to avoid putting private API in
8945         public API docs section
8946
8947 2003-04-29  Havoc Pennington  <hp@redhat.com>
8948
8949         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8950         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8951         parallel install API version, not with the D-BUS package version.
8952
8953         * HACKING: move some of README over here
8954
8955         * README: updates, and document API/ABI policy
8956
8957         * configure.in: reindentation
8958
8959 2003-04-29  Havoc Pennington  <hp@redhat.com>
8960
8961         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8962         to use this library" to be sure people have the right
8963         expectations.
8964
8965 2003-04-28  Havoc Pennington  <hp@redhat.com>
8966
8967         * configure.in: add --enable-docs which by default is auto yes if
8968         doxygen and db2html found, no otherwise; but can be forced on/off
8969
8970         * doc/Makefile.am: conditionalize whether to build docs on
8971         --enable-docs
8972
8973 2003-04-28  Havoc Pennington  <hp@redhat.com>
8974
8975         * configure.in: 0.10
8976
8977         * NEWS: update
8978
8979         * bus/system.conf.in: add <includedir>system.d</includedir>
8980
8981         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8982         username was provided but not uid
8983
8984         * bus/config-parser.c (struct BusConfigParser): keep track of
8985         whether the parser is toplevel or was included; change some
8986         of the error handling if it's included.
8987
8988 2003-04-27  Havoc Pennington  <hp@pobox.com>
8989
8990         Unbreak my code...
8991
8992         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8993         report correct status if we finish processing authentication
8994         inside this function.
8995
8996         * bus/activation.c (try_send_activation_failure): use
8997         bus_transaction_send_error_reply
8998
8999         * bus/connection.c (bus_connection_get_groups): return an error
9000         explaining the problem
9001
9002         * bus/bus.c (bus_context_check_security_policy): implement
9003         restriction here that inactive connections can only send the
9004         hello message. Also, allow bus driver to send anything to
9005         any recipient.
9006
9007         * bus/connection.c (bus_connection_complete): create the
9008         BusClientPolicy here instead of on-demand.
9009         (bus_connection_get_policy): don't return an error
9010
9011         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9012         sender field in message being replied to
9013
9014         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9015         causing it to return FALSE always
9016
9017         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9018         we checked sender rather than destination
9019
9020 2003-04-25  Havoc Pennington  <hp@redhat.com>
9021
9022         test suite is slightly hosed at the moment, will fix soon
9023
9024         * bus/connection.c (bus_connections_expire_incomplete): fix to
9025         properly disable the timeout when required
9026         (bus_connection_set_name): check whether we can remove incomplete
9027         connections timeout after we complete each connection.
9028
9029         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9030         probably still broken.
9031
9032         * bus/services.c (bus_registry_acquire_service): implement max
9033         number of services owned, and honor allow/deny rules on which
9034         services a connection can own.
9035
9036         * bus/connection.c (bus_connection_get_policy): report errors here
9037
9038         * bus/activation.c: implement limit on number of pending
9039         activations
9040
9041 2003-04-25  Havoc Pennington  <hp@redhat.com>
9042
9043         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9044         where we used >= 0 instead of != DBUS_UID_UNSET.
9045
9046 2003-04-25  Havoc Pennington  <hp@redhat.com>
9047
9048         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9049         were toggled without add/remove, fix from Anders Gustafsson
9050
9051 2003-04-24  Havoc Pennington  <hp@redhat.com>
9052
9053         * test/data/valid-config-files/basic.conf: add <limit> tags to
9054         this test
9055
9056         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9057         <limit> tag in configuration file.
9058
9059 2003-04-24  Havoc Pennington  <hp@redhat.com>
9060
9061         * bus/dispatch.c: somehow missed some name_is
9062
9063         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9064         (_dbus_timeout_set_interval): new
9065
9066         * bus/connection.c (bus_connections_setup_connection): record time
9067         when each connection is first set up, and expire them after the
9068         auth timeout passes.
9069
9070 2003-04-24  Havoc Pennington  <hp@redhat.com>
9071
9072         * dbus/dbus-message.c (dbus_message_name_is): rename
9073         (dbus_message_service_is): rename
9074         (dbus_message_sender_is): rename
9075         (dbus_message_get_service): rename
9076
9077 2003-04-24  Havoc Pennington  <hp@redhat.com>
9078
9079         * configure.in: add --enable-checks
9080
9081         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9082
9083         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9084         to use thread locks.
9085         (_dbus_connection_handler_destroyed_locked): move some private
9086         functions into proper docs group
9087
9088         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9089         _dbus_return_val_if_fail
9090
9091         Throughout: use dbus_return_if_fail
9092
9093 2003-04-23  James Willcox  <jwillcox@gnome.org>
9094
9095         * glib/dbus-glib.h:
9096         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9097         (dbus_connection_setup_with_g_main),
9098         (dbus_server_setup_with_g_main):
9099         * glib/test-dbus-glib.c: (main):
9100         * glib/test-thread-client.c: (main):
9101         * glib/test-thread-server.c: (new_connection_callback), (main):
9102         * tools/dbus-monitor.c: (main):
9103
9104         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9105         and dbus_server_setup_with_g_main().
9106
9107 2003-04-20  Havoc Pennington  <hp@pobox.com>
9108
9109         * doc/dbus-specification.sgml: document the restrictions on
9110         message and service names
9111
9112 2003-04-22  Havoc Pennington  <hp@redhat.com>
9113
9114         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9115         support, and do some code cleanups to share more code and
9116         speed up array marshal/demarshal.
9117
9118         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9119
9120         * configure.in: generate dbus-arch-deps.h
9121
9122         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9123         64-bit typecodes
9124
9125 2003-04-22  Havoc Pennington  <hp@redhat.com>
9126
9127         * test/data/valid-messages/opposite-endian.message: fix test
9128         to use proper type for rply field
9129
9130         * test/data/invalid-messages: add tests for below validation
9131
9132         * dbus/dbus-message.c (decode_header_data): validate field types,
9133         and validate that named fields are valid names
9134         (decode_name_field): consider messages in the
9135         org.freedesktop.Local. namespace to be invalid.
9136
9137         * dbus/dbus-string.c (_dbus_string_validate_name): new
9138
9139 2003-04-19  Havoc Pennington  <hp@pobox.com>
9140
9141         * bus/driver.c (bus_driver_handle_hello): check limits and
9142         return an error if they are exceeded.
9143
9144         * bus/connection.c: maintain separate lists of active and inactive
9145         connections, and a count of each. Maintain count of completed
9146         connections per user. Implement code to check connection limits.
9147
9148         * dbus/dbus-list.c (_dbus_list_unlink): export
9149
9150         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9151         number of bytes in the message queue for a connection
9152
9153 2003-04-18  Havoc Pennington  <hp@pobox.com>
9154
9155         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9156
9157         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9158         memleaks
9159
9160         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9161         on realloc be sure to update the pointer in the keyring
9162
9163         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9164         offset to avoid writing to unallocated memory
9165
9166         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9167         try the next mechanism, so we properly handle OOM
9168
9169         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9170         on OOM.
9171         (_dbus_keyring_new): fix OOM bug
9172         (_dbus_keyring_new_homedir): always set error; impose a maximum
9173         number of keys we'll load from the file, mostly to speed up the
9174         test suite and make its OOM checks more useful, but also for
9175         general sanity.
9176
9177         * dbus/dbus-auth.c (process_error_server): reject authentication
9178         if we get an error from the client
9179         (process_cancel): on cancel, send REJECTED, per the spec
9180         (process_error_client): send CANCEL if we get an error from the
9181         server.
9182
9183 2003-04-18  Havoc Pennington  <hp@pobox.com>
9184
9185         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9186         debug spew
9187
9188         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9189         handling problem
9190
9191         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9192         about DBUS_TEST_HOMEDIR once
9193
9194         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9195         the environment
9196
9197         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9198         config file so we test the right thing
9199
9200         Throughout: assorted docs improvements
9201
9202 2003-04-18  Havoc Pennington  <hp@pobox.com>
9203
9204         * glib/dbus-gmain.c: adapt to watch changes
9205
9206         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9207
9208         * dbus/dbus-server.h: remove dbus_server_handle_watch
9209
9210         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9211
9212         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9213         like DBusTimeout, so we don't need dbus_connection_handle_watch
9214         etc.
9215
9216 2003-04-17  Havoc Pennington  <hp@redhat.com>
9217
9218         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9219         database usage so it all goes via the DBusUserDatabase cache.
9220
9221 2003-04-17  Havoc Pennington  <hp@redhat.com>
9222
9223         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9224         there was an OOM watch we skipped, we always return TRUE so we
9225         iterate again to have a look at it again. Fixes test suite hang.
9226         Code rearrangement also lets us lose some memset and only iterate
9227         over callbacks once.
9228
9229         * bus/driver.c (bus_driver_handle_message): sense of test for
9230         reply was backward
9231
9232 2003-04-16  Havoc Pennington  <hp@pobox.com>
9233
9234         * doc/dbus-specification.sgml: make spec say serials are unsigned
9235
9236         * dbus/dbus-message.h: change message serials to unsigned
9237
9238         * dbus/dbus-connection.c: adapt to message serials being unsigned
9239
9240 2003-04-15  Havoc Pennington  <hp@pobox.com>
9241
9242         * bus/bus.c: create and keep around a shared DBusUserDatabase
9243         object.
9244
9245         * bus/connection.c (bus_connection_get_groups): don't cache
9246         groups for user in the connection object, since user database
9247         object now does that.
9248
9249 2003-04-16  Havoc Pennington  <hp@redhat.com>
9250
9251         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9252         list of size counters
9253         (_dbus_message_loader_putback_message_link): put back a popped link
9254
9255         * dbus/dbus-connection.c
9256         (dbus_connection_set_max_live_messages_size): rename
9257         max_received_size
9258         (dbus_connection_get_outgoing_size): get size of outgoing
9259         queue
9260         (_dbus_connection_set_connection_counter): remove this cruft
9261
9262 2003-04-14  Havoc Pennington  <hp@redhat.com>
9263
9264         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9265         caching, but at some point we might want to be able to use a
9266         different database.
9267
9268         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9269         SHA1 conf file to test the sha1 auth mechanism, since the regular
9270         test always uses EXTERNAL when available.
9271
9272         * configure.in,
9273         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9274         add conf file that requires use of sha1 auth
9275
9276 2003-04-13  Havoc Pennington  <hp@pobox.com>
9277
9278         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9279         from Philip Blundell to send messages and monitor them.
9280
9281 2003-04-13  Havoc Pennington  <hp@pobox.com>
9282
9283         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9284         callbacks
9285
9286         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9287         users
9288
9289         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9290         fix to only recover unused bytes if we're already authenticated
9291         (_dbus_transport_get_is_authenticated): fix to still mark us
9292         authenticated if there are unused bytes.
9293
9294         * bus/dispatch.c: implement security policy checking
9295
9296         * bus/connection.c (bus_transaction_send_from_driver): new
9297
9298         * bus/bus.c (bus_context_check_security_policy): new
9299
9300         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9301         now we just set the DBusError and it gets converted to an error
9302         reply.
9303
9304         * bus/connection.c (allow_user_function): enable code using actual
9305         data from the config file
9306
9307         * bus/policy.c (list_allows_user): handle wildcard rules for
9308         user/group connection perms
9309
9310 2003-04-13  Havoc Pennington  <hp@pobox.com>
9311
9312         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9313
9314         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9315
9316         * bus/policy.c (bus_policy_append_mandatory_rule)
9317         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9318         (bus_policy_append_group_rule): new functions
9319
9320 2003-04-12  Havoc Pennington  <hp@pobox.com>
9321
9322         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9323
9324         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9325         the pid/gid/uid, just for paranoia.
9326
9327         * test/break-loader.c (randomly_do_n_things): find a byte
9328         containing a type code, and randomly change it to a different
9329         type code.
9330
9331 2003-04-12  Havoc Pennington  <hp@pobox.com>
9332
9333         * bus/policy.h: change BusPolicy to be the thing from the config
9334         file, and rename old BusPolicy to BusClientPolicy
9335
9336         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9337         match change in how policy works
9338
9339         * dbus/dbus-internals.h: mark assert_not_reached as
9340         __attribute((noreturn))__
9341
9342 2003-04-11  Havoc Pennington  <hp@redhat.com>
9343
9344         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9345         the broadcast service. Use boolean return for ServiceExists.
9346
9347 2003-04-11  Havoc Pennington  <hp@redhat.com>
9348
9349         * configure.in: add another directory to look for qt in.
9350
9351 2003-04-11  Havoc Pennington  <hp@redhat.com>
9352
9353         * AUTHORS: add Colin Walters
9354
9355 2003-04-11  Havoc Pennington  <hp@redhat.com>
9356
9357         * NEWS: update
9358
9359         * configure.in: 0.9
9360
9361 2003-04-11  Havoc Pennington  <hp@redhat.com>
9362
9363         * bus/messagebus.in: remove pid file when stopping the
9364         message bus, since the bus won't have privileges to remove it
9365         itself.
9366
9367 2003-04-11  Havoc Pennington  <hp@redhat.com>
9368
9369         * bus/bus.c (bus_context_new): move credentials change after
9370         creating pidfile
9371
9372 2003-04-11  Havoc Pennington  <hp@pobox.com>
9373
9374         * test/decode-gcov.c: add "below average functions" to the
9375         coverage report, and change how some of the code works.
9376
9377         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9378         not in the coverage stats.
9379
9380         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9381         couple places so running the test suite doesn't result in megaspam.
9382
9383 2003-04-11  Havoc Pennington  <hp@pobox.com>
9384
9385         * bus/dispatch.c (check_existent_service_activation): accept a no
9386         memory error in a place we didn't before
9387
9388         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9389         in case the first one failed," since the test suite is less
9390         broken now.
9391
9392 2003-04-10  Havoc Pennington  <hp@pobox.com>
9393
9394         * bus/dispatch.c (check_segfault_service_activation): add test
9395         for launching an executable that just crashes.
9396
9397         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9398         don't leave a million cores. We'll see how portable this is.
9399
9400 2003-04-10  Havoc Pennington  <hp@pobox.com>
9401
9402         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9403         the possible parent failures before we fork, so that we don't
9404         fail to create a babysitter after creating the child.
9405
9406         * bus/activation.c (bus_activation_activate_service): kill child
9407         if we don't successfully complete the activation.
9408
9409 2003-04-10  Havoc Pennington  <hp@redhat.com>
9410
9411         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9412         the connection if it's disconnected
9413
9414         * bus/activation.c (bus_activation_service_created): use new
9415         transaction features to roll back removal of pending activation if
9416         we don't successfully create the service after all. Don't remove
9417         pending activation if the function fails.
9418
9419         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9420         (_dbus_list_insert_after_link): new code to facilitate
9421         services.c fixes
9422
9423         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9424         new functionality, so we can preallocate the ability to insert
9425         into a hash table.
9426
9427         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9428         allowing us to put custom hooks in a transaction to be used for
9429         cancelling said transaction
9430
9431         * doc/dbus-specification.sgml: add some discussion of secondary
9432         service owners, and disallow zero-length service names
9433
9434         * bus/services.c (bus_registry_acquire_service): new function,
9435         splits out part of bus_driver_handle_acquire_service() and fixes
9436         a bug where we didn't remove the service doing the acquiring
9437         from the secondary queue if we failed to remove the current owner
9438         from the front of the queue.
9439
9440 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9441
9442         * doc/dbus-specification.sgml:
9443         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9444
9445 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9446
9447         * bus/.cvsignore:
9448         * glib/.cvsignore:
9449         * test/.cvsignore:
9450         Added files to cvsignore
9451
9452         * dbus/dbus-message.h:
9453         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9454         Make get_named() take two out argument and return a boolean.
9455         (dbus_message_iter_get_args_valist):
9456         Update usage of get_named().
9457         (dbus_message_iter_append_byte):
9458         Fix typo
9459         (dbus_message_iter_append_named)
9460         Fix typo
9461         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9462         More tests.
9463
9464 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9465
9466         * dbus/dbus-marshal.[ch]:
9467         Add array_type_pos argument to _dbus_marshal_validate_arg.
9468         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9469
9470         * dbus/dbus-message.[ch]:
9471         Multi-dimensional arrays have full type specification in the
9472         outermost array. Iter code re-arranged to handle this.
9473         Added some more iter tests.
9474
9475         * doc/dbus-specification.sgml:
9476         Add me to authors.
9477         Remove old FIXME.
9478         Update new array encoding description.
9479         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9480
9481         * test/data/invalid-messages/array-with-mixed-types.message:
9482         * test/data/valid-messages/array-of-array-of-uint32.message:
9483         Change to the new array format.
9484
9485         * test/data/invalid-messages/too-short-dict.message:
9486         Fix bug in test.
9487
9488         * test/data/valid-messages/recursive-types.message:
9489         Fix up and extend test.
9490
9491 2003-04-10  Havoc Pennington  <hp@pobox.com>
9492
9493         * bus/dispatch.c: lots of fixes
9494
9495         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9496         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9497         that was crack, broke the test service.
9498
9499         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9500         handling to avoid piling up errors if we get a failure on the
9501         first address.
9502
9503         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9504         pid in assertion failures.
9505
9506         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9507         to some fixed size of file descriptor array. Don't return TRUE
9508         anytime a timeout exists, that led to lots of busy loop silliness
9509         in the tests.
9510
9511 2003-04-09  Havoc Pennington  <hp@redhat.com>
9512
9513         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9514         I'd checked this in earlier but hadn't.
9515
9516 2003-04-09  Havoc Pennington  <hp@redhat.com>
9517
9518         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9519         the activation test (man this is getting old!)
9520
9521 2003-04-09  Havoc Pennington  <hp@redhat.com>
9522
9523         * test/test-utils.c: use dispatch status function to fix this up
9524
9525         * bus/connection.c (connection_watch_callback): don't dispatch
9526         from here
9527         (connection_timeout_callback): don't dispatch from here
9528         (bus_connections_setup_connection): set the dispatch status function
9529         (bus_connection_disconnected): unset it
9530
9531         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9532         used to add a connection to be dispatched
9533         (_dbus_loop_iterate): do the dispatching at the end of each
9534         iteration
9535
9536         * dbus/dbus-connection.c
9537         (dbus_connection_set_dispatch_status_function): new function
9538         allowing us to fix up main loop usage
9539         (_dbus_connection_last_unref): free all the various function
9540         user data
9541         (dbus_connection_dispatch): call the DispatchStatusFunction
9542         whenever this function returns
9543         (dbus_connection_handle_watch): call DispatchStatusFunction
9544         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9545         (reply_handler_timeout): call DispatchStatusFunction
9546         (dbus_connection_flush): call DispatchStatusFunction
9547
9548 2003-04-09  Havoc Pennington  <hp@redhat.com>
9549
9550         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9551         a memory leak
9552
9553         * bus/dispatch.c (check_service_activated): fix bug in test
9554
9555         * dbus/dbus-mainloop.c (check_timeout): fix this up
9556
9557         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9558         verbose output so we can sort out output from different processes,
9559         e.g. in the activation case.
9560
9561 2003-04-08  Colin Walters  <walters@gnu.org>
9562
9563         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9564         the pid file.
9565         (bus_context_new): Set it.
9566         (bus_context_unref): Use it to delete the pid file.
9567
9568 2003-04-08  Havoc Pennington  <hp@redhat.com>
9569
9570         * test/data/invalid-messages/array-with-mixed-types.message:
9571         regression test that fails for the moment
9572
9573         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9574         tests for convenience
9575
9576         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9577         array of nil, it broke things.
9578
9579         * test/data/invalid-messages/array-of-nil.message: regression test
9580
9581         * test/data/valid-messages/array-of-array-of-uint32.message:
9582         happened to write this so added it to suite
9583
9584 2003-04-08  Havoc Pennington  <hp@redhat.com>
9585
9586         * bus/driver.c (bus_driver_handle_acquire_service): init
9587         retval/reply before checking name
9588
9589         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9590         recursion depth argument
9591
9592         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9593         in the public struct for future extension
9594
9595         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9596         typo
9597
9598         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9599         message
9600
9601         * doc/dbus-specification.sgml: fix typo
9602
9603 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9604
9605         Implemented recursive types, named types and new-style iters
9606
9607         * bus/driver.c:
9608         * glib/test-thread-client.c: (thread_func):
9609         * glib/test-thread-server.c: (handle_test_message):
9610         * test/test-service.c: (handle_echo):
9611         Update to new api
9612
9613         * dbus/Makefile.am:
9614         * dbus/dbus-dict.c:
9615         * dbus/dbus-dict.h:
9616         * dbus/dbus.h
9617         Remove DBusDict
9618
9619         * dbus/dbus-internals.c: (_dbus_type_to_string):
9620         Update for new types.
9621
9622         * dbus/dbus-marshal.[ch]:
9623         Implement recursive types and the new marshalling format.
9624         Remove hardcoded dict marshalling.
9625         Marshal named types.
9626
9627         * dbus/dbus-message-builder.c:
9628         Add BYTE_ARRAY.
9629         Remove references to old types
9630
9631         * dbus/dbus-message.[ch]:
9632         New non-refcounted iter API that supports recursive iters.
9633         Use iters for appending, including support for recursive
9634         iters.
9635         Add byte and named type support.
9636         Update everything to new marshalling formats.
9637         Add tests for new API.
9638
9639         * dbus/dbus-protocol.h:
9640         Remove old array types.
9641         Add types: BYTE, ARRAY, DICT, NAMED
9642
9643         * dbus/dbus-string.c:
9644         * dbus/dbus-sysdeps.c:
9645         Make parse_double locale safe.
9646
9647         * dbus/dbus-test-main.c:
9648         Call setlocale.
9649
9650         * dbus/dbus-test.c:
9651         Kill dict test
9652
9653         * doc/dbus-specification.sgml:
9654         Update spec
9655
9656         * test/data/incomplete-messages/missing-body.message:
9657         * test/data/invalid-messages/bad-boolean.message:
9658         * test/data/invalid-messages/bad-boolean-array.message:
9659         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9660         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9661         * test/data/invalid-messages/too-short-dict.message:
9662         * test/data/valid-messages/dict-simple.message:
9663         * test/data/valid-messages/dict.message:
9664         * test/data/valid-messages/emptiness.message:
9665         * test/data/valid-messages/lots-of-arguments.message:
9666         * test/data/valid-messages/no-padding.message:
9667         * test/data/valid-messages/recursive-types.message:
9668         Add missing NAME fields
9669         Fix up dicts & arrays
9670
9671         * test/data/invalid-messages/dict-with-nil-value.message:
9672         Removed, this is not invalid anymore.
9673
9674         * test/data/valid-messages/recursive-types.message:
9675         Add new test for deeply recursive types.
9676
9677 2003-04-07  Havoc Pennington  <hp@pobox.com>
9678
9679         * bus/driver.c (bus_driver_handle_acquire_service): return an
9680         error if you try to acquire a service that starts with ':'
9681
9682 2003-04-07  Havoc Pennington  <hp@redhat.com>
9683
9684         * doc/dbus-specification.sgml: require that base service names
9685         start with ':' and that the base service is created/deleted
9686         as first and last things a connection does on the bus
9687
9688         * bus/dispatch.c (check_existent_service_activation): lots more
9689         work on the activation test; it doesn't fully pass yet...
9690
9691         * test/test-service.c (main): fix so we don't memleak the
9692         connection to the message bus
9693         (filter_func): accept a message asking us to exit
9694
9695 2003-04-06  Havoc Pennington  <hp@pobox.com>
9696
9697         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9698         from Colin Walters
9699
9700         * configure.in: fixes to Qt detection from Colin Walters
9701
9702         * doc/Makefile.am: Only remove generated docbook dirs if they
9703         exist, from Colin Walters
9704
9705         * dbus/dbus-bus.c: change how we set well-known connections to
9706         NULL, so that it works if a single connection is stored in
9707         two well-known array slots.
9708
9709         * test/Makefile.am: remove a lot of stuff that isn't immediately
9710         useful, it's in CVS history if we want it.
9711
9712         * test/test-service.c: use dbus-mainloop instead of that
9713         watch.[hc] crack
9714
9715 2003-04-06  Havoc Pennington  <hp@pobox.com>
9716
9717         * dbus/Makefile.am: split lists of sources into stuff that goes in
9718         the library, util functions that go in the lib and are also used
9719         elsewhere, and util functions that are used in tests/daemon but
9720         don't go in the lib.
9721
9722         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9723         here so it can be used in test binaries also
9724
9725 2003-04-06  Havoc Pennington  <hp@pobox.com>
9726
9727         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9728         here in the parent process, so we can return an error if it
9729         fails. Also, move some of the code into the child so the parent
9730         is less hosed if we fail midway through.
9731
9732         * bus/bus.c (bus_context_new): move pidfile detection further up
9733         in the function, before we start overwriting sockets and such.
9734
9735         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9736
9737         * configure.in: add --with-system-pid-file and --with-system-socket
9738
9739 2003-04-06  Colin Walters  <walters@verbum.org>
9740
9741         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9742
9743         * bus/system.conf.in: Declare a pidfile.
9744
9745         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9746         create one (if appropriate).
9747
9748         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9749         (struct BusConfigParser) [pidfile]: New.
9750         (element_type_to_name, merge_included, start_busconfig_child)
9751         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9752         (bus_config_parser_unref): Free it.
9753         (bus_config_parser_get_pidfile): New function.
9754
9755         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9756
9757         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9758
9759         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9760
9761         * dbus/dbus-sysdeps.h: Prototype it.
9762
9763 2003-04-06  Havoc Pennington  <hp@pobox.com>
9764
9765         * bus/bus.c (bus_context_new): print the address in here, rather
9766         than in main(), because we need to do it before forking the daemon
9767
9768         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9769         on the service nonexistent error
9770
9771         * bus/driver.c (bus_driver_handle_acquire_service): set the
9772         sender on the AcquireService reply
9773
9774         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9775         server also listen on a UNIX socket so services can connect to it.
9776
9777 2003-04-06  Havoc Pennington  <hp@pobox.com>
9778
9779         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9780         so it detects deadlocks and also we actually init threads when
9781         debugging.
9782
9783 2003-04-06  Havoc Pennington  <hp@pobox.com>
9784
9785         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9786         save the domain socket name, and unlink it when we disconnect the
9787         server. Means that at least when we exit normally, we won't leave
9788         a bunch of junk in /tmp
9789
9790         * dbus/dbus-transport-unix.c
9791         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9792         memory management). (I was making a real change here but then
9793         didn't)
9794
9795 2003-04-06  Havoc Pennington  <hp@pobox.com>
9796
9797         * bus/bus.c (bus_context_new): fix wrong handling of
9798         server_data_slot_unref() in the error case.
9799
9800         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9801         "(condition) != 0" to _dbus_real_assert so that
9802         "_dbus_assert (pointer)" doesn't cause a warning
9803
9804         * bus/main.c (main): accept --print-address option to print out
9805         the message bus address
9806
9807         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9808
9809         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9810         "tmpdir" option to unix: address on client side
9811
9812         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9813         to unix: address
9814
9815         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9816         we can use to create sockets in the test suite.
9817
9818         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9819         cleanly. To be used for testing.
9820
9821         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9822
9823         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9824
9825         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9826         handle trying to call this when there's no servers active
9827
9828 2003-04-05  Havoc Pennington  <hp@pobox.com>
9829
9830         * NEWS: update
9831
9832         * configure.in: 0.8
9833
9834 2003-04-05  Havoc Pennington  <hp@pobox.com>
9835
9836         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9837         crash on startup. Need to get "try starting the daemon"
9838         in the test suite I guess. ;-)
9839
9840         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9841         tracked the number of open connections; it's better done in
9842         application-specific code as you want it to span all servers etc.
9843
9844 2003-04-05  Havoc Pennington  <hp@pobox.com>
9845
9846         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9847         patch from Colin Walters
9848
9849 2003-04-05  Havoc Pennington  <hp@pobox.com>
9850
9851         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9852         reality; in fact multiple mechanisms are allowed.
9853
9854         * dbus/dbus-internals.c (_dbus_real_assert)
9855         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9856         _dbus_assert_not_reached() into functions, so that they don't show
9857         up in basic block counts for test coverage, and don't use up as
9858         much disk space. Does mean slower execution speed though, so
9859         assumes --disable-asserts is the normal production case.
9860
9861 2003-04-05  Havoc Pennington  <hp@pobox.com>
9862
9863         * test/Makefile.am (dist-hook): also dist *.in files
9864
9865         * NEWS: update
9866
9867         * configure.in: 0.7
9868
9869 2003-04-05  Havoc Pennington  <hp@pobox.com>
9870
9871         * dbus/dbus-string.c: docs warning
9872
9873         * dbus/dbus-spawn.c: missing docs
9874
9875         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9876
9877 2003-04-05  Havoc Pennington  <hp@pobox.com>
9878
9879         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9880         magic from GLib
9881
9882         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9883         to -1 once we've reaped the babysitter
9884         (_dbus_babysitter_handle_watch): do as much work as we can, not
9885         just one go of it
9886
9887         * bus/activation.c: add code using DBusBabysitter so that we
9888         handle it when a service fails to start up properly.
9889         (bus_activation_service_created): don't remove the activation
9890         entries as we go, just let them get removed when we free the pending
9891         activation. Unref reply messages after sending them.
9892
9893 2003-04-05  Havoc Pennington  <hp@pobox.com>
9894
9895         * test/decode-gcov.c (main): print per-directory stats in the report
9896
9897         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9898
9899 2003-04-05  Havoc Pennington  <hp@pobox.com>
9900
9901         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9902
9903         * test/decode-gcov.c: hack up a little program to suck data
9904         out of gcov files. Yes this is sort of silly.
9905
9906         * configure.in: define something in config.h and do an
9907         AM_CONDITIONAL when gcov is enabled
9908
9909 2003-04-04  Havoc Pennington  <hp@redhat.com>
9910
9911         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9912         return a "babysitter" object that is used to monitor the status of
9913         the spawned process and reap it when required.
9914
9915         * test/test-segfault.c, test/test-exit.c,
9916         test/test-sleep-forever.c: binaries that do various lame things,
9917         used in the test suite.
9918
9919         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9920
9921 2003-04-03  Havoc Pennington  <hp@pobox.com>
9922
9923         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9924         in preparation for modifying it, dbus-sysdeps is getting
9925         a bit unmanageable.
9926
9927 2003-04-03  Havoc Pennington  <hp@redhat.com>
9928
9929         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9930         have multiple ones
9931
9932         * bus/*.[hc]: adapt to mainloop change
9933
9934 2003-04-03  Havoc Pennington  <hp@redhat.com>
9935
9936         * bus/activation.c (load_directory): fix up memleaks
9937         (bus_activation_entry_free): free the entry
9938
9939         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9940         we get one from the message bus; fix memleaks.
9941
9942         * dbus/dbus-message.c (dbus_set_error_from_message): new function
9943
9944 2003-04-03  Havoc Pennington  <hp@pobox.com>
9945
9946         * bus/config-parser.c (bus_config_parser_unref): free
9947         list of mechanisms, bug discovered by test suite enhancements
9948         (putting system.conf and session.conf into suite)
9949
9950         * test/Makefile.am, test/test-service.c: add placeholder for a
9951         test service that we'll activate as part of test suite. Doesn't
9952         do anything yet.
9953
9954         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9955         setting NULL value, and use system malloc not dbus_malloc()
9956         when we have unavoidable memleakage.
9957
9958         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9959         didn't work, and support DBUS_BUS_ACTIVATION.
9960
9961         * bus/activation.c (child_setup): pass our well-known bus type to
9962         the child
9963
9964         * bus/config-parser.c: support <type> to specify well-known type
9965
9966         * doc/dbus-specification.sgml: document the env variables to
9967         locate well-known buses and find service activator
9968
9969 2003-04-02  Havoc Pennington  <hp@redhat.com>
9970
9971         * test/Makefile.am (all-local): add a rule to copy tests to
9972         builddir, so we can have generated tests. Use this to remove the
9973         silly hack for testing system.conf and session.conf. Will use this
9974         shortly to generate .service files pointing to test binaries.
9975
9976 2003-04-02  Havoc Pennington  <hp@redhat.com>
9977
9978         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9979         current alloc and needed new length, not max of the doubled
9980         allocation and needed new length. Also, when building tests,
9981         don't do the double-allocation stuff, just realloc every time.
9982
9983 2003-04-02  Havoc Pennington  <hp@redhat.com>
9984
9985         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9986         in error messages
9987         (_dbus_string_get_dirname): new
9988         (_dbus_sysdeps_test): new
9989         (_dbus_directory_open): include dirnames in error messages
9990
9991         * bus/config-parser.c: interpret <include> and <includedir> and
9992         <servicedir> relative to config file location if the given
9993         filename is not absolute.
9994
9995         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9996
9997 2003-04-02  Havoc Pennington  <hp@redhat.com>
9998
9999         * bus/connection.c (bus_transaction_send_error_reply): set sender
10000         service for the error, and unref the reply on success
10001
10002         * bus/activation.c: convert to use BusTransaction so OOM can be
10003         handled correctly
10004         (bus_activation_service_created): set sender of the message
10005
10006 2003-04-01  Havoc Pennington  <hp@redhat.com>
10007
10008         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10009         <includedir> (at least mostly)
10010
10011         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10012         first, then the user ID
10013
10014 2003-04-01  Havoc Pennington  <hp@pobox.com>
10015
10016         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10017         function
10018
10019         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10020
10021         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10022
10023         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10024         socket 0777, and unlink any existing socket.
10025
10026         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10027         the configuration file so specifies; set up auth mechanism
10028         restrictions
10029
10030         * bus/config-parser.c (bus_config_parser_content): add support
10031         for <fork> option and fill in code for <auth>
10032
10033         * bus/system.conf.in: add <fork/> to default configuration,
10034         and limit auth mechanisms to EXTERNAL
10035
10036         * doc/config-file.txt (Elements): add <fork>
10037
10038         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10039         (_dbus_change_identity): new function
10040
10041 2003-03-31  Havoc Pennington  <hp@redhat.com>
10042
10043         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10044         (_dbus_listen_unix_socket): fix off-by-one error in null
10045         termination spotted by Nalin
10046
10047 2003-03-31  Havoc Pennington  <hp@redhat.com>
10048
10049         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10050         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10051         having a real home directory available.
10052
10053 2003-03-31  Havoc Pennington  <hp@redhat.com>
10054
10055         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10056
10057         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10058
10059         * configure.in: add support for specifying a style of init script
10060         to install
10061
10062 2003-03-31  Havoc Pennington  <hp@redhat.com>
10063
10064         Fix some annoying DBusString API and fix all affected code.
10065
10066         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10067         max_length argument
10068         (_dbus_string_get_data): change to return string instead of using
10069         an out param
10070         (_dbus_string_get_const_data): ditto
10071         (_dbus_string_get_data_len): ditto
10072         (_dbus_string_get_const_data_len): ditto
10073
10074 2003-03-31  Havoc Pennington  <hp@redhat.com>
10075
10076         * bus/main.c (main): fix up the command line arguments to be nicer
10077
10078 2003-03-31  Havoc Pennington  <hp@redhat.com>
10079
10080         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10081         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10082         final location that lands in the config file
10083
10084         * bus/config-loader-expat.c (bus_config_load): fix type of
10085         XML_Parser variable
10086
10087         * doc/TODO: remove TODO item for dbus_bus_get()
10088
10089         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10090
10091 2003-03-31  Havoc Pennington  <hp@pobox.com>
10092
10093         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10094         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10095         argument since they are always client side
10096
10097         * dbus/dbus-server.c (dbus_server_get_address): new function
10098
10099         * bus/main.c (main): take the configuration file as an argument.
10100
10101         * test/data/valid-config-files/debug-allow-all.conf: new file to
10102         use with dispatch.c tests for example
10103
10104         * bus/test-main.c (main): require test data dir
10105
10106         * bus/bus.c (bus_context_new): change this to take a
10107         configuration file name as argument
10108
10109         * doc/config-file.txt (Elements): add <servicedir>
10110
10111         * bus/system.conf, bus/session.conf: new files
10112
10113         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10114         well-known socket if none set
10115
10116         * configure.in: create system.conf and session.conf
10117
10118 2003-03-30  Havoc Pennington  <hp@pobox.com>
10119
10120         * bus/config-parser.c: hacking
10121
10122         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10123         to shut down, since it could cause weirdness with the DBusList
10124         lock
10125
10126         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10127         link-oriented stack routines
10128         (alloc_link): free the mempool if the first alloc from it fails
10129
10130         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10131
10132         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10133         from GLib
10134         (_dbus_string_skip_white): new
10135
10136         * doc/config-file.txt (Elements): add <includedir>
10137
10138 2003-03-28  Havoc Pennington  <hp@pobox.com>
10139
10140         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10141         (_dbus_string_copy_data): new functions
10142
10143 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10144
10145         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10146         * dbus/dbus-bus.h:
10147         Add dbus_bus_get.
10148
10149         * dbus/dbus-memory.c:
10150         Fix a doc comment.
10151
10152 2003-03-28  Havoc Pennington  <hp@pobox.com>
10153
10154         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10155         I think it may have just been superstition. Not sure.
10156
10157         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10158         failures that were not being handled.
10159
10160         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10161
10162         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10163         row that will fail on out-of-memory.
10164
10165         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10166         function for testing out-of-memory handling.
10167
10168         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10169         allocation functions, they do map exactly to the expat ones.
10170
10171 2003-03-27  Havoc Pennington  <hp@redhat.com>
10172
10173         * bus/config-loader-libxml.c (bus_config_load): add another error
10174         check
10175
10176 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10177
10178         * doc/TODO:
10179         Add note about automatic service activation.
10180
10181         * doc/dbus-specification.sgml:
10182         Rename the specification and clarify a few things.
10183
10184 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10185
10186         * Doxyfile.in:
10187         * dbus/dbus-address.c:
10188         * dbus/dbus-dict.c:
10189         * dbus/dbus-marshal.c:
10190         * dbus/dbus-server-debug-pipe.c:
10191         * dbus/dbus-transport-unix.c:
10192         Fix documentation warnings.
10193
10194 2003-03-26  Havoc Pennington  <hp@pobox.com>
10195
10196         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10197         after every test so it's quick and easy to see which leaked, and
10198         so we test multiple dbus_shutdown() calls
10199
10200         * configure.in: change configure.in XML stuff to also support
10201         expat
10202
10203         * config-loader-libxml.c: some hacking
10204
10205         * config-loader-expat.c: some hacking
10206
10207         * config-parser.c: some hacking, plus tests
10208
10209 2003-03-25  Havoc Pennington  <hp@redhat.com>
10210
10211         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10212
10213         * configure.in: add --with-xml option to specify XML library,
10214         right now only libxml is supported.
10215
10216         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10217         nonworking code between home and work, still just stubs
10218
10219 2003-03-24  Havoc Pennington  <hp@redhat.com>
10220
10221         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10222         file
10223
10224         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10225         NULL argument for "message" if the error is a well-known one,
10226         fill in a generic message in this case.
10227
10228         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10229         favor of DBusError
10230
10231         * bus/test.c (bus_test_flush_bus): add
10232
10233         * bus/policy.c (bus_policy_test): test code stub
10234
10235 2003-03-24  Havoc Pennington  <hp@pobox.com>
10236
10237         * bus/connection.c (bus_connections_setup_connection): set up
10238         the "can this user connect" function, but it always returns
10239         TRUE until we have a config file parser so we can have a config
10240         file that allows connections.
10241
10242 2003-03-23  Havoc Pennington  <hp@pobox.com>
10243
10244         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10245         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10246         the mutex, so we can check for proper memory management
10247         and OOM handling.
10248
10249         * dbus/dbus-dataslot.c: remove the mutex from
10250         DBusDataSlotAllocator and lock it manually when using it,
10251         to simplify fitting it into the global slots framework.
10252
10253         * dbus/dbus-threads.c (init_static_locks): rework how we're
10254         handling global locks so they are easily shut down.
10255
10256         * bus/policy.c (bus_policy_append_rule): fix
10257
10258         * bus/test-main.c (main): check for memleaks
10259
10260         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10261         test suite check for memleaks
10262
10263         * dbus/dbus-memory.c: add support in test mode for tracking
10264         number of outstanding blocks
10265
10266 2003-03-23  Havoc Pennington  <hp@pobox.com>
10267
10268         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10269         policies code
10270
10271         * dbus/dbus-hash.h: add ULONG hash keys
10272
10273         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10274         (_dbus_get_group_id): new function
10275
10276 2003-03-20  Havoc Pennington  <hp@redhat.com>
10277
10278         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10279         new function
10280         (dbus_connection_get_unix_user): new function
10281
10282 2003-03-20  Havoc Pennington  <hp@pobox.com>
10283
10284         * bus/connection.c (bus_connection_send_oom_error): assert that
10285         message has a sender
10286         (connection_execute_transaction): ditto
10287         (bus_connection_preallocate_oom_error): fix to set the sender, and
10288         set recipient to the destination service, not the bus driver
10289
10290         * bus/policy.c: hacking
10291
10292         * dbus/dbus-message.c (dbus_message_service_is): new function
10293         (dbus_message_sender_is): new
10294
10295 2003-03-19  Havoc Pennington  <hp@redhat.com>
10296
10297         * bus/policy.c: start sketching code for policy restrictions on
10298         what connections can do.
10299
10300 2003-03-18  Havoc Pennington  <hp@redhat.com>
10301
10302         * doc/TODO: some notes on high-level todo items. Little nitpick
10303         stuff is all in @todo, so no need to add it here.
10304
10305         * doc/config-file.txt: some notes on how config file might look
10306
10307 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10308
10309         * configure.in: 0.6
10310
10311         * NEWS: Update.
10312
10313 2003-03-17  Havoc Pennington  <hp@redhat.com>
10314
10315         * dbus/dbus-internals.h: add gcc attributes so that
10316         our printf-style functions warn on bad arguments to
10317         format
10318
10319         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10320         format bug
10321
10322         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10323         printf format bug
10324
10325 2003-03-17  Havoc Pennington  <hp@redhat.com>
10326
10327         * bus/test-main.c (main): make it print something as it runs
10328         so make check doesn't look stuck
10329
10330         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10331         from CVS, now obsolete
10332
10333 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10334
10335         * bus/dispatch.c: (bus_dispatch):
10336         Refetch the service name since it may have been reallocated
10337         when dbus_message_set_sender was called.
10338
10339         * dbus/dbus-sysdeps.c: (_dbus_accept):
10340         Add address and address length variables and use them to stop
10341         valgrind from complaining.
10342
10343 2003-03-17  Havoc Pennington  <hp@pobox.com>
10344
10345         All tests pass, no memleaks, no valgrind complaints.
10346
10347         * bus/test.c: refcount handler_slot
10348
10349         * bus/connection.c (bus_connections_new): refcount
10350         connection_data_slot
10351
10352         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10353         bytes so that auth scripts pass.
10354
10355         * bus/dispatch.c: init message_handler_slot so it gets allocated
10356         properly
10357
10358         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10359
10360         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10361         dealloc server_pipe_hash when no longer used for benefit of
10362         leak checking
10363
10364         * dbus/dbus-auth.c (process_command): memleak fix
10365
10366         * bus/dispatch.c (check_hello_message): memleak fix
10367
10368 2003-03-16  Havoc Pennington  <hp@pobox.com>
10369
10370         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10371
10372 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10373
10374         * bus/activation.c (bus_activation_activate_service): Append
10375         the pending activation entry to the list of pending activations.
10376
10377 2003-03-16  Havoc Pennington  <hp@pobox.com>
10378
10379         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10380         connections
10381
10382         * dbus/dbus-address.c (create_entry): fix OOM handling when
10383         failing to alloc entry->method
10384
10385 2003-03-16  Havoc Pennington  <hp@pobox.com>
10386
10387         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10388         the watch
10389
10390         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10391         add some missing dbus_set_result
10392
10393         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10394         alloc the DBusMessageHandler
10395
10396         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10397         the transport here, since we call this from the finalizer; it
10398         resulted in a double-finalize.
10399
10400         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10401         where we tried to use transport->connection that was NULL,
10402         happened when transport was disconnected early on due to OOM
10403
10404         * bus/*.c: adapt to handle OOM for watches/timeouts
10405
10406         * dbus/dbus-transport-unix.c: port to handle OOM during
10407         watch handling
10408
10409         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10410         reference to unused bytes instead of a copy
10411
10412         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10413         out of memory
10414
10415         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10416         FALSE on OOM
10417
10418         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10419         of memory
10420
10421 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10422
10423         * doc/dbus-specification.sgml:
10424         Document reply message for ActivateService.
10425
10426 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10427
10428         * bus/activation.c: (bus_pending_activation_entry_free),
10429         (bus_pending_activation_free), (bus_activation_new),
10430         (bus_activation_unref), (bus_activation_service_created),
10431         (bus_activation_activate_service):
10432         * bus/activation.h:
10433         * bus/bus.c: (bus_context_new):
10434         * bus/desktop-file.c: (new_section):
10435         * bus/driver.c: (bus_driver_send_service_deleted),
10436         (bus_driver_handle_activate_service):
10437         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10438         * bus/services.h:
10439         * dbus/dbus-connection.c:
10440         (dbus_connection_send_with_reply_and_block):
10441         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10442         * dbus/dbus-protocol.h:
10443         Make activation work better. Now pending activations will be queued
10444         and the daemon won't try to activate services that are already registered.
10445
10446 2003-03-16  Havoc Pennington  <hp@pobox.com>
10447
10448         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10449         connection data
10450
10451         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10452         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10453
10454 2003-03-16  Havoc Pennington  <hp@pobox.com>
10455
10456         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10457         this. always run the test suite before commit...
10458
10459         * bus/*: adapt to DBusConnection API changes
10460
10461         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10462         requires renaming stuff to avoid dbus_connection_dispatch name
10463         conflict.
10464
10465         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10466         function
10467
10468         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10469         separate from _dbus_message_loader_return_buffer()
10470
10471         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10472         this, because it's now always broken to use; the number of
10473         messages in queue vs. the number still buffered by the message
10474         loader is undefined/meaningless. Should use
10475         dbus_connection_get_dispatch_state().
10476         (dbus_connection_dispatch): rename from
10477         dbus_connection_dispatch_message
10478
10479 2003-03-16  Havoc Pennington  <hp@pobox.com>
10480
10481         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10482         implementation
10483
10484 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10485
10486         * dbus/dbus-connection.c:
10487         (dbus_connection_send_with_reply_and_block):
10488         Decrease connection->n_incoming when removing an entry
10489         from the list.
10490         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10491         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10492         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10493         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10494         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10495         (dbus_dict_get_byte_array):
10496         Handle NULL arrays and strings. Also add support for byte arrays.
10497
10498         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10499         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10500         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10501         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10502         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10503         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10504         * dbus/dbus-marshal.h:
10505         Add support for marshalling and demarshalling empty arrays and strings.
10506
10507         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10508         (dbus_message_append_string_array),
10509         (dbus_message_iter_get_boolean),
10510         (dbus_message_iter_get_boolean_array),
10511         (dbus_message_iter_get_int32_array),
10512         (dbus_message_iter_get_uint32_array),
10513         (dbus_message_iter_get_double_array),
10514         (dbus_message_iter_get_byte_array),
10515         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10516         (check_message_handling):
10517         Add support for getting empty arrays and dicts.
10518
10519         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10520         Don't do any validation at all for now, that's better than just checking
10521         for ASCII.
10522
10523         * test/data/valid-messages/emptiness.message:
10524         New test message with lots of empty arrays.
10525
10526 2003-03-16  Havoc Pennington  <hp@pobox.com>
10527
10528         * dbus/dbus-connection.c
10529         (_dbus_connection_queue_received_message_link): new function that
10530         can't fail due to OOM
10531
10532         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10533         new function pops a message together with a list link
10534         containing it.
10535
10536         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10537         message queuing functions to avoid needing to alloc memory
10538
10539 2003-03-16  Havoc Pennington  <hp@pobox.com>
10540
10541         Oops - test code was only testing failure of around 30 of the
10542         mallocs in the test path, but it turns out there are 500+
10543         mallocs. I believe this was due to misguided linking setup such
10544         that there was one copy of dbus_malloc etc. in the daemon and one
10545         in the shared lib, and only daemon mallocs were tested. In any
10546         case, the test case now tests all 500+ mallocs, and doesn't pass
10547         yet, though there are lots of fixes in this patch.
10548
10549         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10550         this so that it doesn't need to allocate memory, since it
10551         has no way of indicating failure due to OOM (and would be
10552         annoying if it did).
10553
10554         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10555
10556         * bus/Makefile.am: rearrange to create two self-contained
10557         libraries, to avoid having libraries with overlapping symbols.
10558         that was resulting in weirdness, e.g. I'm pretty sure there
10559         were two copies of global static variables.
10560
10561         * dbus/dbus-internals.c: move the malloc debug stuff to
10562         dbus-memory.c
10563
10564         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10565         empty.
10566
10567         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10568
10569         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10570         on failure.
10571
10572         * bus/dispatch.c (bus_dispatch_add_connection): free
10573         message_handler_slot when no longer using it, so
10574         memory leak checkers are happy for the test suite.
10575
10576         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10577
10578         * bus/bus.c (new_connection_callback): disconnect in here if
10579         bus_connections_setup_connection fails.
10580
10581         * bus/connection.c (bus_connections_unref): fix to free the
10582         connections
10583         (bus_connections_setup_connection): if this fails, don't
10584         disconnect the connection, just be sure there are no side
10585         effects.
10586
10587         * dbus/dbus-string.c (undo_alignment): unbreak this
10588
10589         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10590         leaking
10591         (_dbus_auth_new): fix the order in which we free strings
10592         on OOM failure
10593
10594         * bus/connection.c (bus_connection_disconnected): fix to
10595         not send ServiceDeleted multiple times in case of memory
10596         allocation failure
10597
10598         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10599         get the base service name
10600         (dbus_bus_register_client): don't return base service name,
10601         instead store it on the DBusConnection and have an accessor
10602         function for it.
10603         (dbus_bus_register_client): rename dbus_bus_register()
10604
10605         * bus/dispatch.c (check_hello_message): verify that other
10606         connections on the bus also got the correct results, not
10607         just the one sending hello
10608
10609 2003-03-15  Havoc Pennington  <hp@pobox.com>
10610
10611         Make it pass the Hello handling test including all OOM codepaths.
10612         Now to do other messages...
10613
10614         * bus/services.c (bus_service_remove_owner): fix crash when
10615         removing owner from an empty list of owners
10616         (bus_registry_ensure): don't leave service in the list of
10617         a connection's owned services if we fail to put the service
10618         in the hash table.
10619
10620         * bus/connection.c (bus_connection_preallocate_oom_error): set
10621         error flag on the OOM error.
10622
10623         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10624         handle _dbus_transport_set_connection failure
10625
10626         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10627         to create watches up front and simply enable/disable them as
10628         needed.
10629         (unix_connection_set): this can now fail on OOM
10630
10631         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10632         of enabling/disabling a watch or timeout.
10633
10634         * bus/loop.c (bus_loop_iterate): don't touch disabled
10635         watches/timeouts
10636
10637         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10638
10639 2003-03-15  Havoc Pennington  <hp@pobox.com>
10640
10641         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10642         write useful test code, after all that futzing around ;-)
10643
10644         Test does not yet pass because we can't handle OOM in
10645         _dbus_transport_messages_pending (basically,
10646         dbus_connection_preallocate_send() does not prealloc the write
10647         watch). To fix this, I think we need to add new stuff to
10648         set_watch_functions, namely a SetEnabled function so we can alloc
10649         the watch earlier, then enable it later.
10650
10651         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10652         dbus-memory.c to the convenience lib
10653
10654         * bus/test.c: rename some static functions to keep them clearly
10655         distinct from stuff in connection.c. Handle client disconnection.
10656
10657 2003-03-14  Havoc Pennington  <hp@pobox.com>
10658
10659         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10660         transport, tests more of the real codepath. Set up clients
10661         with bus_setup_debug_client.
10662
10663         * bus/test.c (bus_setup_debug_client): function to set up debug
10664         "clients" on the main loop
10665
10666         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10667         support
10668
10669         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10670         server type
10671
10672         * dbus/dbus-server-debug.c: support a debug server based on pipes
10673
10674         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10675         (_dbus_close): new function
10676
10677         * configure.in: check for socketpair
10678
10679 2003-03-14  Havoc Pennington  <hp@redhat.com>
10680
10681         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10682         cheesy hack
10683
10684         * dbus/dbus-transport-debug.c: rework this a good bit to be
10685         less complicated. hopefully still works.
10686
10687         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10688         manually
10689
10690         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10691         after running it
10692
10693         * dbus/dbus-message.c (dbus_message_copy): rename from
10694         dbus_message_new_from_message, fix it up to copy
10695         all the message fields, add test case
10696
10697         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10698         not quite passing yet
10699
10700 2003-03-14  Havoc Pennington  <hp@pobox.com>
10701
10702         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10703         until no work remains" in test code. (the large diff here
10704         is just code movement, no actual changes)
10705
10706         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10707         1, no point waiting around for test code.
10708         (_dbus_server_debug_accept_transport): unref the timeout
10709         after adding it (right?)
10710
10711         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10712
10713 2003-03-13  Havoc Pennington  <hp@redhat.com>
10714
10715         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10716         out of memory
10717
10718         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10719         of memory
10720
10721         * dbus/dbus-connection.h: Make AddWatchFunction and
10722         AddTimeoutFunction return a bool so they can fail on out-of-memory
10723
10724         * bus/bus.c (bus_context_new): set up timeout handlers
10725
10726         * bus/connection.c (bus_connections_setup_connection): set up
10727         timeout handlers
10728
10729         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10730         can fail
10731
10732         * bus/bus.c (bus_context_new): adapt to changes
10733
10734         * bus/connection.c: adapt to changes
10735
10736         * test/watch.c: adapt to DBusWatch changes
10737
10738         * bus/dispatch.c (bus_dispatch_test): started adding this but
10739         didn't finish
10740
10741 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10742
10743         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10744
10745 2003-03-13  Havoc Pennington  <hp@pobox.com>
10746
10747         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10748         set up a test framework as for the library
10749
10750 2003-03-12  Havoc Pennington  <hp@pobox.com>
10751
10752         Throughout: purge global variables, introduce BusActivation,
10753         BusConnections, BusRegistry, etc. objects instead.
10754
10755         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10756         message bus object
10757
10758         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10759         going to redo this a bit differently I think
10760
10761 2003-03-12  Havoc Pennington  <hp@redhat.com>
10762
10763         Mega-patch that gets the message bus daemon initially handling
10764         out-of-memory. Work still needed. Also lots of random
10765         moving stuff to DBusError instead of ResultCode.
10766
10767         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10768
10769         * dbus/dbus-connection.c
10770         (dbus_connection_send_with_reply_and_block): use DBusError
10771
10772         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10773         DBusResultCode
10774
10775         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10776         code here, as the only failure possible is OOM.
10777
10778         * bus/connection.c (bus_connection_disconnect):
10779         rename bus_connection_disconnected as it's a notification only
10780
10781         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10782         "name" on get_args failure, should be done by get_args;
10783         don't disconnect client for bad args, just return an error.
10784         (bus_driver_handle_service_exists): ditto
10785
10786         * bus/services.c (bus_services_list): NULL-terminate returned array
10787
10788         * bus/driver.c (bus_driver_send_service_lost)
10789         (bus_driver_send_service_acquired): send messages from driver to a
10790         specific client to the client's unique name, not to the broadcast
10791         service.
10792
10793         * dbus/dbus-message.c (decode_header_data): reject messages that
10794         contain no name field
10795         (_dbus_message_get_client_serial): rename to
10796         dbus_message_get_serial and make public
10797         (_dbus_message_set_serial): rename from set_client_serial
10798         (_dbus_message_set_reply_serial): make public
10799         (_dbus_message_get_reply_serial): make public
10800
10801         * bus/connection.c (bus_connection_foreach): allow stopping
10802         iteration by returning FALSE from foreach function.
10803
10804         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10805         (dbus_connection_free_preallocated_send)
10806         (dbus_connection_preallocate_send): new API for sending a message
10807         without possibility of malloc failure.
10808         (dbus_connection_send_message): rename to just
10809         dbus_connection_send (and same for whole function family)
10810
10811         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10812
10813         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10814
10815         * bus/activation.c: handle/return errors
10816
10817         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10818
10819         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10820         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10821         (_dbus_result_from_errno): move to this file
10822
10823 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10824
10825         * dbus/dbus-marshal.c:
10826         (_dbus_marshal_set_string):
10827         Take a length argument so we can marshal the correct string
10828         length.
10829
10830         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10831         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10832         (_dbus_marshal_test):
10833         * dbus/dbus-marshal.h:
10834         Add support for marshalling and demarshalling dicts.
10835
10836         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10837         Add support for TYPE DICT.
10838
10839         * dbus/dbus-message.c: (set_string_field):
10840         Adjust header padding.
10841
10842         (dbus_message_append_args_valist), (dbus_message_append_dict),
10843         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10844         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10845         (check_message_handling), (check_have_valid_message):
10846         * dbus/dbus-message.h:
10847         Add functions for setting and getting dicts.
10848
10849         * dbus/dbus-protocol.h:
10850         Add DBUS_TYPE_DICT.
10851
10852         * dbus/dbus.h:
10853         Add dbus-dict.h
10854
10855         * doc/dbus-specification.sgml:
10856         Add information about how dicts are marshalled.
10857
10858         * test/data/invalid-messages/dict-with-nil-value.message:
10859         * test/data/invalid-messages/too-short-dict.message:
10860         * test/data/valid-messages/dict-simple.message:
10861         * test/data/valid-messages/dict.message:
10862         Add sample messages containing dicts.
10863
10864 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
10865
10866         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10867
10868 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10869
10870         * dbus/Makefile.am:
10871         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10872         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10873         (dbus_dict_set_int32), (dbus_dict_set_uint32),
10874         (dbus_dict_set_double), (dbus_dict_set_string),
10875         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10876         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10877         (dbus_dict_set_string_array), (_dbus_dict_test):
10878         * dbus/dbus-dict.h:
10879         Fix according to comments from Havoc.
10880
10881 2003-03-06  Michael Meeks  <michael@server.home>
10882
10883         * configure.in: if we don't have kde-config, disable have_qt.
10884
10885 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10886
10887         * dbus/Makefile.am:
10888         Add dbus-dict.[ch]
10889
10890         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10891         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10892         (dbus_dict_remove), (dbus_dict_get_value_type),
10893         (dbus_dict_get_keys), (dbus_dict_put_boolean),
10894         (dbus_dict_put_int32), (dbus_dict_put_uint32),
10895         (dbus_dict_put_double), (dbus_dict_put_string),
10896         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10897         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10898         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10899         (dbus_dict_get_int32), (dbus_dict_get_uint32),
10900         (dbus_dict_get_double), (dbus_dict_get_string),
10901         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10902         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10903         (dbus_dict_get_string_array), (_dbus_dict_test):
10904         * dbus/dbus-dict.h:
10905         Add DBusDict implementation
10906
10907         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10908         * dbus/dbus-test.h:
10909         Add _dbus_dict_test
10910
10911 2003-03-04  Havoc Pennington  <hp@pobox.com>
10912
10913         * test/data/auth/*: adapt to changes
10914
10915         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10916         USERID_BASE64 and change USERNAME_BASE64 to put in username not
10917         userid
10918
10919         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10920         more stuff from being in a context name, to make the protocol
10921         simpler to deal with
10922
10923         * dbus/dbus-errors.c (dbus_error_has_name): new function
10924         (dbus_error_is_set): new function
10925
10926         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10927         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10928
10929         * dbus/dbus-connection.c (dbus_connection_flush): also read
10930         messages during a flush operation
10931
10932         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10933
10934 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10935
10936         * configure.in: Check for gethostbyname on Solaris.
10937
10938         * dbus/dbus-transport.c: (_dbus_transport_open):
10939         Remove duplicate "tcp" entry.
10940
10941         * doc/dbus-specification.sgml:
10942         Clarify some things.
10943
10944 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10945
10946         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10947         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10948         (_dbus_keyring_test):
10949         * dbus/dbus-md5.c: (_dbus_md5_compute):
10950         * dbus/dbus-sha.c: (_dbus_sha_compute):
10951         Plug memory leaks.
10952
10953 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10954
10955         * README: Add some things.
10956
10957 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
10958
10959         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10960         after case DBUS_TYPE_BOOELAN.
10961
10962 2003-03-02  Havoc Pennington  <hp@pobox.com>
10963
10964         * test/break-loader.c (randomly_set_extreme_ints): add test that
10965         sets really huge and small integers
10966
10967         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10968         that length of boolean array fits in the string, and that
10969         string has room for boolean value in single-bool case.
10970
10971         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10972         optional value to "ALIGN" command which is what to fill the
10973         alignment with.
10974
10975         * test/data/valid-messages/no-padding.message: add regression
10976         test for the message padding problem
10977
10978 2003-03-02  Havoc Pennington  <hp@pobox.com>
10979
10980         * dbus/dbus-message.c (decode_header_data): fix to always init
10981         message_padding, from Benjamin Dauvergne
10982
10983 2003-03-02  Havoc Pennington  <hp@pobox.com>
10984
10985         * configure.in: 0.5
10986
10987         * NEWS: Update.
10988
10989 2003-03-01  Joe Shaw  <joe@assbarn.com>
10990
10991         * configure.in: Check for "struct cmsgcred" and try to access its
10992         members for BSD-like unices.
10993
10994         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10995         _dbus_read_credentials_unix_socket().
10996         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10997         read() for reading the credential byte off the unix socket.  Use
10998         struct cmsgcred on systems that support it.
10999
11000 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11001
11002         * glib/Makefile.am:
11003         * configure.in:
11004         Make gthreads-2.0 dependency optional. Don't build thread test if
11005         its not found.
11006
11007 2003-02-27  Havoc Pennington  <hp@pobox.com>
11008
11009         * dbus/dbus-connection.c
11010         (dbus_connection_send_message_with_reply_and_block): fix doh!
11011         doh! doh! bug that resulted in never removing a reply from the
11012         queue, no wonder we called get_reply_serial so much ;-)
11013
11014         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11015         and client serial instead of demarshaling them every time
11016
11017 2003-02-27  Havoc Pennington  <hp@pobox.com>
11018
11019         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11020         more inlined, using dbus-string-private.h, speeds things up
11021         substantially
11022
11023         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11024         when freeing the string
11025         (_dbus_string_steal_data): fix for align offset
11026         (undo_alignment): new function
11027
11028 2003-02-26  Havoc Pennington  <hp@redhat.com>
11029
11030         All kinds of audit fixes from Owen, plus initial attempt to
11031         handle unaligned memory returned from malloc.
11032
11033         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11034         leave room for align_offset and nul byte
11035         (fixup_alignment): function to track an align_offset and
11036         ensure real->str is aligned
11037         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11038         to allow a nul byte plus align offset
11039         (_dbus_string_lock): fix overflow issue
11040         (_dbus_string_init_const_len): add assertions on sanity of len,
11041         assign allocated to be ALLOCATION_PADDING larger than len
11042         (set_length): fixup the overflow handling
11043         (_dbus_string_get_data_len): fix overflow in assertion
11044         (open_gap): detect overflow in size of gap to be opened
11045         (_dbus_string_lengthen): add overflow check
11046         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11047         (_dbus_string_append): add overflow check
11048         (_dbus_string_append_unichar): overflow
11049         (_dbus_string_delete): fix overflow in assertion
11050         (_dbus_string_copy_len): overflow in assertion
11051         (_dbus_string_replace_len): overflows in assertions
11052         (_dbus_string_find): change to implement in terms of
11053         _dbus_string_find_to
11054         (_dbus_string_find_to): assorted fixage
11055         (_dbus_string_equal_c_str): assert c_str != NULL,
11056         fix logic so the function works
11057         (_dbus_string_ends_with_c_str): fix overflow thingy
11058         (_dbus_string_base64_encode): overflow fix
11059         (_dbus_string_validate_ascii): overflow
11060         (_dbus_string_validate_nul): overflow
11061
11062 2003-02-26  Havoc Pennington  <hp@redhat.com>
11063
11064         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11065
11066 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11067
11068         * configure.in:
11069         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11070
11071         * dbus/dbus-connection.c:
11072         * dbus/dbus-connection.h:
11073         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11074         Add dbus_connection_set_wakeup_main_function and use it when queueing
11075         incoming and outgoing messages.
11076
11077
11078         * dbus/dbus-dataslot.c:
11079         Threadsafe usage of DBusDataSlotAllocator
11080
11081         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11082         dbus_new can fail.
11083
11084         * dbus/dbus-server-unix.c:
11085         Add todo comment
11086
11087         * glib/dbus-gmain.c:
11088         Implement the new wakeup functions for glib.
11089
11090         * glib/Makefile.am:
11091         * glib/test-thread-client.c:
11092         * glib/test-thread-server.c:
11093         * glib/test-thread.h:
11094         Initial cut at some thread test code. Not really done yet.
11095
11096 2003-02-26  Havoc Pennington  <hp@pobox.com>
11097
11098         * dbus/dbus-connection.c
11099         (dbus_connection_send_message_with_reply_and_block): fix crash
11100         where we ref'd the outgoing message instead of the returned reply
11101
11102         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11103         at the end of this function, so if we didn't need to read for
11104         authentication, we reinstall it for receiving messages
11105
11106         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11107         a NULL sender for peer-to-peer case
11108
11109         * dbus/dbus-transport-unix.c (check_read_watch): handle
11110         !authenticated case correctly
11111
11112         * glib/dbus-gmain.c: add support for DBusServer
11113
11114         * dbus/dbus-server.c: add data slot support
11115
11116         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11117         return values and handle errors
11118
11119         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11120         DBusConnection
11121
11122         * Doxyfile.in (INPUT): add glib subdir
11123
11124         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11125         setup_with_g_main instead of hookup_with_g_main; write docs
11126
11127 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11128
11129         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11130         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11131         * dbus/dbus-message.c: (dbus_message_append_boolean),
11132         (dbus_message_append_boolean_array),
11133         (dbus_message_get_args_valist), (_dbus_message_test):
11134         * dbus/dbus-message.h:
11135         * doc/dbus-specification.sgml:
11136         Various fixes as pointed out by Havoc.
11137
11138         * test/data/invalid-messages/bad-boolean-array.message:
11139         * test/data/invalid-messages/bad-boolean.message:
11140         Add invalid boolean value test cases.
11141
11142 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11143
11144         * dbus/dbus-internals.c: (_dbus_type_to_string):
11145         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11146         (_dbus_marshal_validate_arg):
11147         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11148         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11149         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11150         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11151         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11152         (dbus_message_iter_get_double),
11153         (dbus_message_iter_get_boolean_array), (message_iter_test):
11154         * dbus/dbus-message.h:
11155         * dbus/dbus-protocol.h:
11156         * doc/dbus-specification.sgml:
11157         * test/data/valid-messages/lots-of-arguments.message:
11158         Add support for boolean and boolean array types.
11159
11160 2003-02-23  Havoc Pennington  <hp@pobox.com>
11161
11162         * dbus/dbus-keyring.c: finish most of this implementation and
11163         simple unit test
11164
11165         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11166         these barf if the error isn't cleared to NULL
11167
11168         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11169         (_dbus_create_directory): new function
11170
11171         * dbus/dbus-errors.c (dbus_set_error): fix warning
11172
11173         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11174         (_dbus_string_hex_decode): new function
11175         (test_hex_roundtrip): test code
11176
11177         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11178
11179         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11180
11181         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11182         the save-to-temp/rename trick to atomically write the new file
11183         (_dbus_string_parse_uint): new function
11184
11185 2003-02-22  Havoc Pennington  <hp@pobox.com>
11186
11187         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11188
11189 2003-02-22  Havoc Pennington  <hp@pobox.com>
11190
11191         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11192         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11193
11194         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11195
11196         * dbus/test/data/sha-1: add US government test suite for SHA-1
11197
11198 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11199
11200         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11201         Make string arrays NULL-terminated.
11202
11203         * dbus/dbus-memory.c: (dbus_free_string_array):
11204         * dbus/dbus-memory.h:
11205         New function for freeing NULL-terminated string arrays.
11206
11207         * dbus/dbus-message-builder.c: (append_quoted_string),
11208         (_dbus_message_data_load):
11209         Add support for array types.
11210
11211         * dbus/dbus-message.c: (check_message_handling):
11212         Add more types as test cases.
11213
11214         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11215         (_dbus_string_parse_double):
11216         Add the start offset to the end offset.
11217
11218         * test/data/valid-messages/lots-of-arguments.message:
11219         New test message with lots of arguments.
11220
11221 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11222
11223         * dbus/dbus-message.c: (dbus_message_append_nil),
11224         (dbus_message_append_int32), (dbus_message_append_uint32),
11225         (dbus_message_append_double), (dbus_message_append_string),
11226         (dbus_message_append_int32_array),
11227         (dbus_message_append_uint32_array),
11228         (dbus_message_append_double_array),
11229         (dbus_message_append_byte_array),
11230         (dbus_message_append_string_array):
11231         Fix all out-of-memory handling in these functions.
11232
11233 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11234
11235         * dbus/dbus-message.c: (dbus_message_append_nil):
11236         Fix a silly.
11237
11238 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11239
11240         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11241         (dbus_message_append_nil), (dbus_message_append_int32_array),
11242         (dbus_message_append_uint32_array),
11243         (dbus_message_append_double_array),
11244         (dbus_message_append_byte_array),
11245         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11246         (dbus_message_iter_get_int32_array),
11247         (dbus_message_iter_get_uint32_array),
11248         (dbus_message_iter_get_double_array),
11249         (dbus_message_iter_get_byte_array),
11250         (dbus_message_iter_get_string_array):
11251
11252         * dbus/dbus-message.h:
11253         Add functions for appending and getting arrays.
11254
11255 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11256
11257         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11258         element size at least 8 bytes, fixes mempool tests on
11259         64-bit machines.
11260
11261 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11262
11263         * dbus/dbus-transport-unix.c (unix_do_iteration):
11264         Unlock the connection mutex during a blocking select call.
11265         Add todo about how we need a way to wake up the select.
11266
11267         * dbus/dbus-connection-internal.h:
11268         * dbus/dbus-connection.c:
11269         Add _dbus_connection_lock and _dbus_connection_unlock.
11270
11271 2003-02-19  Havoc Pennington  <hp@pobox.com>
11272
11273         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11274         Doxyfile.in, not Doxyfile
11275
11276         * dbus/dbus-keyring.c: do some hacking on this
11277
11278         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11279
11280         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11281         dbus_error_init
11282         (dbus_set_error): remove dbus_error_init, check for message ==
11283         NULL *before* we sprintf into it, and add @todo about including
11284         system headers in this file
11285
11286         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11287
11288         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11289
11290         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11291         get various bits of user information based on either username
11292         or user ID
11293         (_dbus_homedir_from_username): new function
11294
11295 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11296
11297         * configure.in:
11298         Add check for nonposix getpwnam_r
11299
11300         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11301         Align the pool element size to a sizeof (void *) boundary.
11302
11303         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11304         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11305         General Solaris fixes.
11306
11307         * test/data/valid-messages/simplest-manual.message:
11308         Explicitly state that we want little-endian packing.
11309
11310 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11311
11312         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11313
11314         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11315         Added to create a transport connecting using a tcp/ip socket.
11316
11317         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11318         to a tcp socket at given host and port.
11319         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11320         hostname and port.
11321
11322         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11323
11324         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11325         Added to create a server listening on a TCP/IP socket.
11326
11327 2003-02-19  Havoc Pennington  <hp@pobox.com>
11328
11329         Throughout: mop up all the Doxygen warnings and undocumented
11330         stuff.
11331
11332         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11333         to search any paths.
11334
11335         * dbus/dbus-threads.c: move global mutex initializers to
11336         dbus-internals.h, multiple prototypes was confusing doxygen
11337         besides being kind of ugly
11338
11339         * Doxyfile (PREDEFINED): have Doxygen define
11340         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11341         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11342         (do not abuse the feature! it's for stuff like the autogenerated
11343         macros in dbus-md5.c, not just for things you don't feel like
11344         documenting...)
11345
11346 2003-02-18  Havoc Pennington  <hp@pobox.com>
11347
11348         * dbus/dbus-string.c (_dbus_string_zero): new function
11349
11350         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11351         wrap it in some dbus-friendly API
11352
11353         * dbus/dbus-types.h: add 16-bit types
11354
11355 2003-02-18  Joe Shaw  <joe@assbarn.com>
11356
11357         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11358         credentials from our currently running process.
11359         (get_word): Fix a buglet where we were copying the entire length
11360         instead of relative to our position.
11361
11362         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11363         keys on the stack... it's 640k of data.
11364
11365         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11366         read the credentials byte off the socket, even if we don't have
11367         SO_PEERCRED.
11368         (_dbus_poll): Implement poll() using select() for systems which
11369         don't have it.
11370
11371         * glib/test-dbus-glib.c (main): Print out an error if no
11372         parameters are given.
11373
11374         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11375         can fallback to a secondary auth mechanism if the first fails.
11376
11377 2003-02-18  Havoc Pennington  <hp@pobox.com>
11378
11379         * AUTHORS: add Alex
11380
11381 2003-02-17  Havoc Pennington  <hp@pobox.com>
11382
11383         * doc/dbus-specification.sgml: lots of cosmetic
11384         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11385         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11386         s/server/bus/ (except in authentication section). Add a section
11387         "Message Bus Message Routing"
11388
11389 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11390
11391         Release 0.4
11392
11393         * NEWS: Update
11394
11395 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11396
11397         * doc/dbus-specification.sgml:
11398         Specification updates.
11399
11400 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11401
11402         * bus/activation.c: (bus_activation_init), (child_setup),
11403         (bus_activation_activate_service):
11404         * bus/activation.h:
11405         * bus/main.c: (main):
11406         Set DBUS_ADDRESS environment variable.
11407
11408         * dbus/dbus-errors.c: (dbus_set_error):
11409         Don't use va_copy since that's a C99 feature.
11410
11411         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11412         (_dbus_spawn_async):
11413         * dbus/dbus-sysdeps.h:
11414         Add child_setup_func to _dbus_spawn_async.
11415
11416         * doc/dbus-specification.sgml:
11417         Update specification.
11418
11419         * test/spawn-test.c: (setup_func), (main):
11420         Fix test.
11421
11422 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11423
11424         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11425         Added todo.
11426
11427 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11428
11429         * doc/.cvsignore:
11430         * doc/Makefile.am:
11431         * doc/dbus-test-plan.sgml:
11432         Add test plan document.
11433
11434         * test/Makefile.am:
11435         Fix distcheck.
11436
11437 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11438
11439         * dbus/dbus-message.c: (decode_header_data),
11440         (_dbus_message_loader_return_buffer):
11441         Set the header padding amount when loading a message.
11442
11443 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11444
11445         * bus/dispatch.c: (send_one_message):
11446         Only send broadcast messages to registered connections.
11447
11448         * dbus/dbus-message.c: (dbus_message_name_is):
11449         * dbus/dbus-message.h:
11450         New convenience function.
11451
11452         * dbus/dbus-transport-debug.c: (do_reading):
11453         Only dispatch one message per run.
11454
11455         * test/Makefile.am:
11456         * test/bus-test.c: (new_connection_callback), (die),
11457         (test_hello_client1_handler), (test_hello_client2_handler),
11458         (test_hello_replies), (main):
11459
11460         * test/bus-test-loop.[ch]:
11461         Add these.
11462
11463 2003-02-16  Havoc Pennington  <hp@pobox.com>
11464
11465         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11466         backward conditional
11467
11468 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11469
11470         * dbus/dbus-connection.c:
11471         Implement sent_message_with_reply. (with_reply_and block is still
11472         busted).
11473         Made dispatch_message not lose message if OOM.
11474
11475         * dbus/dbus-errors.h:
11476         Add NoReply error (for reply timeouts).
11477
11478 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11479
11480         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11481         Actually free keys and values when destroying hashtable.
11482
11483 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11484
11485         * dbus/dbus-auth.c: (client_try_next_mechanism):
11486         Plug a leak.
11487
11488         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11489         Return TRUE if there's no thread implementation around.
11490
11491         * glib/dbus-gmain.c: (free_source),
11492         (dbus_connection_hookup_with_g_main):
11493         Make sure to remove the GSource when the connection is finalized.
11494
11495 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11496
11497         * bus/dispatch.c: (bus_dispatch_message_handler):
11498         * dbus/dbus-errors.h:
11499         Return an error if someone tries to send a message to a service
11500         that doesn't exist.
11501
11502 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11503
11504         * bus/activation.c: (load_directory), (bus_activation_init),
11505         (bus_activation_activate_service):
11506         * bus/activation.h:
11507         * bus/driver.c:
11508         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11509         More work on the activation handling.
11510
11511         * dbus/dbus-errors.h:
11512         Add some error messages
11513
11514         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11515         * dbus/dbus-message.h:
11516         New function that creates an error message.
11517
11518         * dbus/dbus-protocol.h:
11519         Add ACTIVATE_SERVER message.
11520
11521         * dbus/dbus-server-unix.c: (unix_handle_watch),
11522         (_dbus_server_new_for_domain_socket):
11523         Call _dbus_fd_set_close_on_exec.
11524
11525         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11526         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11527         (_dbus_fd_set_close_on_exec):
11528         * dbus/dbus-sysdeps.h:
11529         Add _dbus_fd_set_close_on exec function. Also add function that checks
11530         that all open fds are set to close-on-exec and warns otherwise.
11531
11532         * dbus/dbus-transport-unix.c:
11533         (_dbus_transport_new_for_domain_socket):
11534         Call _dbus_fd_set_close_on_exec.
11535
11536 2003-02-16  Havoc Pennington  <hp@pobox.com>
11537
11538         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11539         allow people to avoid setting SIGPIPE to SIG_IGN
11540         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11541         we've been asked not to
11542
11543 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11544
11545         * dbus/dbus-list.c: (_dbus_list_append_link),
11546         (_dbus_list_prepend_link):
11547         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11548         (dbus_realloc):
11549         Warning fixes.
11550
11551 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11552
11553         * bus/Makefile.am:
11554         * bus/activation.c: (bus_activation_entry_free),
11555         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11556         * bus/activation.h:
11557         * bus/main.c: (main):
11558         Add simple activation support, doesn't work yet though.
11559
11560 2003-02-15   Zack Rusin  <zack@kde.org>
11561
11562         * qt/dbus-qthread.cpp:  small casting fix
11563
11564 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11565
11566         * dbus/dbus-errors.c: (dbus_set_error):
11567         * dbus/dbus-errors.h:
11568         Add a few errors and make dbus_set_error void.
11569
11570         * dbus/dbus-sysdeps.c:
11571         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11572         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11573         * dbus/dbus-sysdeps.h:
11574         Add _dbus_spawn_async.
11575
11576         * test/spawn-test.c: (main):
11577         Test for _dbus_spawn_async.
11578
11579 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11580
11581         * dbus/dbus-internals.h:
11582         Fix build without tests.
11583
11584         * dbus/dbus-list.c: (alloc_link):
11585         Fix a segfault when a malloc fails.
11586
11587         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11588         (dbus_malloc0), (dbus_realloc):
11589         Add support for malloc debugging.
11590
11591 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11592
11593         * dbus/dbus-threads.c:
11594         * dbus/dbus-threads.h:
11595         Add condvars. Remove static mutext from API.
11596         Implement static mutexes by initializing them from threads_init.
11597
11598         * glib/dbus-gthread.c:
11599         * qt/dbus-qthread.cpp:
11600         Update with the thread api changes.
11601
11602
11603         * dbus/dbus-list.c:
11604         * dbus/dbus-list.h:
11605         Turn StaticMutex into normal mutex + init function.
11606         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11607         _dbus_list_append_link, _dbus_list_prepend_link
11608
11609
11610         * dbus/dbus-sysdeps.c:
11611         * dbus/dbus-sysdeps.h:
11612         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11613         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11614
11615         * dbus/dbus-protocol.h:
11616         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11617
11618         * dbus/dbus-message.c:
11619         Make ref/unref atomic.
11620         Fix some docs.
11621
11622         * dbus/dbus-connection-internal.h:
11623         * dbus/dbus-connection.c:
11624         * dbus/dbus-connection.h:
11625         Make threadsafe.
11626         Change _peek to _borrow,_return & _steal_borrowed.
11627         Change disconnect callback to event.
11628         Make dbus_connection_dispatch_messages reentrant.
11629
11630         * dbus/dbus-transport.c:
11631         Don't ref the connection on calls to the transport
11632         implementation.
11633
11634         * dbus/dbus-message-handler.c:
11635         Make threadsafe.
11636
11637         * glib/dbus-gmain.c:
11638         Don't use peek_message anymore
11639
11640         * test/Makefile.am:
11641         * test/debug-thread.c:
11642         * test/debug-thread.h:
11643         Simple thread implementation that asserts() on deadlocks in
11644         single-threaded code.
11645
11646         * test/bus-test.c:
11647         (main) Call debug_threads_init.
11648
11649         * test/watch.c:
11650         Use disconnect message instead of disconnect callback.
11651
11652         * bus/connection.c:
11653         * bus/connection.h:
11654         Don't call dbus_connection_set_disconnect_function. Instead export
11655         bus_connection_disconnect.
11656
11657         * bus/dispatch.c:
11658         Call bus_connection_disconnect when we get a disconnected message.
11659
11660 2003-02-15  Havoc Pennington  <hp@pobox.com>
11661
11662         * dbus/dbus-message.c (dbus_message_new): fool around with the
11663         docs
11664
11665 2003-02-14  Havoc Pennington  <hp@pobox.com>
11666
11667         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11668
11669         * dbus/dbus-memory.c: fail if the debug functions indicate we
11670         should
11671
11672         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11673         (_dbus_decrement_fail_alloc_counter): debug functions to
11674         simulate memory allocation failures
11675
11676 2003-02-14  Havoc Pennington  <hp@pobox.com>
11677
11678         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11679         to DBusError
11680
11681 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11682
11683         * bus/driver.c: (bus_driver_handle_hello):
11684         * bus/driver.h:
11685         * bus/services.c: (bus_service_lookup):
11686         Reorder message sending so we get a more sane order.
11687
11688         * test/bus-test.c: (message_handler):
11689         Fix tyop.
11690
11691 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11692
11693         * bus/driver.c: (bus_driver_send_service_deleted),
11694         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11695         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11696         (bus_driver_send_welcome_message),
11697         (bus_driver_handle_list_services),
11698         (bus_driver_handle_acquire_service),
11699         (bus_driver_handle_service_exists):
11700         * dbus/dbus-bus.c: (dbus_bus_register_client),
11701         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11702         * dbus/dbus-errors.c: (dbus_result_to_string):
11703         * dbus/dbus-errors.h:
11704         * dbus/dbus-message.c: (dbus_message_append_args),
11705         (dbus_message_append_args_valist), (dbus_message_get_args),
11706         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11707         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11708         (dbus_message_iter_get_byte_array),
11709         (dbus_message_iter_get_string_array), (message_iter_test),
11710         (check_message_handling), (_dbus_message_test):
11711         * dbus/dbus-message.h:
11712         * test/bus-test.c: (main):
11713         Change fields to arguments in messages, so that they won't be
11714         confused with header fields.
11715
11716         * glib/test-dbus-glib.c: (main):
11717         Remove append_fields from hello message.
11718
11719 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11720
11721         * dbus/dbus-errors.c:
11722         * dbus/dbus-message.c:
11723         * dbus/dbus-string.c:
11724         Documentation fixes.
11725
11726 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11727
11728         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11729         (remove_timeout):
11730         Implement support for timeouts in dbus-glib.
11731
11732 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11733
11734         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11735         * dbus/dbus-message.c: (process_test_subdir):
11736         * test/break-loader.c: (find_breaks_based_on):
11737         Plug some memory leaks.
11738
11739 2003-02-13  Richard Hult  <rhult@codefactory.se>
11740
11741         * bus/main.c: Fix build.
11742
11743         * dbus/dbus-errors.h:
11744         * dbus/dbus-errors.c: Fix copyright for Anders.
11745
11746 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11747
11748         * bus/Makefile.am:
11749         Add utils.[ch]
11750
11751         * bus/connection.c: (bus_connection_foreach):
11752         Fix a warning.
11753
11754         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11755         (unescape_string), (new_section), (parse_section_start),
11756         (parse_key_value), (report_error), (bus_desktop_file_load),
11757         (bus_desktop_file_get_string):
11758         * bus/desktop-file.h:
11759         Use DBusError for error reporting.
11760
11761         * bus/dispatch.c: (send_one_message),
11762         (bus_dispatch_message_handler):
11763         * bus/driver.c: (bus_driver_send_service_deleted),
11764         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11765         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11766         (bus_driver_send_welcome_message),
11767         (bus_driver_handle_list_services),
11768         (bus_driver_handle_acquire_service),
11769         (bus_driver_handle_service_exists):
11770         * bus/loop.c: (bus_loop_run):
11771         * bus/main.c:
11772         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11773
11774         * bus/utils.c: (bus_wait_for_memory):
11775         * bus/utils.h:
11776         New files with general utility functions.
11777
11778         * dbus/dbus-internals.h:
11779         Remove _DBUS_HANDLE_OOM.
11780
11781 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11782
11783         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11784         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11785         * dbus/dbus-errors.h:
11786         Add DBusError structure.
11787
11788 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11789
11790         * test/data/valid-messages/standard-acquire-service.message:
11791         * test/data/valid-messages/standard-hello.message:
11792         * test/data/valid-messages/standard-list-services.message:
11793         * test/data/valid-messages/standard-service-exists.message:
11794         Add some standard messages.
11795
11796 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11797
11798         * bus/driver.c: (bus_driver_send_welcome_message),
11799         (bus_driver_handle_list_services),
11800         (bus_driver_handle_acquire_service),
11801         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11802         Update for API changes in libdbus.
11803
11804         * dbus/dbus-message.c: (dbus_message_new_reply):
11805         * dbus/dbus-message.h:
11806         Remove the name argument. The spec states that replies shouldn't
11807         have a name.
11808
11809 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11810
11811         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11812         (report_error), (bus_desktop_file_load), (lookup_section),
11813         (lookup_line), (bus_desktop_file_get_raw),
11814         (bus_desktop_file_get_string):
11815         * bus/desktop-file.h:
11816         Some fixes, and new functions for getting a key value from a section.
11817
11818 2003-02-13  Havoc Pennington  <hp@pobox.com>
11819
11820         * test/data/auth/fail-after-n-attempts.auth-script: new test
11821
11822         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11823         reject the client.
11824
11825 2003-02-13  Havoc Pennington  <hp@pobox.com>
11826
11827         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11828         dbus_credentials_match were backward
11829
11830         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11831         NO_CREDENTIALS and ROOT_CREDENTIALS
11832
11833         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11834         into here. Never process more commands after we've reached an
11835         end state; store further data as unused bytes.
11836
11837         * test/data/auth/*: add more auth tests
11838
11839         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11840         command to match exact string and EXPECT_UNUSED to match unused
11841         bytes
11842
11843         * test/Makefile.am (dist-hook): fix to dist all the test stuff
11844
11845 2003-02-12  Havoc Pennington  <hp@pobox.com>
11846
11847         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11848         \r off of popped lines
11849
11850         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11851         scripts
11852
11853         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11854         SEND, append \r\n
11855
11856 2003-02-12  Havoc Pennington  <hp@pobox.com>
11857
11858         * dbus/Makefile.am: remove break-loader from the build, since it
11859         moved.
11860
11861         * configure.in: add --enable-gcov to turn on coverage profiling
11862         flags and disable optimization
11863
11864 2003-02-10  Havoc Pennington  <hp@pobox.com>
11865
11866         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11867         initial cut at test framework for DBusAuth from laptop.
11868         Doesn't quite work yet but it compiles and I need to get
11869         it off the 266mhz laptop. ;-)
11870
11871         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11872         fix a memleak in error case
11873
11874 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
11875
11876         * bus/Makefile.am:
11877         * bus/desktop-file.c:
11878         * bus/desktop-file.h:
11879         Add a desktop file parser.
11880
11881 2003-02-11  Zack Rusin  <zack@kde.org>
11882
11883         * qt/message.[h|cpp]: sample implementation
11884         of the KDE wrapper for DBusMessage
11885
11886 2003-02-09  Zack Rusin  <zack@kde.org>
11887
11888         * test/bus-test.c: make_it_compile
11889         * doc/dbus-specification.sgml: minimal semantic fix
11890
11891 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11892
11893         Release 0.3
11894
11895         * NEWS: Update
11896
11897 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11898
11899         * dbus/Makefile.am:
11900         * dbus/dbus-break-loader.c:
11901         * test/Makefile.am:
11902         * test/break-loader.c:
11903         Move dbus-break-loader to test/ and rename it to break-loader.
11904
11905 2003-02-02  Havoc Pennington  <hp@pobox.com>
11906
11907         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11908         for code to manage cookies in your home directory
11909
11910         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11911
11912         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11913         to authenticate, then disconnect the client.
11914
11915 2003-02-03  Alexander Larsson  <alexl@redhat.com>
11916
11917         * dbus/dbus-message.c (dbus_message_append_fields):
11918         Correct docs.
11919
11920 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11921
11922         * doc/dbus-specification.sgml:
11923         Update address format section.
11924
11925 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11926
11927         * test/Makefile.am:
11928         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11929         (message_handler), (new_connection_callback), (loop_quit),
11930         (loop_run), (main):
11931         Add bus test.
11932
11933 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11934
11935         * bus/driver.c: (bus_driver_handle_service_exists):
11936         Simplify the code a bit.
11937
11938         * dbus/dbus-bus.c: (dbus_bus_service_exists):
11939         Fix a silly.
11940
11941 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11942
11943         * bus/Makefile.am:
11944         Add libdbus-daemon.la and link to it.
11945
11946 2003-02-01  James Willcox  <jwillcox@gnome.org>
11947
11948         * bus/driver.c: (bus_driver_handle_own_service):
11949         Actually include the service reply code in the message.
11950
11951 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11952
11953         * bus/driver.c: (bus_driver_handle_service_exists):
11954         Don't unref the incoming message.
11955
11956 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11957
11958         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11959
11960 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11961
11962         * dbus/dbus-server.c: (dbus_server_listen):
11963         * dbus/dbus-transport.c: (_dbus_transport_open):
11964         ifdef out the calls to the debug transport and server.
11965
11966 2003-02-02  Alexander Larsson  <alexl@redhat.com>
11967
11968         * dbus/dbus-watch.c (dbus_watch_get_flags):
11969         Add note in the docs that ERROR or HANGUP won't be returned
11970         and are assumed always on.
11971
11972         * glib/dbus-gmain.c (add_watch):
11973         Always add IO_ERR | IO_HUP
11974
11975         * dbus/dbus-message.h:
11976         Add semicolon after dbus_message_iter_get_string_array().
11977         Makes qt code build again
11978
11979 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
11980
11981         * bus/driver.c: (create_unique_client_name),
11982         (bus_driver_handle_hello):
11983         Don't take a name, just use a numeric id to identify
11984         each client.
11985
11986         * dbus/Makefile.am:
11987         * dbus/dbus-bus.c: (dbus_bus_register_client),
11988         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11989         * dbus/dbus-bus.h:
11990         Add new convenience functions for communicating with the bus.
11991
11992         * dbus/dbus-message.h:
11993
11994         * dbus/dbus-protocol.h:
11995         Fix a typo.
11996
11997 2003-02-01  Alexander Larsson  <alexl@redhat.com>
11998
11999         * dbus/dbus-message.c (dbus_message_append_fields):
12000         Add some more doc comments.
12001
12002 2003-02-01  Havoc Pennington  <hp@pobox.com>
12003
12004         * dbus/dbus-break-loader.c (randomly_modify_length): change
12005         a 4-byte value in the message as if it were a length
12006
12007         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12008         execute bit on saved files
12009
12010 2003-02-01  Havoc Pennington  <hp@pobox.com>
12011
12012         * dbus/dbus-break-loader.c (main): new program to find messages
12013         that break the loader.
12014
12015         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12016         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12017
12018         * dbus/dbus-string.c (_dbus_string_set_byte): new
12019
12020 2003-01-31  Havoc Pennington  <hp@pobox.com>
12021
12022         * dbus/dbus-message.c: refactor the test code to be more general,
12023         in preparation for writing a "randomly permute test cases to
12024         try to break the loader" program.
12025
12026 2003-01-31  Havoc Pennington  <hp@pobox.com>
12027
12028         * doc/dbus-specification.sgml: work on the specification
12029
12030         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12031         the protocol version of the message.
12032
12033         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12034         no longer specifies that.
12035         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12036         1/2/3/4)
12037
12038         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12039         "break" for DBUS_TYPE_NIL, remove @todo
12040
12041 2003-01-31  Havoc Pennington  <hp@pobox.com>
12042
12043         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12044         just set_is_error/get_is_error as this is a commonly-used
12045         function, and write docs.
12046
12047 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12048
12049         * dbus/dbus-address.c: (dbus_address_entry_free):
12050         Free key and value lists.
12051
12052         * dbus/dbus-internals.c: (_dbus_type_to_string):
12053         Add the types we didn't have.
12054
12055         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12056         (_dbus_marshal_validate_arg):
12057         Add NIL types.
12058
12059         * dbus/dbus-message.c: (dbus_message_set_sender):
12060         Remove todo about being able to set sender to NULL.
12061
12062         (dbus_message_set_is_error_reply),
12063         (dbus_message_get_is_error_reply):
12064         * dbus/dbus-message.h:
12065         New functions.
12066
12067         * dbus/dbus-protocol.h:
12068         Add error reply flag.
12069
12070         * test/data/valid-messages/opposite-endian.message:
12071         Add NIL type to test.
12072
12073 2003-01-31  Havoc Pennington  <hp@pobox.com>
12074
12075         * doc/dbus-specification.sgml: fully specify the header.  Add
12076         flags and major protocol version, and change header/body len to
12077         unsigned.
12078
12079         * dbus/dbus-message-builder.c (append_saved_length): append length
12080         as uint32
12081
12082         * dbus/dbus-message.c (dbus_message_create_header): change header
12083         length and body length to unsigned. Add the new fields from the
12084         spec
12085         (_dbus_message_loader_return_buffer): unsigned header/body len
12086
12087 2003-01-30  Havoc Pennington  <hp@pobox.com>
12088
12089         * dbus/dbus-auth.c: rework to use only REJECTED, no
12090         MECHANISMS
12091
12092         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12093         use REJECTED, suggested by Mark McLoughlin
12094
12095 2003-01-30  Havoc Pennington  <hp@pobox.com>
12096
12097         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12098         a better way to report errors here. e.g.  "unix address lacks
12099         path" or something. also "no such file" when the path doesn't
12100         exist, etc.
12101
12102         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12103         leaking list nodes
12104         (dbus_parse_address): add @todo about documenting address format,
12105         and allowing , and ; to be escaped
12106
12107 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12108
12109         * dbus/Makefile.am:
12110         Add dbus-address.[ch]
12111
12112         * dbus/dbus-address.c: (dbus_address_entry_free),
12113         (dbus_address_entries_free), (create_entry),
12114         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12115         (dbus_parse_address), (_dbus_address_test):
12116         * dbus/dbus-address.h:
12117         New files for dealing with address parsing.
12118
12119         * dbus/dbus-connection.c:
12120         Document timeout functions.
12121
12122         * dbus/dbus-message.c:
12123         Document dbus_message_new_from_message.
12124
12125         * dbus/dbus-server-debug.c:
12126         Document.
12127
12128         * dbus/dbus-server.c: (dbus_server_listen):
12129         Parse address and use correct server implementation.
12130
12131         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12132         * dbus/dbus-string.h:
12133         New function with test.
12134
12135         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12136         * dbus/dbus-test.h:
12137         Add address tests.
12138
12139         * dbus/dbus-transport-debug.c:
12140         Document.
12141
12142         * dbus/dbus-transport.c: (_dbus_transport_open):
12143         Parse address and use correct transport implementation.
12144
12145 2003-01-30  Havoc Pennington  <hp@pobox.com>
12146
12147         * dbus/dbus-message.c: use message->byte_order instead of
12148         DBUS_COMPILER_BYTE_ORDER throughout.
12149         (dbus_message_create_header): pad header to align the
12150         start of the body of the message to 8-byte boundary
12151
12152         * dbus/dbus-marshal.h: make all the demarshalers take const
12153         DBusString arguments.
12154
12155         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12156         validate message args here, so we don't have to do slow validation
12157         later, and so we catch bad messages as they are incoming. Also add
12158         better checks on header_len and body_len. Also fill in
12159         message->byte_order
12160
12161         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12162         implemented properly)
12163         (_dbus_string_validate_nul): new function to check all-nul
12164
12165         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12166         get_arg_end_pos and remove all validation
12167         (_dbus_marshal_validate_arg): actually do validation here.
12168
12169 2003-01-29  Havoc Pennington  <hp@pobox.com>
12170
12171         * dbus/dbus-message.c (check_message_handling): fix assertion
12172         failure on set_client_serial
12173
12174 2003-01-28  Havoc Pennington  <hp@pobox.com>
12175
12176         * dbus/dbus-server-debug.c: Add doc section comments
12177
12178         * dbus/dbus-transport-debug.c: add doc section comments
12179
12180 2003-01-28  Havoc Pennington  <hp@redhat.com>
12181
12182         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12183         the reverse order from how I had it
12184         (_dbus_string_base64_encode): reverse encoding order. I was
12185         basically byteswapping everything during encoding.
12186
12187 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12188
12189         * dbus/dbus-connection-internal.h:
12190         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12191         (_dbus_connection_remove_timeout):
12192         Add functions for adding and removing timeouts.
12193
12194         * dbus/dbus-message.c: (dbus_message_new_from_message):
12195         Add new function that takes a message and creates an exact
12196         copy of it, but with the refcount set to 1.
12197         (check_message_handling):
12198         Fix build error.
12199
12200         * dbus/dbus-server-protected.h:
12201         * dbus/dbus-server.c: (_dbus_server_init_base),
12202         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12203         (dbus_server_set_timeout_functions):
12204         (_dbus_server_remove_timeout):
12205         New functions so that a server can add and remove timeouts.
12206
12207         (dbus_server_listen):
12208         Add commented out call to dbus_server_debug_new.
12209
12210         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12211         Actually set the handler, doh.
12212
12213         * dbus/dbus-transport.c: (_dbus_transport_open):
12214         Add commented out call to dbus_transport_debug_client_new.
12215
12216         * dbus/Makefile.am:
12217         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12218
12219 2003-01-28  Havoc Pennington  <hp@pobox.com>
12220
12221         * dbus/dbus-message.c (check_message_handling): function to check
12222         on the loaded message, iterates over it etc.
12223
12224 2003-01-28  Havoc Pennington  <hp@pobox.com>
12225
12226         * test/Makefile.am (dist-hook): fix make distdir
12227
12228         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12229
12230 2003-01-27  Havoc Pennington  <hp@pobox.com>
12231
12232         * dbus/dbus-mempool.c (time_for_size): replace printf with
12233         _dbus_verbose
12234
12235         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12236         empty lines; fix the SAVE_LENGTH stuff to be
12237         START_LENGTH/END_LENGTH so it actually works; couple other
12238         bugfixes
12239
12240         * test/Makefile.am (dist-hook): add dist-hook for .message files
12241
12242         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12243         can be constant or locked.
12244         (_dbus_string_free): allow freeing a const string as
12245         documented/intended
12246
12247         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12248
12249         * dbus/dbus-test-main.c (main): take an argument which is the
12250         directory containing test data
12251
12252         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12253         argument to this and load all the messages in test/data/
12254         checking that they can be loaded or not loaded as appropriate.
12255
12256 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12257
12258         * bus/dispatch.c: (bus_dispatch_message_handler):
12259         Dispatch messages sent to services.
12260
12261         * bus/driver.c: (bus_driver_send_service_deleted),
12262         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12263         (bus_driver_send_service_acquired):
12264         Add helper functions for sending service related messages.
12265
12266         (bus_driver_send_welcome_message):
12267         Send HELLO_REPLY instead of WELCOME.
12268
12269         (bus_driver_handle_list_services):
12270         Send LIST_SERVICES_REPLY instead of SERVICES.
12271
12272         (bus_driver_handle_own_service),
12273         (bus_driver_handle_service_exists):
12274         New message handlers.
12275
12276         (bus_driver_handle_message):
12277         Invoke new message handlers.
12278
12279         (bus_driver_remove_connection):
12280         Don't remove any services here since that's done automatically
12281         by bus_service_remove_owner now.
12282
12283         * bus/driver.h:
12284         New function signatures.
12285
12286         * bus/services.c: (bus_service_add_owner):
12287         Send ServiceAcquired message if we're the only primary owner.
12288
12289         (bus_service_remove_owner):
12290         Send ServiceAcquired/ServiceLost messages.
12291
12292         (bus_service_set_prohibit_replacement),
12293         (bus_service_get_prohibit_replacement):
12294         Functions for setting prohibit replacement.
12295
12296         (bus_service_has_owner):
12297         New function that checks if a connection is in the owner queue of
12298         a certain service.
12299
12300         * bus/services.h:
12301         Add new function signatures.
12302
12303         * dbus/dbus-list.c: (_dbus_list_test):
12304         Add tests for _dbus_list_remove_last and traversing the list backwards.
12305
12306         * dbus/dbus-list.h:
12307         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12308         go any further, so return NULL then.
12309
12310         * dbus/dbus-protocol.h:
12311         Add new messages, service flags and service replies.
12312
12313 2003-01-26  Havoc Pennington  <hp@pobox.com>
12314
12315         * dbus/dbus-message-builder.c: implement, completely untested.
12316
12317         * test/data/*: add data to be used in testing.
12318         ".message" files are our simple loadable text format.
12319         ".message-raw" will be binary dumps of messages.
12320
12321         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12322
12323 2003-01-26  Havoc Pennington  <hp@pobox.com>
12324
12325         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12326
12327         * dbus/dbus-errors.c (dbus_result_to_string): add
12328         file errors
12329
12330         * dbus/dbus-message-builder.c: new file, will contain code to load
12331         up messages from files. Not implemented yet.
12332
12333 2003-01-26  Havoc Pennington  <hp@pobox.com>
12334
12335         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12336         the sender by setting to NULL
12337
12338 2003-01-26  Havoc Pennington  <hp@pobox.com>
12339
12340         The unit tests pass, but otherwise untested.  If it breaks, the
12341         tests should have been better. ;-)
12342
12343         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12344         the connection.
12345
12346         * dbus/dbus-message.c: redo everything so we maintain
12347         message->header as the only copy of the various fields.
12348         This avoids the possibility of out-of-memory in some cases,
12349         for example dbus_message_lock() can't run out of memory anymore,
12350         and avoids extra copying. Figured I may as well go ahead and do
12351         this since it was busted for dbus_message_lock to not return
12352         failure on OOM, and dbus_message_write_header was totally
12353         unchecked for OOM. Also fixed some random other bugs.
12354
12355         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12356         that strings are nul-terminated. Also, end_pos can be equal
12357         to string length just not greater than, I think.
12358         (_dbus_marshal_set_int32): new function
12359         (_dbus_marshal_set_uint32): new function
12360         (_dbus_marshal_set_string): new function
12361
12362         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12363         a warning, init timeout_list to NULL
12364         (dbus_connection_send_message): don't use uninitialized variable
12365         "serial"
12366
12367         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12368
12369 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12370
12371         * bus/driver.c: (bus_driver_handle_hello),
12372         (bus_driver_send_welcome_message):
12373         Plug leaks
12374
12375 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12376
12377         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12378         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12379         (dbus_connection_unref):
12380         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12381         * dbus/dbus-message.c: (dbus_message_unref),
12382         Plug memory leaks.
12383
12384         (dbus_message_get_fields):
12385         Remove debugging printout.
12386
12387         (_dbus_message_loader_return_buffer):
12388         Don't store the header string.
12389
12390         (_dbus_message_test):
12391         Plug leaks.
12392
12393 2003-01-26  Richard Hult  <rhult@codefactory.se>
12394
12395         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12396         the file descriptor list, since it can change under us.
12397
12398 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12399
12400         * glib/dbus-gmain.c: (dbus_connection_prepare),
12401         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12402         (remove_watch), (dbus_connection_hookup_with_g_main):
12403         Rewrite the glib handling to use its own GSource instead of a
12404         GIOChannel so we can catch messages put in the queue while waiting
12405         for a reply.
12406
12407 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12408
12409         * bus/Makefile.am:
12410         * bus/connection.c: (connection_disconnect_handler),
12411         (connection_watch_callback), (bus_connection_setup):
12412         * bus/dispatch.c: (send_one_message),
12413         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12414         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12415         * bus/dispatch.h:
12416         * bus/driver.c: (bus_driver_send_service_deleted),
12417         (bus_driver_send_service_created), (bus_driver_handle_hello),
12418         (bus_driver_send_welcome_message),
12419         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12420         (bus_driver_handle_message):
12421         * bus/driver.h:
12422         Refactor code, put the message dispatching in its own file. Use
12423         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12424         is disconnected.
12425
12426 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12427
12428         * dbus/dbus-internals.h:
12429         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12430
12431         * dbus/dbus-message.c: (dbus_message_get_sender):
12432         * dbus/dbus-message.h:
12433         Implement dbus_message_get_sender.
12434
12435         * dbus/dbus-protocol.h:
12436         Add message and service defines.
12437
12438 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12439
12440         * dbus/dbus-connection.c: (dbus_connection_send_message):
12441         * dbus/dbus-message-internal.h:
12442         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12443         (dbus_message_write_header):
12444         Remove _dbus_messag_unlock and don't set the client serial on a
12445         message if one already exists.
12446
12447 2003-01-24  Havoc Pennington  <hp@pobox.com>
12448
12449         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12450         list_pool
12451
12452         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12453         on OOM
12454
12455 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12456
12457         * dbus/dbus-list.c: (alloc_link), (free_link):
12458         Use a memory pool for the links.
12459
12460 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12461
12462         * bus/connection.c: (bus_connection_foreach):
12463         * bus/connection.h:
12464         Add new bus_connection_foreach function.
12465
12466         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12467         Add function that broadcasts a message to all clients.
12468
12469         (bus_driver_send_service_created), (bus_driver_handle_hello),
12470         (bus_driver_send_welcome_message),
12471         (bus_driver_handle_list_services), (bus_driver_message_handler):
12472         Implement functions that take care of listing services, and notifying
12473         clients when new services are created.
12474
12475         * bus/services.c: (bus_services_list):
12476         * bus/services.h:
12477         Add new function that returns an array of strings with the currently
12478         registered services.
12479
12480         * glib/dbus-glib.h:
12481         * glib/dbus-gmain.c:
12482         Update copyright year.
12483
12484 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12485
12486         * dbus/dbus-connection.c: (dbus_connection_send_message):
12487         Unlock the message in case it was sent earlier.
12488
12489         (dbus_connection_send_message_with_reply_and_block):
12490         Remove the reply message from the list.
12491
12492         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12493         Set array_len and new_pos correctly.
12494
12495         (_dbus_marshal_test):
12496         Remove debug output.
12497
12498         * dbus/dbus-message-internal.h:
12499         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12500         New function that returns the reply serial.
12501
12502         (_dbus_message_unlock):
12503         New function that unlocks a message and resets its header.
12504
12505         (dbus_message_append_string_array),
12506         (dbus_message_get_fields_valist),
12507         (dbus_message_iter_get_field_type),
12508         (dbus_message_iter_get_string_array),
12509         (dbus_message_get_fields),
12510         (dbus_message_append_fields_valist):
12511         Handle string arrays.
12512
12513         (dbus_message_set_sender):
12514         Make this function public since the bus daemon needs it.
12515
12516         (decode_header_data):
12517         Set the reply serial to -1 initially.
12518
12519         * dbus/dbus-message.h:
12520         Add dbus_message_set_sender.
12521
12522 2003-01-24  Havoc Pennington  <hp@pobox.com>
12523
12524         * doc/dbus-specification.sgml: add some stuff
12525
12526 2003-01-22  Havoc Pennington  <hp@pobox.com>
12527
12528         * doc/dbus-specification.sgml: Start to document the protocol.
12529
12530 2003-01-22  Havoc Pennington  <hp@pobox.com>
12531
12532         * dbus/dbus-connection.c
12533         (dbus_connection_send_message_with_reply_and_block): add some @todo
12534
12535         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12536
12537 2003-01-21  Havoc Pennington  <hp@pobox.com>
12538
12539         (patch untested because can't compile)
12540
12541         * bus/driver.c (create_unique_client_name): make this function
12542         never recycle client names. Also, caller should initialize
12543         the DBusString.
12544
12545         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12546
12547 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12548
12549         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12550         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12551         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12552         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12553         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12554         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12555         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12556         * dbus/dbus-marshal.h:
12557         * dbus/dbus-protocol.h:
12558         Add support for marshalling and demarshalling integer, double
12559         and string arrays.
12560
12561 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12562
12563         * bus/Makefile.am:
12564         Add driver.[ch]
12565
12566         * bus/connection.c: (connection_disconnect_handler):
12567         Remove the connection from the bus driver's list.
12568
12569         (connection_watch_callback): Dispatch messages.
12570
12571         (free_connection_data): Free connection name.
12572
12573         (bus_connection_setup): Add connection to the bus driver's list.
12574         (bus_connection_remove_owned_service):
12575         (bus_connection_set_name), (bus_connection_get_name):
12576         Add functions for setting and getting the connection's name.
12577
12578         * bus/connection.h:
12579         Add function headers.
12580
12581         * bus/driver.c: (create_unique_client_name),
12582         (bus_driver_handle_hello_message),
12583         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12584         (bus_driver_add_connection), (bus_driver_remove_connection):
12585         * bus/driver.h:
12586         * bus/main.c:
12587         * bus/services.c: (bus_service_free):
12588         * bus/services.h:
12589         New file that handles communication and registreation with the bus
12590         itself.
12591
12592 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12593
12594         * dbus/dbus-connection.c: (dbus_connection_send_message):
12595         Add a new client_serial parameter.
12596
12597         (dbus_connection_send_message_with_reply):
12598         Remove a @todo since we've implemented the blocking function.
12599
12600         (dbus_connection_send_message_with_reply_and_block):
12601         New function that sends a message and waits for a reply and
12602         then returns the reply.
12603
12604         * dbus/dbus-connection.h:
12605         Add new functions.
12606
12607         * dbus/dbus-errors.c: (dbus_result_to_string):
12608         * dbus/dbus-errors.h:
12609         Add new DBUS_RESULT.
12610
12611         * dbus/dbus-message-internal.h:
12612         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12613         (_dbus_message_set_sender), (dbus_message_write_header),
12614         (dbus_message_new_reply), (decode_header_data),
12615         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12616         * dbus/dbus-message.h:
12617         Add new functions that set the reply serial and sender.
12618         Also marshal and demarshal them correctly and add test.
12619
12620         * dbus/dbus-protocol.h:
12621         Add new DBUS_MESSAGE_TYPE_SENDER.
12622
12623         * glib/dbus-glib.h:
12624         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12625         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12626         (dbus_connection_hookup_with_g_main):
12627         * glib/test-dbus-glib.c: (main):
12628         Rewrite to use GIOChannel and remove the GSource crack.
12629
12630         * test/echo-client.c: (main):
12631         * test/watch.c: (check_messages):
12632         Update for changed APIs
12633
12634 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12635
12636         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12637
12638         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12639         Create a DBusTimeoutList.
12640         (dbus_connection_set_timeout_functions): Add new function to
12641         set timeout callbacks
12642
12643         * dbus/dbus-connection.h: Add public DBusTimeout API.
12644
12645         * dbus/dbus-message.c: (dbus_message_get_service):
12646         * dbus/dbus-message.h:  New function.
12647
12648         * dbus/dbus-server.c: Fix small doc typo.
12649
12650         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12651
12652 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12653
12654         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12655         of the string, just as long as specified.
12656
12657 2003-01-19  Havoc Pennington  <hp@pobox.com>
12658
12659         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12660         new function
12661
12662         * dbus/dbus-server.c (dbus_server_set_max_connections)
12663         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12664         keep track of current number of connections, and add API for
12665         setting a max (but haven't implemented enforcing the max yet)
12666
12667 2003-01-18  Havoc Pennington  <hp@pobox.com>
12668
12669         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12670         reading/writing if read_watch != NULL or write_watch != NULL.
12671
12672         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12673         the message loader code to actually load message->header and
12674         message->body into the newly-created message.
12675
12676         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12677         in OOM case
12678
12679         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12680         (dbus_connection_get_max_message_size)
12681         (dbus_connection_set_max_live_messages_size)
12682         (dbus_connection_get_max_live_messages_size): implement some
12683         resource limitation functions
12684
12685         * dbus/dbus-resources.c: new file implementing some of the
12686         resource limits stuff
12687
12688         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12689         missing docs, add @todo to handle OOM etc.
12690
12691         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12692         docs
12693
12694 2003-01-18  Havoc Pennington  <hp@pobox.com>
12695
12696         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12697         connection if it hasn't been already.
12698
12699         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12700         replace with DisconnectFunction.
12701
12702 2003-01-18  Havoc Pennington  <hp@pobox.com>
12703
12704         Building --disable-verbose-mode --disable-asserts --disable-tests
12705         cuts the library from 112K to 45K or so
12706
12707         * configure.in: check for varargs macro support,
12708         add --enable-verbose-mode, --enable-asserts.
12709
12710         * dbus/dbus-internals.h (_dbus_assert): support
12711         DBUS_DISABLE_ASSERT
12712         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12713
12714 2003-01-18  Havoc Pennington  <hp@pobox.com>
12715
12716         * dbus/dbus-test.c: include config.h so that tests actually run
12717
12718         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12719         so the failure mode when that assumption fails will be plenty
12720         obvious.
12721
12722 2003-01-18  Havoc Pennington  <hp@pobox.com>
12723
12724         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12725
12726         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12727         the distribution
12728
12729         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12730         since we don't want to use those in make check
12731
12732 2003-01-15  Havoc Pennington  <hp@redhat.com>
12733
12734         Release 0.2
12735
12736         * NEWS: update
12737
12738 2003-01-15  Havoc Pennington  <hp@redhat.com>
12739
12740         * test/Makefile.am: fix so that test source code ends up in the
12741         distribution on make distcheck
12742
12743 2003-01-15  Havoc Pennington  <hp@redhat.com>
12744
12745         Release 0.1.
12746
12747         * NEWS: update
12748
12749 2003-01-15  Havoc Pennington  <hp@redhat.com>
12750
12751         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12752         fix build when --disable-tests
12753
12754         * Makefile.am (EXTRA_DIST): put HACKING in here
12755
12756         * HACKING: document procedure for making a tarball release.
12757
12758 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12759
12760         * bus/connection.c: (connection_error_handler),
12761         (bus_connection_setup):
12762         * bus/main.c: (main):
12763         Make sure that the DBusConnectionData struct is NULLed
12764         out to prevent a segfault.
12765
12766         * dbus/dbus-errors.c: (dbus_result_to_string):
12767         * dbus/dbus-errors.h:
12768         * dbus/dbus-message.c: (dbus_message_get_fields),
12769         (dbus_message_get_fields_valist), (_dbus_message_test):
12770         * dbus/dbus-message.h:
12771         Make dbus_message_get_fields return a result code so we can
12772         track invalid fields as well as oom.
12773
12774 2003-01-11  Havoc Pennington  <hp@pobox.com>
12775
12776         * configure.in: change --enable-test/--enable-ansi action-if-given
12777         to enable_foo=$enableval instead of enable_foo=yes
12778
12779 2003-01-08  Havoc Pennington  <hp@pobox.com>
12780
12781         * dbus/dbus-string.c (_dbus_string_align_length): new function
12782
12783         * dbus/dbus-test-main.c: move main() for test app here
12784         * dbus/dbus-test.c
12785         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12786         symbol to run tests, because dbus-test isn't in the main
12787         library
12788
12789         Code review nitpicks.
12790
12791         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12792         for people with narrow emacs ;-). Assert client_serial was filled
12793         in. Assert message->name != NULL.
12794         (dbus_message_append_fields): have "first_field_type" arg separate
12795         from va list, needed for C++ binding that also uses varargs IIRC
12796         and helps with type safety
12797         (dbus_message_new): add @todo about using DBusString to store
12798         service/name internally
12799         (dbus_message_new): don't leak ->service and ->name on OOM later
12800         in the function
12801         (dbus_message_unref): free the service name
12802         (dbus_message_get_fields): same change to varargs
12803         i.e. first_field_type
12804         (_dbus_message_loader_return_buffer): assert that the message data
12805         is aligned (if not it's a bug in our code). Put in verbose griping
12806         about why we set corrupted = TRUE.
12807         (decode_header_data): add FIXME that char* is evil.  Was going to
12808         add FIXME about evil locale-specific string.h strncmp, but just
12809         switched to wacky string-as-uint32 optimization. Move check for
12810         "no room for field name" above get_const_data_len() to avoid
12811         assertion failure in get_const_data_len if we have trailing 2
12812         bytes or the like. Check for service and name fields being
12813         provided twice. Don't leak service/name on error. Require field
12814         names to be aligned to 4 bytes.
12815
12816         * dbus/dbus-marshal.c: move byte swap stuff to header
12817         (_dbus_pack_int32): uscore-prefix
12818         (_dbus_unpack_int32): uscore-prefix
12819         (_dbus_unpack_uint32): export
12820         (_dbus_demarshal_string): add @todo complaining about use of
12821         memcpy()
12822         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12823         handling allowing corrupt data to go unchecked
12824
12825 2003-01-08  Havoc Pennington  <hp@redhat.com>
12826
12827         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12828         to the select() as needed for authentication. (should be using
12829         _dbus_poll() not select, but for another day)
12830
12831         * dbus/dbus.h: include dbus/dbus-protocol.h
12832
12833 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12834
12835         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12836         dbus-connection.h
12837
12838 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12839
12840         * dbus/dbus-internals.c: (_dbus_type_to_string):
12841         New function that returns a string describing a type.
12842
12843         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12844         * dbus/dbus-marshal.h:
12845         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12846         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12847         (dbus_message_iter_get_byte_array):
12848         * dbus/dbus-message.h:
12849         Add new convenience functions for appending and getting message fields.
12850         Also add demarshalling routines for byte arrays.
12851
12852 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12853
12854         * dbus/dbus-connection-internal.h:
12855         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12856         (_dbus_connection_get_next_client_serial),
12857         (dbus_connection_send_message):
12858         * dbus/dbus-internals.h:
12859         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12860         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12861         (_dbus_marshal_uint32), (_dbus_demarshal_double),
12862         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12863         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12864         (_dbus_verbose_bytes), (_dbus_marshal_test):
12865         * dbus/dbus-marshal.h:
12866         * dbus/dbus-message-internal.h:
12867         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12868         (dbus_message_write_header), (_dbus_message_lock),
12869         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12870         (dbus_message_get_name), (dbus_message_append_int32),
12871         (dbus_message_append_uint32), (dbus_message_append_double),
12872         (dbus_message_append_string), (dbus_message_append_byte_array),
12873         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12874         (dbus_message_iter_unref), (dbus_message_iter_has_next),
12875         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12876         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12877         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12878         (decode_header_data), (_dbus_message_loader_return_buffer),
12879         (message_iter_test), (_dbus_message_test):
12880         * dbus/dbus-message.h:
12881         * dbus/dbus-protocol.h:
12882         * dbus/dbus-test.c: (main):
12883         * dbus/dbus-test.h:
12884         * glib/test-dbus-glib.c: (message_handler), (main):
12885         * test/echo-client.c: (main):
12886         * test/watch.c: (check_messages):
12887         Make messages sendable and receivable for real.
12888
12889 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12890
12891         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12892         (_dbus_marshal_string), (_dbus_marshal_byte_array):
12893         * dbus/dbus-message.c: (dbus_message_append_int32),
12894         (dbus_message_append_uint32), (dbus_message_append_double),
12895         (dbus_message_append_string), (dbus_message_append_byte_array):
12896         Handle OOM restoration.
12897
12898 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12899
12900         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12901         (_dbus_demarshal_string), (_dbus_marshal_test):
12902         * dbus/dbus-marshal.h:
12903         * dbus/dbus-message.c: (dbus_message_get_name),
12904         Document these functions.
12905
12906         (dbus_message_append_int32), (dbus_message_append_uint32),
12907         (dbus_message_append_double), (dbus_message_append_string),
12908         (dbus_message_append_byte_array):
12909         * dbus/dbus-message.h:
12910         Add functions for adding message fields of different types.
12911
12912         * dbus/dbus-protocol.h:
12913         Add the different types.
12914
12915 2003-01-05  Havoc Pennington  <hp@pobox.com>
12916
12917         * bus/connection.c: implement routines for handling connections,
12918         first thing is keeping a list of owned services on each connection
12919         and setting up watches etc.
12920
12921         * bus/services.c: implement a mapping from service names to lists
12922         of connections
12923
12924         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12925
12926         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12927         to use static mutexes for global data
12928
12929         * dbus/dbus-connection.c (dbus_connection_set_data): add new
12930         collection of functions to set/get application-specific data
12931         on the DBusConnection.
12932
12933 2003-01-04  Havoc Pennington  <hp@pobox.com>
12934
12935         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12936         (_dbus_poll): new function
12937
12938         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12939         copied from GLib
12940
12941         * bus/loop.c: initial code for the daemon main loop
12942
12943 2003-01-04  Havoc Pennington  <hp@pobox.com>
12944
12945         * test/watch.c (error_handler): make it safe if the error handler
12946         is called multiple times (if we s/error handler/disconnect
12947         handler/ we should just guarantee it's called only once)
12948
12949         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12950         error handler on disconnect (it's quite possible we should
12951         just change the error handler to a "disconnect handler," I'm
12952         not sure we have any other meaningful errors)
12953
12954         * configure.in: check for getpwnam_r
12955
12956         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12957         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12958         mechanism as in SASL spec, using socket credentials
12959
12960         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12961         (_dbus_send_credentials_unix_socket): new function
12962
12963         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12964         dbus_accept()
12965         (_dbus_write): only check errno if <0 returned
12966         (_dbus_write_two): ditto
12967
12968 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
12969
12970         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12971         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12972         (_dbus_marshal_test):
12973         * dbus/dbus-marshal.h:
12974         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12975         to _dbus_marshal_utf8_string. Also fix some tests.
12976
12977 2002-12-28  Harri Porten  <porten@kde.org>
12978
12979         * configure.in: added check for C++ compiler and a very cheesy
12980         check for the Qt integration
12981
12982         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12983
12984         * qt/Makefile.am: added
12985
12986         * qt/.cvsignore: added
12987
12988         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12989         latter, added #ifdef QT_THREAD_SUPPORT guard.
12990
12991         * dbus/Makefile.am: added missing headers for make dist
12992
12993 2002-12-28  Kristian Rietveld  <kris@gtk.org>
12994
12995         * dbus/Makefile.am: fixup export-symbols-regex.
12996
12997 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12998
12999         * acinclude.m4: Add this file and put the
13000         PKG_CHECK_MODULE macro in it.
13001
13002 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13003
13004         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13005         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13006         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13007         (_dbus_marshal_test):
13008         Make the demarshalling routines align the pos argument.
13009         Add string marshalling tests and fix the obvious bugs
13010         discovered.
13011
13012 2002-12-26  Havoc Pennington  <hp@pobox.com>
13013
13014         * dbus/dbus-auth.c: fixes fixes fixes
13015
13016         * dbus/dbus-transport-unix.c: wire up support for
13017         encoding/decoding data on the wire
13018
13019         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13020         (_dbus_auth_decode_data): append to target string
13021         instead of nuking it.
13022
13023 2002-12-26  Havoc Pennington  <hp@pobox.com>
13024
13025         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13026         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13027         doh
13028
13029         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13030         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13031         now). Main point is because I wanted unpack_uint32 to implement
13032         _dbus_verbose_bytes
13033         (_dbus_verbose_bytes): new function
13034
13035         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13036
13037         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13038         mechanism to handle a corrupt message stream
13039         (_dbus_message_loader_new): fix preallocation to only prealloc,
13040         not prelengthen
13041
13042         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13043         (_dbus_string_test): enhance tests for copy/move and fix the
13044         functions
13045
13046         * dbus/dbus-transport-unix.c: Hold references in more places to
13047         avoid reentrancy problems
13048
13049         * dbus/dbus-transport.c: ditto
13050
13051         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13052         leak reference count in no-message case
13053
13054         * test/watch.c (do_mainloop): handle adding/removing watches
13055         during iteration over the watches. Also, ref the connection/server
13056         stored on a watch, so we don't try to mangle a destroyed one.
13057
13058         * dbus/dbus-transport-unix.c (do_authentication): perform
13059         authentication
13060
13061         * dbus/dbus-auth.c (get_state): add a state
13062         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13063         (_dbus_auth_get_unused_bytes): append the unused bytes
13064         to the passed in string, rather than prepend
13065
13066         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13067         the auth conversation DBusAuth
13068
13069         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13070         (_dbus_transport_new_for_domain_socket): when creating a
13071         transport, pass in whether it's a client-side or server-side
13072         transport so we know which DBusAuth to create
13073
13074 2002-12-03  Havoc Pennington  <hp@pobox.com>
13075
13076         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13077         _after_ finalizing the derived members
13078         (unix_connection_set): unref watch if we fail to add it
13079
13080         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13081         transport first, so that the connection owned by the
13082         transport will be valid as the transport finalizes.
13083
13084         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13085         if necessary, and remove watches from the connection.
13086
13087         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13088
13089 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13090
13091         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13092         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13093         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13094         (_dbus_marshal_test):
13095         * dbus/dbus-marshal.h:
13096         Add string marshal functions and have the demarshal functions
13097         return the new position.
13098
13099 2002-12-25  Havoc Pennington  <hp@pobox.com>
13100
13101         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13102         it is a simple protocol that just maps directly to SASL.
13103
13104         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13105         initial implementation, not actually used yet.
13106
13107         * dbus/dbus-string.c (_dbus_string_find): new function
13108         (_dbus_string_equal): new function
13109         (_dbus_string_base64_encode): new function
13110         (_dbus_string_base64_decode): new function
13111
13112 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13113
13114         * dbus/Makefile.am:
13115         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13116         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13117         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13118         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13119         * dbus/dbus-marshal.h:
13120         * dbus/dbus-protocol.h:
13121         * dbus/dbus-test.c: (main):
13122         * dbus/dbus-test.h:
13123         Add un-optimized marshalling/demarshalling routines.
13124
13125 2002-12-25  Harri Porten  <porten@kde.org>
13126
13127         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13128
13129 2002-12-24  Zack Rusin  <zack@kde.org>
13130
13131         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13132         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13133         main loop stuff
13134
13135 2002-12-24  Havoc Pennington  <hp@pobox.com>
13136
13137         * glib/dbus-gthread.c: fix include
13138
13139         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13140         I think glib API needs to change, though, as you don't
13141         want to use DBusMessageFunction, you want to use the
13142         DBusMessageHandler object. Probably
13143         dbus_connection_open_with_g_main_loop()
13144         and dbus_connection_setup_g_main_loop() or something like that
13145         (but think of better names...) that just create a connection
13146         that has watch/timeout functions etc. already set up.
13147
13148         * dbus/dbus-connection.c
13149         (dbus_connection_send_message_with_reply): new function just to
13150         show how the message handler helps us deal with replies.
13151
13152         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13153
13154         * dbus/dbus-string.c (_dbus_string_test): free a string that
13155         wasn't
13156
13157         * dbus/dbus-hash.c: use memory pools for the hash entries
13158         (rebuild_table): be more paranoid about overflow, and
13159         shrink table when we can
13160         (_dbus_hash_test): reduce number of sprintfs and write
13161         valid C89. Add tests for case where we grow and then
13162         shrink the hash table.
13163
13164         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13165
13166         * dbus/dbus-connection.c (dbus_connection_register_handler)
13167         (dbus_connection_unregister_handler): new functions
13168
13169         * dbus/dbus-message.c (dbus_message_get_name): new
13170
13171         * dbus/dbus-list.c: fix docs typo
13172
13173         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13174         an object representing a handler for messages.
13175
13176 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13177
13178         * glib/dbus-glib.h:
13179         * glib/dbus-gthread.c: (dbus_gthread_init):
13180         Don't use the gdbus prefix for public functions.
13181
13182 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13183
13184         * Makefile.am:
13185         * configure.in:
13186         Add GLib checks and fixup .pc files
13187
13188         * glib/Makefile.am:
13189         * glib/dbus-glib.h:
13190         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13191         (gdbus_connection_check), (gdbus_connection_dispatch),
13192         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13193         (dbus_connection_gsource_new):
13194         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13195         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13196         * glib/test-dbus-glib.c: (message_handler), (main):
13197         Add GLib support.
13198
13199 2002-12-15  Harri Porten  <porten@kde.org>
13200
13201         * autogen.sh: check for libtoolize before attempting to use it
13202
13203         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13204         struct.
13205
13206         * .cvsignore: ignore more stamp files
13207
13208         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13209
13210         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13211         without make install.
13212
13213 2002-12-15  Havoc Pennington  <hp@pobox.com>
13214
13215         * dbus/dbus-threads.c: add thread stubs that a higher library
13216         layer can fill in. e.g. the GLib wrapper might fill them in with
13217         GThread stuff. We still need to use this thread API to
13218         thread-safe-ize the library.
13219
13220 2002-12-12  Havoc Pennington  <hp@pobox.com>
13221
13222         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13223         below new interfaces and include fewer system headers.
13224
13225         * dbus/dbus-sysdeps.c (_dbus_read): new function
13226         (_dbus_write): new function
13227         (_dbus_write_two): new function
13228         (_dbus_connect_unix_socket): new function
13229         (_dbus_listen_unix_socket): new function
13230
13231         * dbus/dbus-message-internal.h: change interfaces to use
13232         DBusString
13233
13234 2002-12-11  Havoc Pennington  <hp@pobox.com>
13235
13236         * dbus/dbus-types.h: add dbus_unichar
13237
13238         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13239
13240         * dbus/dbus-connection.c (dbus_connection_send_message): return
13241         TRUE on success
13242
13243         * dbus/dbus-transport.c: include dbus-watch.h
13244
13245         * dbus/dbus-connection.c: include dbus-message-internal.h
13246
13247         * HACKING: add file with coding guidelines stuff.
13248
13249         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13250         handling here, for security purposes (as in vsftpd). Not actually
13251         using this class yet.
13252
13253         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13254         system/libc usage here, as in vsftpd, for ease of auditing (and
13255         should also simplify portability). Haven't actually moved all the
13256         system/libc usage into here yet.
13257
13258 2002-11-25  Havoc Pennington  <hp@pobox.com>
13259
13260         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13261         always print the first verbose message.
13262
13263 2002-11-24  Havoc Pennington  <hp@pobox.com>
13264
13265         * test/echo-client.c, test/echo-server.c: cheesy test
13266         clients.
13267
13268         * configure.in (AC_CHECK_FUNCS): check for writev
13269
13270         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13271         function
13272
13273         * dbus/dbus-list.c (_dbus_list_foreach): new function
13274
13275         * dbus/dbus-internals.c (_dbus_verbose): new function
13276
13277         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13278         representing a server that listens for connections.
13279
13280         * dbus/.cvsignore: create
13281
13282         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13283         public API for reporting errors
13284
13285         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13286         public object representing a connection that
13287         sends/receives messages. (Same object used for
13288         both client and server.)
13289
13290         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13291         Basic abstraction for different kinds of stream
13292         that we might read/write messages from.
13293
13294 2002-11-23  Havoc Pennington  <hp@pobox.com>
13295
13296         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13297         _DBUS_INT_MAX
13298
13299         * dbus/dbus-test.c (main): add list test, and include
13300         dbus-test.h as intended
13301
13302         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13303         (_dbus_hash_table_remove_int): return value indicates
13304         whether the entry existed to remove
13305
13306         * dbus/dbus-list.c: add linked list utility class,
13307         with docs and tests
13308
13309         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13310         array sometimes.
13311
13312 2002-11-23  Havoc Pennington  <hp@pobox.com>
13313
13314         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13315         DBUS_END_DECLS to nothing, that should fix this once and for all
13316
13317         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13318
13319         * dbus/dbus-message.c, dbus/dbus-hash.c:
13320         add some missing @brief
13321
13322 2002-11-23  Havoc Pennington  <hp@pobox.com>
13323
13324         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13325         to avoid confusing Doxygen
13326
13327         * dbus/dbus-hash.c: @} not }@
13328
13329         * dbus/dbus-message.c (struct DBusMessage): split out
13330         internals docs
13331
13332 2002-11-23  Havoc Pennington  <hp@pobox.com>
13333
13334         * configure.in: pile on more warning flags if using gcc
13335
13336         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13337         to document static functions
13338
13339         * configure.in: add summary to end of configure so it
13340         looks nice and attractive
13341
13342         * dbus/dbus-hash.c: finish implementation and write unit
13343         tests and docs
13344
13345         * configure.in: add --enable-tests to enable unit tests
13346
13347         * dbus/dbus-test.c: test program to run unit tests
13348         for all files in dbus/*, initially runs a test for
13349         dbus-hash.c
13350
13351         * dbus/dbus-internals.h: file to hold some internal utility stuff
13352
13353 2002-11-22  Havoc Pennington  <hp@redhat.com>
13354
13355         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13356         "ported" away from Tcl
13357
13358         * dbus/dbus-types.h: header for types such as dbus_bool_t
13359
13360 2002-11-22  Havoc Pennington  <hp@redhat.com>
13361
13362         * dbus/dbus.h: fixups for doc warnings
13363
13364         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13365         macros
13366         (QUIET): make it quiet so we can see warnings
13367
13368         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13369
13370 2002-11-22  Havoc Pennington  <hp@redhat.com>
13371
13372         * Makefile.am: include "Doxyfile" target in all-local
13373
13374         * configure.in: generate the Doxyfile
13375
13376         * Doxyfile.in: move Doxyfile here, so we can use
13377         configure to generate a Doxyfile with the right
13378         version number etc.
13379
13380 2002-11-22  Havoc Pennington  <hp@redhat.com>
13381
13382         * dbus/dbus-message.c: move inline docs into .c file
13383
13384         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13385         so all docs are under doc/
13386         (MAN_EXTENSION): generate man pages. Use extension
13387         ".3dbus" which matches ".3qt" on my system,
13388         I guess this is OK, I don't know really.
13389         (FILE_PATTERNS): look for .c files not .h, makes sense
13390         for plain C I think
13391
13392 2002-11-22  Havoc Pennington  <hp@pobox.com>
13393
13394         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13395         because any app can be a server, and any app can be a client,
13396         the bus is a special kind of server.
13397
13398 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13399
13400         * Doxyfile : adding. Still needs Makefile rules to be generated
13401         automatically (just run "doxygen" in the toplevel dir for now to
13402         generate docs)
13403
13404         * dbus/dbus-message.h : Adding sample docs (javadoc since
13405         resembles gtk-doc a little more)
13406
13407         * dbus/dbus.h : Adding sample docs
13408
13409 2002-11-21  Havoc Pennington  <hp@redhat.com>
13410
13411         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13412         so we can allow ourselves to include files directly,
13413         instead of having to use dbus.h
13414
13415         * dbus/dbus.h: fill in
13416
13417         * dbus/dbus-message.h: sketch out a sample header file.
13418         Include griping if you include it directly instead of
13419         via dbus.h
13420
13421         * dbus/dbus-macros.h: new file with macros for extern "C",
13422         TRUE/FALSE, NULL, etc.
13423
13424         * doc/file-boilerplate.c: put include guards in here
13425
13426 2002-11-21  Havoc Pennington  <hp@redhat.com>
13427
13428         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13429
13430         * COPYING: include the GPL as well, and license code
13431         under both AFL and GPL.
13432
13433 2002-11-21  Havoc Pennington  <hp@redhat.com>
13434
13435         * acconfig.h: get rid of this
13436
13437         * autogen.sh (run_configure): add --no-configure option
13438
13439         * configure.in: remove AC_ARG_PROGRAM to make
13440         autoconf complain less. add AC_PREREQ.
13441         add AC_DEFINE third arg.
13442
13443 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13444
13445         * doc/Makefile.am:
13446         Fix references so we can distcheck.
13447
13448 2002-11-21  Havoc Pennington  <hp@redhat.com>
13449
13450         * Initial module creation
13451