* Adding old doc patch that never got applied
[platform/upstream/dbus.git] / ChangeLog
1 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
2
3         * Adding old doc patch that never got applied
4         
5         * dbus/bus.c (dbus_bus_add_match): Add documentation
6
7         * doc/dbus-specification.xml: Add documentation for the match rules
8           and the AddMatch and RemoveMatch methods
9
10 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
11
12         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
13         call (r535506)
14
15         * qt/dbusidl2cpp.cpp:
16         * qt/qdbusabstractadaptor.cpp:
17         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
18         sibling of the QDBusAbstractAdaptor objects instead of the
19         parent. (r535848)
20
21         * qt/dbusidl2cpp.cpp:
22         * qt/qdbusabstractinterface.cpp:
23         * qt/qdbusabstractinterface.h:
24         * qt/qdbusabstractinterface_p.h:
25         * qt/qdbusinterface.cpp: Make properties in interfaces
26         actually work. The code that was generated would not compile,
27         due to moc calls to functions that did not exist. They now
28         shall. (r536571)
29
30 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
31
32         * Makefile.am:
33         * configure.in:
34         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
35         Thanks to Brad Hards for providing the patch
36
37 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
38
39         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
40         call. (r535506)
41
42 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
43
44         * qt/examples/dbus.cpp: Enhance error messages and use
45         QDBusInterfacePtr.
46
47 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
48
49         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
50         and disable the copy operators. (r533772, r534746)
51
52         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
53
54         * qt/qdbusabstractinterface.cpp:
55         * qt/qdbusabstractinterface.h: Change the default call mode to
56         not use the event loop. Add convenience call() methods that
57         take a CallMode parameter. (r534042)
58
59         * qt/qdbusconnection.h: Change the default call mode to not
60         use the event loop. (r534042)
61
62         * qt/qdbusinterface.cpp:
63         * qt/qdbusinterface.h: Add a method to tell us if the
64         interface is valid (since we don't return a null pointer
65         anymore) (r534099)
66
67         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
68         (r534101)
69
70         * qt/qdbusinternalfilters.cpp: Decouple the introspection
71         function in two so taht we get the chance to introspect
72         without having a QDBusMessage (r534102)
73
74         * qt/qdbusbus.h:
75         * qt/qdbusconnection.cpp:
76         * qt/qdbusconnection_p.h:
77         * qt/qdbusintegrator.cpp: Keep a list of our own names to
78         avoid a round-trip to the server when attempting to introspect
79         one of our own objects. Also make sure the filter functions
80         match the empty interface as well. (r534108)
81         Don't keep the connection names. Instead, trust the unique
82         connection name (r534111)
83         Remove event loop usage (r534112)
84
85 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
86
87         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
88         Brad Hards.
89
90 2005-04-28  Robert McQueen  <robot101@debian.org>
91
92         * glib/dbus-gproxy.c: Fix properties so that they can be given in
93         any order, making it easier for people who inherit from this
94         object.
95
96 2005-04-28  Robert McQueen  <robot101@debian.org>
97
98         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
99         of memory from within pointer arrays and lists. Fixes bug #6300.
100
101 2005-04-28  Robert McQueen  <robot101@debian.org>
102
103         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
104         generating struct signatures. Fixes bug #6083.
105
106 2005-04-28  Robert McQueen  <robot101@debian.org>
107
108         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
109         to qdbusconnection_p.moc.
110
111 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
112
113         * README, INSTALL: Doc fixes
114         Patch from Brad Hards <bradh at frogmouth.net>
115
116 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
117
118         * qt/examples/dbus.cpp: Use the new merged-interface mode for
119         the dynamic meta object. No need to guess which interface to
120         call.
121
122 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
123
124         * qt/qdbusconnection_p.h:
125         * qt/qdbusmetaobject.cpp:
126         * qt/qdbusmetaobject_p.h:
127         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
128         for the dynamic meta object. No need to guess which
129         interface to call.
130         * qt/qdbusabstractinterface_p.h:
131         * qt/qdbusconnection.cpp:
132         * qt/qdbusintegrator.cpp:
133         * qt/qdbusinterface.cpp:
134         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
135         Add a QDBusRef that looks and behaves like DCOPRef.
136
137 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
138
139         * dbus/dbus-connection.c: Interfaces are optional in method
140         calls, so don't give up if the interface parameter is NULL.
141         Patch reviewed by Havoc Pennington.
142
143 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
144
145         * qt/qdbusreply.h: Add default constructor and operator=
146           (r532625)
147         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
148           in public headers (r532952)
149         * qt/qdbusabstractinterface.cpp:
150         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
151           make it the default (r532951)
152
153 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
154
155         * dbus/dbus-connection.c: Fix asserts
156         Patch from Tim Moloney <t.moloney at verizon.net>
157
158 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
159
160         * mono/Connection.cs, mono/Message.cs: Check Target type
161         Patch from Aaron Bockover (abockover at novell.com)
162
163 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
164
165         * INSTALL: fine-tune the requirements for the Qt4 binding.
166
167 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
168
169         * tools/dbus-print-message.c: Added support for printing of all 
170           remaining data types. Fixed logic for indentation of compound
171           data types.
172         
173 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
174
175         * INSTALL: fill out content of file providing DBus specific
176           build installations, followed by generic Auto* INSTALL file
177           content
178         
179 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
180
181         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
182           Patch by Stefan Eilers. (r529537)
183
184 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
185
186         * qt/qdbusinternalfilters.cpp: Don't show the parent's
187           contents (r528208)
188
189 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
190
191         * qt/Makefile.am: fix the dependency for
192           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
193           not in qdbusconnection.cpp.
194           Thanks to Jakub Stachowski <stachowski@hypair.net> for
195           spotting this.
196
197 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
198
199         * qt/examples/listnames.cpp:
200         * qt/examples/Makefile.am: Three ways to list the names on the
201           bus.
202
203 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
204
205         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
206           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
207
208 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
209
210         Merge from Subversion:
211         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
212           something that exists (r526315)
213         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
214           slots/signals (r526316)
215         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
216           also return an unknown-method error if the parameters don't
217           match for org.freedesktop.DBus.Properties. (r526842)
218         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
219         * qt/qdbusintegrator.cpp: Restore the proper order of
220           delivery: don't make method returns be delivered on priority
221           (r528150)
222
223 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
224
225         * configure.in qt/Makefile.am: add qt/examples
226         * qt/examples: Add QtDBus example programs:
227           - hello: Hello, World
228           - ping: Simple method-calling program
229           - pong: Simple object-exporting program (not using adaptors)
230           - complexping: Interactive method-calling program 
231                 (also gets and sets properties).
232           - complexpong: Sample program exporting methods, signals and
233                 properties, using adaptors.
234           - dbus: Simple implementation of a generic method-calling
235                 program, similar to 'dbus-send', but with semantics
236                 similar to 'dcop'.
237           - chat: Simplistic chat program, implemented using signals
238                 and the system bus. Looks like IRC.
239
240 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
241
242         * configure.in: Detect QtGui (necessary for one of the
243           example programs). Note: this increases the minimum required
244           version of Qt to 4.1.3.
245
246 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
247
248         * test/qt/*: Sync with KDE Subversion revision 523647.
249         Update the testcases to the new API. Remove testcases for
250         classes that are no longer public or have been removed.
251
252 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
253
254         * qt/*: 
255         * dbus/qdbus.h: Sync with KDE Subversion revision
256         523647. Hopefully, this will be the last of the
257         source-incompatible changes. Documentation has been improved;
258         support for QList<basic-types> has been added; QDBusObject is
259         gone; QDBus(Abstract)Interface is now a QObject with
260         auto-generated meta-object; QDBusIntrospection is marked
261         private, since QMetaObject can be used now; lots of bugfixes.
262
263 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
264
265         Patch from Milosz Derezynski <internalerror at gmail.com>
266         
267         * configure.in:
268         Output the service directory in the configure summary
269
270         * dbus-1.pc.in:
271         Add session_bus_services_dir
272
273 2006-03-10  Ross Burton  <ross@openedhand.com>
274
275         * tools/dbus-print-message.c:
276         Add support for object paths and signatures.
277
278 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
279
280         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
281         config reload.
282         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
283         information caches
284         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
285         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
286         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
287         * dbus/dbus-userdb.h: Add function to flush all user/group information
288         caches.
289
290 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
291
292         * qt/dbusidl2cpp.cpp:
293         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
294         for dcopidl2cpp, found in the KDE installations (or the more
295         modern kalyptus): generate Qt4 C++ code for the input XML
296         introspection. Currently no IDL parsing.
297
298 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
299
300         * test/qt/*: Update the self-tests.
301
302 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
303
304         * qt/*: 
305         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
306         represents the first feature-complete version of the Qt4
307         bindings since I took ove maintainership.
308
309 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
310
311         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
312         dir. This is C++, so we can't use the DBus ones.
313
314 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
315
316         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
317         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
318
319 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
320
321         * dbus/dbus-connection.c: 
322         (_dbus_connection_block_pending_call):
323         Check to see if our data has already been read off the connection
324         by another blocking pending call before we block in poll.
325         (check_for_reply_and_update_dispatch_unlocked):
326         Code taken from _dbus_connection_block_pending_call - checks for
327         an already read reply and updates the dispatch if there is one.
328
329         * test/name-test/test-pending-call-dispatch.c:
330         New test for making sure we don't get stuck polling a 
331         dbus connection which has no data on the socket when
332         blocking out of order on two or more pending calls.
333
334 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
335
336         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
337         make/automake don't detect that we're talking about the same
338         .lo file if I specify the full path to the source files.
339
340 2006-02-26  Havoc Pennington  <hp@redhat.com>
341
342         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
343
344         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
345         session bus variable is unset, suggest "man dbus-launch" and "man
346         dbus-daemon" to figure out how to fix the problem
347
348 2006-02-25  Havoc Pennington  <hp@redhat.com>
349
350         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
351         should make this thing use the new glib options parser
352
353 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
354
355         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
356         .lo files taking moc sources.
357
358 2006-02-25  Havoc Pennington  <hp@redhat.com>
359
360         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
361         and install it as a public header
362
363 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
364
365         * Released 0.61
366
367 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
368         
369         * proxies.py: Fix the callchain
370
371 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
372         
373         * patch from Sjoerd Simons <sjoerd at debian.org>:      
374
375         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
376         dbus/dbus-sysdeps.c
377
378         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
379         call _dbus_group_info_free_allocated which causes infinite loop,
380         correctly call _dbus_group_info_free
381
382 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
383
384         * qt/qdbusinterface_p.h:
385         * qt/qdbusinterface.cpp: Use the standard
386         org.freedesktop.DBus.Method.NoReply annotation for the "async"
387         calls instead of creating one for us.
388
389         * qt/qdbusconnection_p.h:
390         * qt/qdbusintegrator.cpp: Remove debugging code.
391
392         * qt/qdbusintegrator.cpp:
393         * qt/qdbusmessage.cpp:
394         * qt/qdbusmessage_p.h:
395         * qt/qdbusmessage.h: Change the behaviour of automatic
396         reply-sending: now a reply is always sent, unless the caller
397         didn't request one or if the user slot has already sent one.
398
399 2006-02-16  Robert McQueen  <robot101@debian.org>
400
401         * configure.in: Patch from Debian packages by Sjoerd Simons
402         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
403         arguments so it's possible to build both bindings in the
404         same tree.
405
406         * qt/Makefile.am: Fix truncated value so that make dist works.
407
408 2006-02-16  Robert McQueen  <robot101@debian.org>
409
410         * acinclude.m4, configure.in: Patch from Brad Hards
411         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
412         improving quoting, re-ordering a few checks, and a few other
413         aesthetic tidy-ups.
414
415 2006-02-16  Robert McQueen  <robot101@debian.org>
416
417         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
418         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
419         assertion that the next element to read from the iter is fixed in
420         size. This is not the case when you are at the end of the iter,
421         because the next element type is INVALID.
422
423         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
424         a bogus assert which means that you may not initialise a 0-length
425         string unless you provide a non-NULL pointer. This prevented
426         you from marshalling messages containing zero-length arrays in
427         some cases.
428
429         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
430         from Rob to correct bogus asserts when trying to demarshal an
431         array and get_fixed_array got you 0 elements. Append nothing to
432         the GArray in this case.
433
434         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
435         an empty array via the glib bindings. Without all of the above
436         patches, this new test fails.
437
438 2006-02-16  Robert McQueen  <robot101@debian.org>
439
440         * glib/dbus-gmain.c: Make the previous commit compile.
441
442         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
443         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
444         specify sender_keyword="foo", path_keyword="bar" when adding
445         a signal listener, so that you can bind to signals generically
446         but still do something useful in your callback.
447
448         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
449         chars so that they're not cast to chars and made negative. Thanks
450         to Jakub Stachowski for reporting this and testing the fix.
451
452 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
453
454         * dbus/dbus-glib.h:
455         * glib/dbus-gmain.h:
456         (dbus_g_connection_open): new method for openning
457         a connection to an arbitrary address in the glib bindings
458
459         * ChangeLog: checkin last entry which doesn't seem to be commited
460
461 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
462
463         * tools/dbus-launch.c: Fixed sh syntax output
464
465 2006-02-13  Robert McQueen  <robot101@debian.org>
466
467         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
468         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
469         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
470         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
471         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
472         missing piece of the glib bindings jigsaw puzzle. This modifies
473         the existing specialised types to have N type parameters (rather
474         than the current 1 or 2 for arrays and dictionaries respectively).
475         You can then use this to get a glib type to represent any arbitrary
476         D-Bus struct type using dbus_g_type_get_struct. The only
477         implementation of these types is with GValueArrays as before,
478         but it's now possible to store these in arrays, emit them in
479         signals, etc.
480
481 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
482
483         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
484         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
485         <thiago.macieira at trolltech.com>
486
487 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
488
489         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
490         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
491
492 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
493
494         * bus/connection.c (bus_connections_expect_reply): Make
495         pending reply limit not common to all connections (Bug #5416)
496         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
497
498 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
499
500         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
501
502 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
503
504         * gcj/Makefile.am: point to correct jar command (Bug #4529)
505         patch from Doug Goldstein <cardoe at gentoo.org>
506
507 2006-02-09  Joe Shaw  <joeshaw@novell.com>
508
509         * mono/Arguments.cs: Fix a magic number in the mono bindings
510         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
511
512 2006-01-27  Robert McQueen  <robot101@debian.org>
513
514         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
515         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
516         when generating the client-side methods, instead of overloading
517         CSymbol which broke everything horribly. My apologies.
518
519 2006-01-27  Robert McQueen  <robot101@debian.org>
520
521         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
522         by me and Rob Taylor to add a simple_free function to D-Bus map
523         and collection types, which allows those types which can be freed
524         with a GDestroyNotify (such as GHashTables and GArrays, but not
525         GPtrArrays) to be stored as the values in hashtables.
526
527         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
528         Patch by Rob Taylor to add nested dicts to the glib tests to check
529         the above code works, and appears not to leak when called repeatedly.
530
531 2006-01-27  Robert McQueen  <robot101@debian.org>
532
533         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
534         to free a D-Bus allocated string with dbus_free () instead of
535         g_free ().
536
537 2006-01-27  Iain Holmes  <iain@openedhand.com>
538
539         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
540         method from being called multiple times.
541
542 2006-01-19  Robert McQueen  <robot101@debian.org>
543
544         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
545         <rob.taylor@collabora.co.uk> to add support for generating bindings
546         to arrays that are represented as GPtrArrays rather than GArrays (ie
547         size-variable things, such as strings, objects, structs, etc).
548
549 2006-01-05  Robert McQueen  <robot101@debian.org>
550
551         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
552         <ricardo.kekki@movial.fi> to make it possible to inherit from
553         DBusGProxy, by splitting the DBusGProxy struct into a public part and
554         a private part, and moving the setting of the DBusGProxyManager into a
555         connection property, allowing proper GObject construction.
556
557 2006-01-05  Robert McQueen  <robot101@debian.org>
558
559         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
560         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
561         annotations when generating glib client bindings.
562
563 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
564
565         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
566
567         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
568
569 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
570
571         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
572
573 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
574
575         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
576
577 2005-12-19  Ross Burton  <ross@openedhand.com>
578
579         * doc/dbus-tutorial.xml:
580         Document the Glib client-side bindings, and list all possible annotations.
581
582 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
583
584         * dbus/bus.c (dbus_bus_release_name): Add documentation
585
586 2005-12-06  Robert McQueen  <robot101@debian.org>
587
588         * python/service.py: s/sucessful/successful/ so we're allocating to
589         and reading from the same variable. Oops.
590
591 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
592
593         * Released 0.60
594
595 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
596
597         * test/qt/Makefile.am: build from srcdir
598
599         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
600         Note - this code is wrong and needs to be fixed by the Qt binding
601         developers.  The flags should be treated as bitfields and not enums.
602
603         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
604
605 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
606
607         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
608           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
609           in production code
610
611 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
612
613         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
614         method for getting messages off the bus in the absence of a
615         mainloop.  This method is much like 
616         dbus_connection_read_write_dispatch except it does not dispatch
617         the messages to a registered filter function.  Instead it
618         allows a developer to process messages by directly popping
619         them off the bus.
620
621 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
622
623         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
624         the parser to continue instead of returning error
625         (bus_desktop_file_load): Do not free parser data when
626         parse_section_start or parse_key_value fails because it was 
627         already freed by parser_free (patch from Carlos Garcia Campos  
628         <carlosgc at gnome.org>)
629
630 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
631
632         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
633         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
634         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
635         test/test-segfault.c, test/test-utils.c,
636         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
637         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
638         Various cleanup of dead code and compiler warnings (patch from
639         Kjartan Maraas <kmaraas at gnome.org>) 
640
641 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
642
643         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
644         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
645
646 2005-11-27  Robert McQueen  <robot101@debian.org>
647
648         * python/dbus_bindings.pyx: Repair my previous commit which reverted
649         part of the preceding one. Oops. Merge patch by Johan Hedberg
650         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
651         on big-endian platforms.
652
653         * test/python/test-client.py: Add some 16-bit integers to the test
654         values.
655
656 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
657
658         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
659         method return message for property getters
660
661 2005-11-27  Robert McQueen  <robot101@debian.org>
662
663         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
664         with type v of an instance of dbus.Variant(foo, type='x') caused
665         it to be boxed twice before sending over the bus.
666
667         * python/dbus_bindings.pyx, python/service.py,
668         test/python/test-client.py: Update the constants for the new
669         request_name flags, and update comments/test cases now that queueing
670         is the default action.
671
672 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
673
674         * configure.in:
675         - Change version to 0.60 for impending release
676         - upped the sonames because of ABI and API breakage
677
678 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
679
680         * configure.in: Add test/name-test/Makefile to the generated
681         Makefile list
682
683         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
684         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
685         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
686         not to queue an ower if it can't be the primary owner
687
688         * bus/bus.h: Add new internal BusOwner struct
689
690         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
691         to bus_registry_ensure and don't set the prohibit_replacement flag
692         since they are now set per BusOwner and not per name.
693         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
694         that returns the list of connections in a name's connection queue
695         
696         * bus/services.c (struct BusService): remove prohibit_replacement field
697         (struct BusOwner): new struct for keeping track of queued connections
698         and their associated flags for the queue
699         (struct BusRegistry): add a BusOwner memory pool
700         (bus_registry_new): initialize the BusOwner memory pool
701         (bus_registry_unref): free the BusOwner memory pool
702         (_bus_service_find_owner_link): new internal method for
703         searching the queue for a specific connection
704         (bus_owner_set_flags): new method for adding setting the flags on a
705         bus owner
706         (bus_owner_new): new method that creates a BusOwner object from the
707         pool and sets its flags
708         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
709         (bus_registry_ensure): Add the flags parameter
710         (bus_registry_acquire_service): Switch from using raw connections to
711         using the BusOwner struct
712         Add new state machine for dealing with the new set of flags
713         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
714         cancel_ownership, free_ownership_cancel_data, 
715         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
716         restore_ownership, free_ownership_restore_data, 
717         add_restore_ownership_to_transaction): Switch to using BusOwner 
718         instead of raw connections
719         (bus_service_add_owner): Add flags parameter
720         Switch to using BusOwner instead of raw connections
721         Add state machine for dealing with the new set of flags
722         (bus_service_swap_owner): Swaps the first and second owners in the
723         queue.  Used to make sure proper signals are sent when a service looses 
724         or gains primary ownership.  We never insert an owner at the top of the
725         queue.  Instead we insert it in the second position and then swap.
726         (bus_service_remove_owner): Remove the owner from the queue sending
727         out the NameLost and NameOwnerChanged signals if the we were the 
728         primary owner
729         (bus_service_get_primary_owners_connection): New method that extracts
730         the connection from the primary owner
731         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
732         connection
733         (bus_service_get_allow_replacement): Changed from the old 
734         bus_service_get_prohibit_replacement method.  Checks the flags of the 
735         primary owner and returns if it can be replaced or not
736         (bus_service_set_prohibit_replacement): removed
737         (bus_service_has_owner): returns TRUE if and owner with
738         the specified connection exists in the queue
739         
740         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
741         method that only compiles if tests are enabled.  Allows us to get the 
742         unique name of a connection so we can check it against the queue when
743         doing regression tests
744
745         * bus/activation.c (bus_activation_send_pending_auto_activate),
746         bus/dispatch.c (bus_dispatch),  
747         bus/driver.c (bus_driver_handle_get_service_owner, 
748         bus_driver_handle_get_connection_unix_user, 
749         bus_driver_handle_get_connection_unix_process_id,
750         bus_driver_handle_get_connection_selinux_security_context),
751         bus/signals.c (connection_is_primary_owner): 
752         use bus_service_get_primary_owners_connection instead of
753         bus_service_get_primary_owner
754
755         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
756         _dbus_listen_unix_socket): Calculate the length of the socket
757         path and use that instead of using a fixed length which was
758         causing socket names to contain many trailing Nul bytes.
759
760         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
761         (dbus_g_method_get_sender): New method for extracting the sender 
762         from a DBusGMethodInvocation
763         (dbus_g_method_return_get_reply): changed name to 
764         dbus_g_method_get_reply
765         (dbus_g_method_return_send_reply): changed name to
766         dbus_g_method_send reply
767
768         * doc/dbus-specification.xml: New docs that describe how the new
769         queueing system works and talks about the changes to the how
770         we specify socket names
771
772         * glib/examples/example-service.c, 
773         glib/examples/example-signal-emitter.c,
774         glib/examples/statemachine/statemachine-server.c:
775         Changed the RequestName flags to the new system
776
777         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
778         regression test suite for testing various states of the new
779         queueing system
780         
781 2005-11-15  Robert McQueen  <robot101@debian.org>
782
783         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
784         Taylor to add two methods, dbus_g_method_return_get_reply and
785         dbus_g_method_return_send_reply, to allow you to get the reply
786         message from a DBusGMethodInvocation, append arbitrary stuff to it,
787         and send it. The GLib bindings can't marshal a return value of
788         something like a(s) if the array is empty - ultimately they should be
789         made to heed the signature of the out arguments as the Python bindings
790         now can, but this is a workable interim solution which might have
791         other applications.
792
793 2005-11-15  Robert McQueen  <robot101@debian.org>
794
795         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
796         method to org.freedesktop.DBus to release a bus name or give up
797         waiting in the queue for it.
798
799         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
800         dbus_bus_release_name method to send the ReleaseName method calls.
801         Add constants for the return values to dbus/dbus-shared.h.
802
803         * doc/dbus-specification.xml: Document the new ReleaseName method
804         in the specification.
805
806         * python/dbus_bindings.pyx: Add a low-level python binding for the
807         release name method.
808
809         * python/exceptions.py, python/service.py: Make freeing BusName
810         objects release the name. Add a NameExistsException, and fix a
811         bug with creating UnknownMethodException.
812
813         * test/python/test-client.py: Add tests for freeing BusName
814         objects causing names to be released.
815
816 2005-11-14  Robert McQueen  <robot101@debian.org>
817
818         * python/service.py: Include the traceback in the error reply when we
819         send an exception over the bus. _BEST_ _PATCH_ _EVER_
820
821 2005-11-14  David Zeuthen  <davidz@redhat.com>
822
823         Patch from Timo Hoenig <thoenig@suse.de>.
824
825         * bus/bus.c: I've recently investigated why the automatic reload
826         of configuration files does not work as expected.
827
828         Currently, reloading configuration files does only work when
829         running dbus-daemon with --nodaemon.  If we are running as daemon
830         we're hitting a dnotify bug once we fork the process.
831
832         We're initializing the dnotify fds before calling fork().  Once
833         the child process forked it does still have the fds (and they
834         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
835         getting SIGIO as changes are made to the configuration files.
836
837         The attached patch moves the initialization of the dnotify fds to
838         process_config_postinit().  This is safe for all current code
839         paths and solves the dnotify disfunction.  If we're running
840         dbus-daemon as daemon the fds for dnotify are now being
841         initialized after fork() for the child process.
842
843         * configure.in: The current configure.in check for dnotify probes
844         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
845         match for 'xlinux', too. Additionally I have adapted the configure
846         option's style to match with the others.
847
848 2005-11-14  Robert McQueen  <robot101@debian.org>
849
850         * python/decorators.py, python/service.py: Add a new argument to the
851         dbus.service.method decorator called sender_keyword, which if set,
852         specifies the name of an argument which will be provided the bus
853         name of the method caller.
854
855         * test/python/test-client.py, test/python/test-service.py: Add a
856         method and test to check the sender_keyword functionality.
857
858 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
859
860         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
861         empty reply so blocking calls don't block forever (Patch from Sjoerd 
862         Simons <sjoerd at luon.net>)
863
864         * AUTHORS: Add Robert McQueen for his work on the Python
865         Bindings and other parts of D-Bus
866
867 2005-11-07  Robert McQueen  <robot101@debian.org>
868
869         * python/decorators.py: Change emit_signal function to use the
870         signature annotation of the signal when marhsalling the arguments from
871         the service. Fix a bug where the code checking signature length
872         against argument length referenced the wrong variable.
873
874         * python/introspect_parser.py: Avoid adding the type signature of
875         signal arguments to any methods which occur after them in the
876         introspection data (!) by making the parser a little more careful
877         about its current state.
878
879         * python/service.py: Remove debug prints from last commit (again :D).
880
881         * test/python/test-client.py, test/python/test-service.py: Add test
882         signals with signature decorators to test the strict marshalling code
883         gives errors at the right time. Could do with checking the signals
884         actually get emitted too, given that the test does nothing with
885         signals at the moment...
886
887 2005-11-07  Robert McQueen  <robot101@debian.org>
888
889         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
890         instances to stop madness of creating new instances representing
891         the same bus connection all the time, rendering any tracking of
892         match rules and bus names quite meaningless. Caught a bug where
893         the private argument to SessionBus() and friends was being passed
894         in as use_default_mainloop by mistake. Still some problems with
895         multiple dbus_binding.Connection instances representing the same
896         low-level connection (eg when you use both SessionBus() and
897         StarterBus() in same process), but it's a lot better now than it
898         was.
899
900         * python/dbus_bindings.pyx: Add constants with the return values
901         for bus_request_name().
902
903         * python/service.py: Store bus name instances in a per-dbus.Bus cache
904         and retrieve the same instances for the same name, so deletion can be
905         done with refcounting. Also now throws some kind of error if you
906         don't actually get the name you requested, unlike previously...
907
908         * test/python/test-client.py: Add tests for instance caching of buses
909         and bus name objects.
910
911 2005-11-04  Robert McQueen  <robot101@debian.org>
912
913         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
914         marshalling of boolean values. Add some booleans to the values in
915         the test client.
916
917         * python/decorators.py, python/service.py: Add an 'async_callbacks'
918         argument to the dbus.service.method decorator, which allows you to
919         name arguments to take two callback functions for replying with
920         return values or an exception.
921
922         * test/python/test-client.py, test/python/test-service.py: Add test
923         case using asynchronous method reply functions, both return values and
924         errors, and from within both the function itself and from a mainloop
925         callback.
926
927         * python/decorators.py, python/service.py: Perform checking that the
928         number of method/signal arguments matches the number of types in the
929         signature at class loading time, not when you first introspect the
930         class.
931
932         * python/service.py: Remove debug print left by the last commit.
933
934 2005-11-03  Robert McQueen  <robot101@debian.org>
935
936         * python/service.py: Heavy refactoring of method invocation, with
937         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
938         in favour of a new _message_cb that uses seperate functions for
939         looking up the method to call, marshalling the return values, and
940         sending exceptions as errors, and is easier to follow as a
941         consequence.  Fixes some corner cases about returning things that
942         don't match your declared out_signature, allows exceptions to define
943         _dbus_error_name and have it be sent over the bus as the error name,
944         and paves the way for cool stuff like heeding the message no reply
945         flag, asynchronous method implementations, informing the method of the
946         sender, and including backtraces in the error messages.
947
948         * test/python/test-client.py: Catch and print exceptions thrown in the
949         async callback tests, rather than passing them to the low-level
950         bindings to be ignored in a noisy and frustrating manner.
951
952 2005-11-03  Robert McQueen  <robot101@debian.org>
953
954         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
955         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
956         tweak others to be consistent.
957
958         * test/python/test-client.py: Tweak output of testInheritance.
959
960 2005-10-29  Robert McQueen  <robot101@debian.org>
961
962         * python/service.py: Major changes to allow multiple inheritance
963         from classes that define D-Bus interfaces:
964         
965          1. Create a new Interface class which is the parent class of
966             Object, and make the ObjectType metaclass into InterfaceType.
967         
968          2. Patch written with Rob Taylor to replace use of method_vtable
969             with code that walks the class's __MRO__ (method resolution order)
970             to behave like Python does when invoking methods and allow
971             overriding as you'd expect. Code is quite tricky because
972             we have to find two methods, the one to invoke which has the
973             right name and isn't decorated with the /wrong/ interface,
974             and the one to pick up the signatures from which is decorated
975             with the right interface.
976         
977             The same caveats apply as to normal multiple inheritance -
978             this has undefined behaviour if you try and inherit from two
979             classes that define a method with the same name but are
980             decorated with different interfaces. You should decorate
981             your overriding method with the interface you want.
982         
983          3. Replace grungy introspection XML generation code in the metaclass
984             with dictionaries that cope correctly with multiple inheritance
985             and the overriding of methods. This also uses the signature
986             decorations to provide correct introspection data, including
987             the debut appearance of the types of your return values. :D
988
989         * test/python/test-client.py, test/python/test-service.py: Add a test
990         case to try invoking an method that overrides one inherited from a
991         D-Bus interface class.
992
993 2005-10-29  Robert McQueen  <robot101@debian.org>
994
995         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
996         Add checking for the end of struct character when marshalling a
997         struct in MessageIter.append_strict.
998
999         * python/examples/example-service.py,
1000         python/examples/gconf-proxy-service.py,
1001         python/examples/gconf-proxy-service2.py: Update to use gobject
1002         mainloop directly rather than appearing to depend on gtk.
1003
1004         * python/test/test-client.py, python/test/test-server.py: Remove
1005         obsolete and broken test scripts for old bindings. We have up to date
1006         and working tests in test/python/.
1007
1008 2005-10-29  Robert McQueen  <robot101@debian.org>
1009
1010         * python/decorators.py: Add optional arguments to the method and
1011         signal decorators to allow you to specify the signature of arguments
1012         and return values. Preserve the doc strings of signal functions in the
1013         decorated version, for pydoc and friends.
1014
1015         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1016         parse_signature_block function with an iterable dbus.Signature()
1017         type. Fix a bug in MessageIter.append_strict where you could append
1018         anything by claiming it was a string.
1019
1020         * python/service.py: Use the out_signature decoration on methods to
1021         marshal return values, meaning you no longer require dbus.Array()
1022         or dbus.Dictionary() to indicate the type when returning empty
1023         arrays or dictionaries. Fix a bug where exceptions which are defined
1024         in __main__ are not turned into error replies.
1025
1026         * test/python/test-client.py, test/python/test-service.py: Add test
1027         for correct marshalling of return values according to out_signature.
1028         Fix a bug in the async call test where the error_handler is missing a
1029         self argument.
1030
1031 2005-10-29  Robert McQueen  <robot101@debian.org>
1032
1033         * glib/Makefile.am, glib/examples/Makefile.am,
1034         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1035         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1036
1037         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1038
1039         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1040         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1041         the command line.
1042
1043 2005-10-27  Ross Burton  <ross@openedhand.com>
1044
1045         * dbus/dbus-marshal-header.c:
1046         Remove dead code.
1047
1048         * glib/dbus-gobject.c:
1049         Stop compiler warning.
1050
1051 2005-10-25  Ross Burton  <ross@openedhand.com>
1052
1053         * dbus/dbus-auth.c:
1054         * dbus/dbus-server-unix.c:
1055         * dbus/dbus-transport-unix.c:
1056         * glib/dbus-gmain.c:
1057         * glib/dbus-gobject.c:
1058         Add some const keywords.
1059
1060 2005-10-25  Ross Burton  <ross@openedhand.com>
1061
1062         * doc/dbus-specification.xml:
1063         Document the NoReply annotation.
1064
1065         * glib/dbus-binding-tool-glib.h:
1066         * glib/dbus-binding-tool-glib.c:
1067         Respect the NoReply annotation.
1068
1069 2005-10-24  Robert McQueen <robot101@debian.org>
1070
1071         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1072         derive from unicode instead of str, and encode/decode UTF-8 when
1073         marshalling/unmarshalling bus messages
1074
1075         * python/introspect_parser.py: encode introspection data as UTF-8
1076         before passing the buffer into libxml2
1077
1078         * test/python/test-client.py: add unicode test strings
1079
1080         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1081         ignore generated python test files
1082
1083 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1084
1085         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1086         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1087         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1088
1089         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1090         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1091         when constructing struct signatures
1092
1093         * python/_dbus.py (Bus): handle private connections using the
1094         private keyword in the constructor. defaults to private=False
1095         (Bus::close): new method to close a connection to the bus
1096
1097         * python/dbus_bindings.pyx (Connection::close): renamed method
1098         was previously called disconnect
1099         (bus_get): now supports getting a private connection
1100
1101         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1102         keyword is set to True.  if it is, execute the method without waiting
1103         for a reply
1104         (ProxyObject::_introspect_execute_queue): new method for executing
1105         all the pending methods that were waiting for the introspect to
1106         finish.  this is called when introspect either succeeds or fails
1107         (ProxyObject::_introspect_error_handler): call queued methods
1108
1109 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1110
1111         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1112         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1113
1114         * python/service.py (Object::_message_cb): handle exceptions correctly
1115         by sending them over the wire to the calling app.  This makes sure
1116         the client returns immediately instead of waiting the 15 seconds to
1117         timeout.
1118
1119         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1120         Add a test to benchmark how long it takes to introspect a service and 
1121         call a method which returns a large element (pretty fast)
1122
1123         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1124         method which pushes a lot of data
1125
1126 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1127
1128         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1129         reclaim memory outside of the loop and use del istead of just setting
1130         the key to None
1131
1132 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1133
1134         * python/service.py (ObjectType::_reflect_on_signal): Always close
1135         signal tag even when there are no arguments
1136
1137 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1138
1139         * configure.in: Set mono, mono-docs and Qt3 to default
1140         to no instead of auto when building.  These bindings do not
1141         have full time maintainers and will not be supported for the
1142         1.0 release.
1143
1144 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1145
1146         patches from Michael Krivoruchko <misha at sun.com>: 
1147         
1148         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1149         _dbus_connection_message_sent, 
1150         _dbus_connection_send_preallocated_unlocked_no_update, 
1151         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1152         is NULL when calling _dbus_verbose
1153
1154         * configure.in: check for functions getpeerucred and getpeereid
1155
1156         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1157         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1158         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1159         Patch was only tested on Solaris 10 x86 so it might be issues
1160         with other platforms (i.e. BSDs and MacOSX)
1161         
1162
1163 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1164
1165         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1166         instead of marshal basic so we can handle recursive types in a variant
1167
1168         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1169         in variants
1170
1171         * test/glib/test-service-glib.c, test-service-glib.xml
1172         (my_object_echo_variant [EchoVariant], 
1173         my_object_process_variant_of_array_of_ints123
1174         [ProcessVariantOfArrayOfInts123]): 
1175         Add two test methods
1176
1177         * python/introspect_parser.py: New module for parsing introspect
1178         data.
1179
1180         * python/dbus_bindings.pyx:
1181         (various places): when throwing errors fix to use errormsg instead 
1182         of message local variable because Pyrex can get confused with other 
1183         message variables (initial patch by Robert McQueen 
1184         <robert.mcqueen at collabora.co.uk>)
1185         (MessageIter::parse_signature_block): new method for getting the next
1186         block in a signiture.
1187         (MessageIter::append_strict): new method for appending values strictly
1188         using the passed in signature instead of guessing at the type
1189         (MessageItter:: append_dict, append_struct, append_array): use 
1190         signatures to marshal children if the signature is available
1191         
1192         * python/exceptions.py (IntrospectionParserException): new exception
1193
1194         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1195         introspected signatures if available, else we fall back to the
1196         old way of doing things.
1197         (ProxyObject::_introspect_reply_handler ): parse introspection data
1198         
1199         * python/service.py (ObjectType::_reflect_on_method): Properly
1200         terminate <method> if there are no args in the reflection data
1201
1202         * test/python/test-client.py: add tests for talking with the GLib
1203         test server.  This gives us better coverage for introspection since
1204         python to python will always generate arguments as variants.  It also
1205         allows us to test the robustness of the GLib bindings and interlanguage
1206         communications.
1207
1208         
1209 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1210
1211         * bus/driver.c (bus_driver_handle_introspect): Add signals
1212         to the introspect data. (patch from Daniel P. Berrange 
1213         <dan at berrange.com>)
1214
1215         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1216         
1217         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1218         _dbus_connection_run_builtin_filters): Changed these to
1219         be unlock_no_update functions and call 
1220         _dbus_connection_send_unlocked_no_update instead of
1221         dbus_connection_send to avoid locking errors.
1222         
1223         * doc/TODO: Removed the make Ping test TODO
1224         
1225 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1226
1227         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1228         We now copy the message from a DBusError and then free 
1229         the error object befor throwing the error
1230
1231         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1232         DBusBindingOutputMode enum which was causing a warning.
1233         #include <time.h> so using time_t is explicitly defined
1234
1235 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1236
1237         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1238         - dbus/dbus-bus.c
1239         (internal_bus_get): new method that take over the heavy lifting
1240         of dbus_bus_get and adds the ability to get a private connection
1241         to the bus
1242         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1243         interface as in previous versions
1244         (dbus_bus_get_private): new method that is a wrapper to 
1245         internal_bus_get to get a private connection to the bus
1246
1247         - dbus/dbus-bus.h
1248         (dbus_bus_get_private): add as a public libdbus interface
1249
1250         - dbus-1.pc.in: output system_bus_default_address and 
1251         sysconfdir variables so apps can use them when compiling
1252
1253 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1254         * dbus/qt: New Qt bindings
1255
1256 2005-09-12  Waldo Bastian  <bastian@kde.org>
1257
1258         * dbus/dbus-marshal-validate.c,
1259         doc/dbus-specification.xml, test/Makefile.am,
1260         test/test-names.c: allow hyphens in bus names.
1261
1262 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1263
1264         * test/data/auth/fallback.auth-script: we don't
1265         retry the EXTERNAL method when we know its going
1266         to fail anymore.
1267
1268 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1269
1270         * dbus/dbus-connection-internal.h: rename
1271         (add|remove|toggle)_(watch|timeout) to unlocked()
1272         
1273         * dbus/dbus-connection.c: ditto.
1274         
1275         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1276         Update some callers for the renaming.
1277
1278 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1279
1280         * dbus/dbus-auth.c: (record_mechanisms): don't
1281         retry the first auth mechanism because we know
1282         we're just going to get rejected again.
1283         
1284         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1285         Fix thinko ... and what a nasty little bugger to
1286         track down you were ...
1287
1288         * dbus/dbus-connection.c:
1289         (_dbus_connection_add_watch),
1290         (_dbus_connection_remove_watch): add note about
1291         these needing the connection to be locked.
1292         (_dbus_connection_get_dispatch_status_unlocked):
1293         set status to DATA_REMAINS when we queue the
1294         disconnected message.
1295         
1296         * bus/dispatch.c:
1297         (bus_dispatch): fix warning.
1298         (check_existent_service_no_auto_start):
1299         Expect ChildSignaled error too.
1300         (check_existent_hello_from_self): fix another
1301         couple of warnings.
1302         
1303 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1304
1305         Patches from James Willcox <snorp@snorp.net>
1306
1307         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1308
1309         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1310         support array "out" parameters.
1311
1312         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1313         for 16-bit int support.
1314
1315 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1316
1317         * Released 0.50
1318
1319         * Patch from Steve Grubb:
1320         - bus/activation.c (bus_activation_service_reload_test): clean up
1321         some indentation
1322         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1323         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1324         buffer overflows in the test suite.  This is non critical because
1325         it can not be exploited and this code is only run when doing a 
1326         make check.
1327
1328         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1329         - configure.in: Don't check and link against kdecore, only qt headers
1330         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1331         - gcj/org/freedesktop/dbus/Makefile.am:
1332         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1333         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1334         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1335         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1336         - tools/Makefile.am: Add platform extentions to binaries 
1337         (i.e. .exe on windows)
1338
1339         * configure.in: 
1340         - Make it so if no suitable version of python is found we only 
1341         disable building python instead of exiting the configure script
1342         - Require version 2.4 of glib for glib bindings
1343         - Up version to 0.50
1344
1345         * python/__init__.py: Sync version with libdbus to (0,50,0)
1346         
1347 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1348
1349         * dbus/dbus-object-tree.c (find_subtree_recurse):
1350         a couple of optimizations (bug #710):
1351         - do a binary search in the tree
1352         - insert a new child at the right place directly, no need for
1353           qsort anymore
1354         - do the "double alloc" thing when allocating children
1355
1356 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1357
1358         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1359
1360         * python/dbus_bindings.pyx: Memory management foo
1361         (global): remove hacky _user_data_references global list
1362         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1363         tuples. Unref user_data
1364         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1365         (Connection::__del__): Remove and replace with __dealloc__ method
1366         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1367         to keep tuple from being deallocated instead of the global var hack
1368         (Connection::register_object_path): Stuff user_data into a tuple.
1369         Use Py_INCREF to keep tuple from being deallocated instead of the 
1370         global var hack
1371         (Connection::register_fallback): Stuff user_data into a tuple.
1372         Use Py_INCREF to keep tuple from being deallocated instead of the 
1373         global var hack
1374         (GIL_safe_pending_call_notification): Don't unref the message
1375         because it gets unreffed when going out of scope.  Py_XDECREF
1376         the user_data
1377         (PendingCall::__del__): Remove and replace with __dealloc__ method
1378         (PendingCall::set_notify): ref the pending call because we will
1379         need it to stick around for when the notify callback gets called
1380         (Message::__del__): Remove and replace with __dealloc__ method
1381
1382         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1383         gthreads_init to match up with the dbus call
1384
1385         * python/glib.py (init_threads): Changed to threads_init to match
1386         up with gobject.threads_init().  init_threads is kept for backwards
1387         compat but will most likely be deprecated in the future
1388
1389         * test/python/test-client.py: 
1390         - revamp to use Python's unittest functionality
1391         - add async call tests
1392         - setup threads in glib and dbus so we make sure locks are working
1393         
1394 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1395
1396         * python/dbus_bindings.pyx 
1397         (_pending_call_notification, cunregister_function_handler, 
1398         cmessage_function_handler): All callback functions have been rearranged 
1399         to workaround a bug in Pyrex when working with the GIL which is Python's 
1400         global lock when dealing with threads.  They have been split into
1401         a wrapper function (which assumes the name of the old function) and
1402         a _GIL_safe_<function name> function which contains the functionality
1403         of the old function.  This ensures that Pyrex does not write code
1404         the lock is released.
1405         
1406
1407 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1408
1409         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1410         GIL global lock when calling back into Python
1411
1412 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1413
1414         * Release 0.36.2
1415
1416         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1417
1418         * bus/policy.c (bus_policy_allow_user): change default "user is
1419         allowed" to be "user has same uid as the bus itself"; any
1420         allow/deny rules will override.
1421
1422         * bus/session.conf.in: don't allow all users, since now by default
1423         the user that ran the bus can connect.
1424
1425 2005-08-26  Colin Walters  <walters@verbum.org>
1426
1427         * tools/dbus-print-message.c (print_message): Flush stdout
1428         after printing a message, so that redirecting to a file, then
1429         hitting Ctrl-C works.
1430
1431 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1432
1433         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1434         (EmptyMessage): new class that subclasses Message.  This is a workaround
1435         to a Pyrex bug that fails to call __del__ when the Message object goes out
1436         of scope.  For some reason subclassing Message fixes this bug
1437         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1438         - s/Message(_create=0)/EmptyMessage everywhere else
1439         
1440         * test/python/test-{server|client}.py: add the python/.libs directory
1441         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1442         get picked up from the system
1443
1444 2005-08-25  Colin Walters  <walters@verbum.org>
1445
1446         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1447         to Ryan Lortie for the suggestion.
1448
1449 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1450
1451         * test/python: Add python regression test
1452
1453         * configure.in: Add test/python/Makefile
1454
1455         * test/Makefile.am: Add the python directory to SUBDIRS
1456
1457 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1458
1459         * Release 0.36.1
1460
1461         * python/_dbus.py: 
1462         (Interface::connect_to_signal): propigate keywords for match on args
1463         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1464
1465         * python/proxies.py (ProxyObject::connect_to_signal):
1466         propigate keywords for match on args
1467
1468         * Makefile.am: point everything to pyexecdir since python borks
1469         on multilib
1470
1471 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1472
1473         * Release 0.36
1474
1475 2005-08-23  Colin Walters  <walters@verbum.org>
1476
1477         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1478
1479 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1480
1481         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1482         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1483         of defining DBusConnection ourselves.
1484
1485 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1486
1487         * python/dbus.pth: New path file to fix up problems when installing
1488         c libraries to lib64 and python files to lib.
1489
1490         * python/Makefile.am: install dbus.pth in the correct spot
1491
1492 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1493         * ChangeLog: clean up my last entry a bit
1494
1495         * doc/introspect.xsl: New stylesheet for converting introspection data
1496         into browser renderable xhtml. Contributed by Lennart Poettering.
1497
1498         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1499         Poettering.
1500
1501         * doc/dbus-tutorial.xml: 
1502         - Add Colin Walter to the Authors section for authoring the GLib
1503         section
1504         - Add descriptions of the new signature and type functionality
1505         in the Python complex type mapping section
1506         - Add a sidenote on the new args matching functionality in 
1507         the Python bindings
1508         - Fixed up some of the examples to use the gobject.MainLoop
1509         instead of gtk.main
1510         
1511         * python/_dbus.py:
1512         (Bus::_create_args_dict): New. Converts a hash of arg matches
1513         to a more useable format
1514         (Bus::add_signal_receiver): add a **keywords parameter for catching
1515         arg match parameters
1516         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1517         arg match parameters
1518         
1519         * python/matchrules.py:
1520         (MatchTree::exec_matches): Check for arg matches
1521         (SignalMatchRule::add_args_match): New method
1522         (SignalMatchRule::execute): Added args_list parameter as an optimization
1523         so we don't have to marshal the args more than once
1524         (SignalMatchRule::match_args_from_list): New method that checks to see
1525         if the rule's arg matches match an argument list.  Only arguments
1526         set in the rule are checked.
1527         (SignalMatchRule::match_args_from_rule): New method that checks to see
1528         if the rule's arg matches match another rule's.  All args have to match
1529         in order for this method to return true.  If either rule has more args
1530         then it is not a match.
1531         (SignalMatchRule::is_match): Add args match
1532         (SignalMatchRule::repr): Add args to the final output if they exist
1533
1534 2005-08-17  Ross Burton  <ross@burtonini.com>
1535
1536         * glib/dbus-gproxy.c:
1537         (dbus_g_proxy_call_no_reply): unref the message once sent.
1538         (dbus_g_proxy_call): protect against NULL proxy.
1539
1540 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1541
1542         * python/__init__.py: Version updated (0, 43, 0)
1543         
1544         * python/dbus_bindings.pyx: 
1545         - Fixed type objects to have self passed into __init__
1546         - Added the Variant type
1547         - Add the ability to specify types or signatures for Array, Variant 
1548         and Dictionary
1549         (Connection::send_with_reply_handlers): return a PendingCall object
1550         (_pending_call_notification): handle the case when an error is returned 
1551         without an error message in the body
1552         (MessageIter::get_boolean): return True or False instead of an integer
1553         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1554         and add checks for objects with embeded signatures or types (Array, 
1555         Variant and Dictionary)
1556         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1557         (MessageIter::append_dict): handle embeded types or signatures
1558         (MessageIter::append_array): handle embeded types or signatures
1559         (MessageIter::append_variant): new method
1560         
1561         * python/proxies.py:
1562         (DeferedMethod): New. Dummy executable object used when queuing calls 
1563         blocking on introspection data
1564         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1565         or shorter timeouts for method calls
1566         (ProxyObject): Add first pass at an introspection state machine
1567         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1568         introspection. 
1569         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1570         the usual mechanisms for sending messages.  This is to avoid a deadlock
1571         where the Intospect call would be queued waiting for the Introspect 
1572         call to finish ;-)
1573         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1574         when introspection returns with no error
1575         (ProxyObject::_introspect_error_handler): New.  This method is called 
1576         when introspection encounters an error
1577         (ProxyObject::__getattr__): Code to handle different introspection 
1578         states.  Queue async calls or block blocking calls if we are 
1579         introspecting.  Pass through as normal if we are not or are done with 
1580         introspecting.
1581         
1582         * python/service.py: Import signal and method from decorators.py
1583
1584         * python/types.py: Add Variant type
1585
1586 2005-08-16  Colin Walters  <walters@verbum.org>
1587
1588         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1589         DBusError message is NULL.
1590
1591 2005-08-09  Havoc Pennington  <hp@redhat.com>
1592
1593         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1594         malloc'd copy of the name parameter
1595
1596 2005-08-09  Havoc Pennington  <hp@redhat.com>
1597
1598         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1599         warning if the reply serial is set to 0
1600
1601 2005-08-04  Colin Walters  <walters@verbum.org>
1602
1603         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1604         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1605         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1606         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1607         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1608         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1609         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1610         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1611         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1612         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1613         
1614         Prefix name with _ to ensure they're not exported.  All callers
1615         updated.
1616
1617         * glib/dbus-gvalue.c (typecode_to_gtype)
1618         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1619         (signature_iter_to_g_type_dict)
1620         (signature_iter_to_g_type_array)
1621         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1622         (dbus_gtypes_from_arg_signature):
1623         Move to dbus-gsignature.c.
1624
1625         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1626         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1627         (dbus_binding_tool_output_glib_client): Ditto.
1628
1629         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1630         and dbus-gsignature.h
1631
1632         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1633         unused variable.
1634
1635 2005-08-03  Colin Walters  <walters@verbum.org>
1636
1637         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1638         catch any incompatible changes accidentally made.
1639
1640 2005-08-03  Havoc Pennington  <hp@redhat.com>
1641
1642         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1643         typo, from Julien Puydt
1644
1645         * bus/connection.c (bus_connection_disconnected): we were always
1646         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1647
1648 2005-08-01  Colin Walters  <walters@verbum.org>
1649
1650         Patch from Joe Markus Clarke:   
1651         
1652         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1653         use-after-free.
1654
1655 2005-08-01  Colin Walters  <walters@verbum.org>
1656         
1657         Patch from Joe Markus Clarke:   
1658         
1659         * tools/dbus-send.c (main): 
1660         
1661         Don't use C99 style initializers (bug #3933).
1662         
1663 2005-08-01  Colin Walters  <walters@verbum.org>
1664
1665         Patch from Joe Markus Clarke:   
1666
1667         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1668         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1669         * glib/dbus-gobject.c (write_interface):
1670
1671         Don't use C99 style initializers (bug #3933).
1672
1673 2005-07-31  Havoc Pennington  <hp@redhat.com>
1674
1675         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1676         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1677
1678 2005-07-30  Havoc Pennington  <hp@redhat.com>
1679
1680         * fix a bunch of Doxygen warnings and mistakes
1681
1682 2005-07-30  Havoc Pennington  <hp@redhat.com>
1683
1684         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1685         DBUS_BUILD_TESTS since it's now used in production code
1686
1687 2005-07-29  Havoc Pennington  <hp@redhat.com>
1688
1689         * test/glib/test-profile.c (write_junk): initialize the junk
1690         buffer so valgrind doesn't have a breakdown
1691
1692 2005-07-29  Havoc Pennington  <hp@redhat.com>
1693
1694         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1695         (match_rule_matches): remove unused arg
1696         (test_matching): add tests for match_rule_matches()
1697
1698         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1699         do arg0='foo' arg5='bar' in the match rules
1700         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1701
1702         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1703
1704 2005-07-29  Ross Burton  <ross@openedhand.com>
1705
1706         * dbus/dbus-connection.c:
1707         Don't create a DBusCondVar which is never used.
1708
1709 2005-07-27  Ross Burton  <ross@openedhand.com>
1710
1711         * dbus/dbus-message.c:
1712         Reduce the size of the maximum cached message to 10K.
1713
1714 2005-07-25  Ross Burton  <ross@openedhand.com>
1715
1716         * glib/dbus-gproxy.c:
1717         Remove matches when all proxies are unregistered.
1718
1719 2005-07-24  Colin Walters  <walters@verbum.org>
1720
1721         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1722         typedata; recursive arrays won't have it.
1723
1724         * test/glib/test-dbus-glib.c:
1725         * test/glib/test-service-glib.c:
1726         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1727         
1728 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1729
1730         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1731         proxies.py, service.py: Cleanup of code after running it through the
1732         pyflakes code checker mostly dealing with undefined names.  
1733         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1734
1735 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1736
1737         * NEWS: Update to 0.35.2
1738
1739 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1740
1741         * python/_dbus.py: Remove import of the dbus.services
1742         module as it no longer exists (patch from Dimitur Kirov)
1743
1744         * python/service.py (Object::__init__): Fixed typo
1745         s/name/bus_name (patch from Dimitur Kirov)
1746
1747         * python/examples/example-signal-emitter.py: import dbus.glib
1748         to get the main loop and use glib mainloop instead of gtk so
1749         X doesn't have to be running.
1750
1751         * python/examples/example-signal-recipient.py: import dbus.glib
1752         to get the main loop and use glib mainloop instead of gtk so
1753         X doesn't have to be running. Import the decorators module
1754         directly.
1755
1756         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1757         didn't pick up on but are needed to build
1758
1759         * configure.in: upped version to 0.35.2
1760
1761         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1762         added Colin Walters' SELinux API rename patch from head 
1763         s/unix sercurity context/selinux security context/
1764
1765 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1766
1767         * python/Makefile.am: dbus_binding.pxd.in should be included 
1768         in EXTRA_DIST not dbus_binding.pxd
1769         fix up $(srcdir) hopefully for the last time
1770
1771         * NEWS: Update to 0.35.1
1772
1773 2005-07-16  Colin Walters  <walters@verbum.org>
1774
1775         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1776         from bus_driver_handle_get_connection_unix_security_context.  Update for
1777         error usage.
1778         (message_handlers): Update for renames.
1779
1780         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1781         _dbus_string_init failure correctly.
1782         (bus_selinux_append_context): Convert SID to context.  Append it
1783         as a byte array.
1784         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1785         hasn't been called.
1786
1787         * bus/selinux.h: Update prototype.
1788
1789         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1790         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1791
1792 2005-07-15  Colin Walters  <walters@verbum.org>
1793
1794         * doc/TODO: Add note about convenience wrappers.
1795
1796 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1797
1798         * NEWS: Update to 0.35
1799
1800 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1801
1802         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1803         so distcheck doesn't fail
1804
1805         * glib/examples/Makefile.am: Add example-service.xml and 
1806         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1807
1808         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1809         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1810
1811         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1812         compiler looks in the right places during distcheck
1813
1814 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1815
1816         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1817         to fail
1818
1819 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1820
1821         * python/examples/example-service.py,
1822         python/examples/example-signal-emitter.py: Fixed up examples
1823         for API changes
1824
1825 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1826
1827         * python/__init__.py: Upped to version (0,42,0) because of
1828         the API change
1829
1830 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1831
1832         * ChangeLog: fix date in last entry
1833
1834         * configure.in, bus/system.conf.in: add the ability to configure 
1835         the system bus user at compiletime with the --with-dbus-user flag
1836         (patch from Kristof Vansant)
1837
1838 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1839
1840         * bus/dispatch.c, test/test-service.c: Add testcase
1841         for sending messages to oneself (TODO item).
1842
1843         * python/service.py (class Object): Swap ordering of bus_name 
1844         and object_path parameters to better support inheritance.
1845
1846         * doc/dbus-tutorial.xml: change Python docs to reflect change
1847         in parameter ordering and fix the inheritance section.
1848
1849         * doc/TODO: remove sending message to oneself TODO item
1850
1851 2005-07-15  Ross Burton  <ross@openedhand.com>
1852
1853         * glib/dbus-gproxy.c:
1854         Fix a leak when calling methods via the proxy.
1855
1856 2005-07-15  Colin Walters  <walters@verbum.org>
1857
1858         * bus/selinux.c (bus_selinux_append_context): Wrap in
1859         HAVE_SELINUX.
1860
1861 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1862
1863         * python/_dbus.py (Bus::remove_signal_receiver):
1864         don't add a callback to the match if none has been passed in
1865         
1866         * python/matchrules.py (SignalMatchTree::remove): if the rule
1867         being matched does not have a callback treat it as a wildcard
1868         fix matching logic
1869
1870         * doc/dbus-tutorial.xml: Add Python tutorial
1871
1872 2005-07-14  Colin Walters  <walters@verbum.org>
1873
1874         * bus/driver.c
1875         (bus_driver_handle_get_connection_unix_security_context): New function.
1876         (message_handlers): Add.
1877
1878         * bus/selinux.c (bus_selinux_append_context): New function; appends
1879         security context to message.
1880
1881         * bus/selinux.h: Prototype.
1882
1883         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1884
1885 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1886
1887         * bus/activation.c: clean up all tabs to be 8 spaces 
1888         (bus_activation_activate_service): make sure we clean up
1889         if activation fails
1890
1891         * bus/dispatch.c: clean up all tabs to be 8 spaces 
1892         (check_shell_fail_service_auto_start): New function
1893         tests to make sure we get fail properly when trying to auto start a service
1894         with a faulty command line
1895         (check_shell_service_success_auto_start): New function tests to make sure
1896         auto started services get the arguments on the command line
1897
1898         * test/test-shell-service.c: Added service for testing auto-starting with 
1899         command line arguments
1900
1901         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
1902         test/data/valid-service-files/debug-shell-echo-success.service.in:
1903         Added service files for testing auto-starting with command line arguments
1904
1905         * */.cvsignore: added a bunch of generated files to various .cvsignore files
1906
1907 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
1908
1909         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1910         
1911         * dbus/Makefile.am: added new files to build.
1912
1913         * bus/activation.c (bus_activation_activate_service): support
1914         activation commands with parameters.
1915
1916         * test/shell-test.c: added test program for the shell parsing
1917         code.
1918
1919 2005-07-13  David Zeuthen  <davidz@redhat.com>
1920
1921         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1922         64 bit signed and unsigned parameters
1923
1924 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
1925
1926         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1927
1928         * python/service.py (class Name): renamed BusName to make it clearer
1929         what the object is for (a name on the bus)
1930
1931         * python/examples/example-service.py,
1932         python/examples/example-signal-emitter.py: change the Name object to
1933         BusName
1934
1935 2005-07-12  Colin Walters  <walters@verbum.org>
1936
1937         Patch from Jim Gettys <Jim.Gettys@hp.com>.
1938
1939         * tools/dbus-launch.c: Include sys/select.h.
1940
1941 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
1942         * python/dbus_bindings.pyx.in: removed
1943
1944         * python/dbus_bindings.pyx: Added.
1945         - Fixed some memleaks (patch from 
1946         Sean Meiners <sean.meiners@linspireinc.com>)
1947         - Broke out the #include "dbus_h_wrapper.h" and put it in its
1948         own pxd file (Pyrex definition)
1949         - Broke out glib dependancies into its own pyx module
1950         
1951         * python/dbus_bindings.pdx: Added.
1952         - Defines C class Connection for exporting to other modules
1953
1954         * python/dbus_glib_bindings.pyx: Added.
1955         - New module to handle lowlevel dbus-glib mainloop integration
1956
1957         * python/glib.py: Added.
1958         - Registers the glib mainloop when you import this module
1959
1960         * python/services.py: Removed (renamed to service.py)
1961         
1962         * python/service.py: Added.
1963         - (class Server): renamed Name
1964
1965         * python/__init__.py: Bump ro version (0,41,0)
1966         -don't import the decorators or service module
1967         by default.  These now reside in the dbus.service namespace
1968
1969         * python/_dbus.py (Bus::__init__): Add code run the main loop 
1970         setup function on creation 
1971
1972         * python/examples/example-service.py,
1973         python/examples/example-signal-emitter.py: update examples
1974
1975         * python/examples/gconf-proxy-service.py,
1976         python/examples/gconf-proxy-service2.py: TODO fix these up
1977
1978         * doc/TODO: Addition
1979         - Added a Python Bindings 1.0 section
1980         - added "Add match on args or match on details to match rules"
1981
1982
1983 2005-07-12  Colin Walters  <walters@verbum.org>
1984
1985         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
1986         (statemachine-glue.h): 
1987         * glib/examples/Makefile.am (example-service-glue.h) 
1988         (example-signal-emitter-glue.h): 
1989         * glib/Makefile.am (dbus-glib-error-switch.h): 
1990         Add libtool --mode=execute so we use the built library instead
1991         of any installed one.
1992
1993 2005-07-11  Colin Walters  <walters@verbum.org>
1994
1995         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1996         (dbus_g_value_types_init): Remove assertion.
1997         (dbus_g_value_get_g_type, dbus_g_value_open)
1998         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1999         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2000         functions related to DBusGValue.  Now we marshal/demarshal
2001         structures as GValueArray.
2002         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2003         structures.
2004         (signature_iter_to_g_type_array): Don't call
2005         signature_iter_to_g_type_struct.
2006         (signature_iter_to_g_type_struct): Delete.
2007         (dbus_gvalue_to_signature): Delete.
2008         (dbus_gvalue_to_signature): New function with same name as other
2009         one; we can convert structures to signatures.
2010         (demarshal_valuearray): New function.
2011         (get_type_demarshaller): Use it.
2012         (demarshal_recurse): Delete.
2013         (marshal_proxy): New function.
2014         (marshal_map): Warn if we can't determine signature from type.
2015         (marshal_collection_ptrarray): Ditto.
2016         (marshal_collection_array): Ditto.
2017         (get_type_marshaller): Use marshal_valuearray.
2018         (marshal_recurse): Delete.
2019         (_dbus_gvalue_test): Add some tests.
2020
2021         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2022         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2023         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2024         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2025         (dbus_g_value_free): Remove prototypes.
2026
2027         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2028         G_TYPE_VALUE_ARRAY.
2029
2030         * glib/examples/example-service.c:
2031         * glib/examples/example-client.c: Implement GetTuple.
2032
2033         * test/glib/test-dbus-glib.c:
2034         * test/glib/test-service-glib.c:
2035         * test/glib/test-service-glib.xml: Add structure tests.
2036
2037 2005-07-10  Colin Walters  <walters@verbum.org>
2038
2039         * doc/TODO: Knock off some GLib items with this patch.
2040
2041         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2042         (_dbus_gvalue_signals_error): New functions.
2043
2044         * glib/dbus-gvalue-utils.h: Prototype them.
2045
2046         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2047         and change to not output const/retval flags for input args.  All
2048         callers updated.
2049         (invoke_object_method): Refactor to handle return values.  Add
2050         some more comments in various places.  Remove debug g_print.
2051
2052         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2053
2054         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2055         Handle G_TYPE_NONE.
2056         (compute_gsignature): New function; refactored from code from
2057         compute_marshaller and compute_marshaller_name.  Enhance to
2058         handle return values and async ops more cleanly.  Update for
2059         async ops returning NONE instead of BOOLEAN.
2060         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2061         and output appropriate string.
2062         (generate_glue): Handle return value annotation.  Also don't dump
2063         constness flag for input arguments.
2064
2065         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2066         files shared between installed library and utilities.
2067         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2068         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2069         binding tool can access gtype utility functions.
2070
2071         * test/glib/test-service-glib.c: 
2072         * test/glib/test-service-glib.xml: 
2073         * test/glib/test-dbus-glib.c: Add some tests for return values.
2074
2075 2005-07-09  Colin Walters  <walters@verbum.org>
2076
2077         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2078         argument if available, not method.
2079
2080         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2081         (invoke_object_method): First, remove some redundant
2082         GValues (object_value, error_value) in favor of working on
2083         array directly.  Second, rework constness to be less buggy.
2084         Now we iterate directly over the argument metadata instead
2085         of parallel iterating over output signature and metadata.
2086
2087         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2088
2089         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2090         annotation on input args.
2091         
2092 2005-07-09  Colin Walters  <walters@verbum.org>
2093
2094         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2095         Define.
2096
2097         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2098         annotation.
2099
2100         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2101         (method_dir_signature_from_object_info): Handle arg_iterate change.
2102         (write_interface): Ditto.
2103         (lookup_object_info): Don't barf if format_version is > 0.
2104         (invoke_object_method): Handle arg constness.
2105
2106         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2107         (arg_info_new): Create.
2108         (arg_info_unref): Destroy.
2109         (arg_info_get_annotations, arg_info_get_annotation) 
2110         (arg_info_add_annotation): New functions.
2111
2112         * glib/dbus-gidl.h: Prototype them.
2113
2114         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2115         args, disallow them in properties.
2116         (parse_annotation): Handle arg annotations.
2117
2118         * test/glib/test-service-glib.xml: 
2119         * test/glib/test-service-glib.c: Update to make some methods
2120         const.
2121
2122 2005-07-08  Colin Walters  <walters@verbum.org>
2123
2124         * test/glib/test-service-glib.xml: 
2125         * test/glib/test-service-glib.c:
2126         * test/glib/test-dbus-glib.c: Test a{sv}.
2127
2128         * glib/examples/statemachine/statemachine.c:
2129         * glib/examples/statemachine/statemachine-server.c:
2130         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2131         add progress bar, etc.
2132
2133         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2134         needed anymore due to generic array/map marshalling.
2135         (dbus_g_value_types_init): Don't register basic arrays or the
2136         string/string hash.
2137         (dbus_gtype_from_signature_iter): Don't try to recurse into
2138         variants.
2139         (dbus_gtype_to_signature): Check collection/map before type
2140         metadata.
2141         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2142         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2143         generic map creation/append functions instead of hash table
2144         specifically.
2145         (get_type_demarshaller): Handle maps.
2146         (demarshal_collection): Dispatch on collection type to either
2147         demarshal_collection_ptrarray or demarshal_collection_array.
2148         (get_type_marshaller): Handle maps.
2149         (marshal_collection): Dispatch collection type to either
2150         marshal_collection_ptrarray or marshal_collection_array.
2151         (_dbus_gvalue_test): New test.
2152
2153         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2154         (hash_free_from_gtype): Use it to free GValues.
2155         (hashtable_append): New function.
2156         (ptrarray_append): Fix prototype.
2157         (slist_append): Ditto.
2158         (_dbus_gvalue_utils_test): Extend tests.
2159
2160         * glib/dbus-gtype-specialized.c
2161         (dbus_g_type_specialized_init_append): Renamed from
2162         dbus_g_type_specialized_collection_init_append.  Remove const from
2163         value, since we steal it.
2164         (dbus_g_type_specialized_map_append): New function.
2165
2166         * glib/dbus-gtype-specialized.h: Update prototypes.
2167         Add DBusGTypeSpecializedMapAppendFunc.
2168
2169         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2170         _dbus_gvalue_test.
2171         
2172         * glib/dbus-gtest.h: Prototype it.
2173
2174 2005-07-08  Ross Burton  <ross@openedhand.com>
2175
2176         * dbus/dbus-glib.h:
2177         Add DBysGAsyncData for the async bindings.
2178
2179         * glib/dbus-binding-tool-glib.c:
2180         Re-enable the async bindings.
2181
2182         * test/glib/test-dbus-glib.c:
2183         Add a test for the generated async bindings.
2184
2185 2005-07-08  Colin Walters  <walters@verbum.org>
2186
2187         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2188         connection concept.
2189         
2190 2005-07-08  Colin Walters  <walters@verbum.org>
2191         
2192         * tools/Makefile.am: Kill of print-introspect in favor of using
2193         dbus-send --print-reply=literal.
2194
2195         * test/glib/test-service-glib.xml: 
2196         * test/glib/test-service-glib.c (my_object_get_objs): New test
2197         for "ao".
2198
2199         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2200         (main): Test GetObjs.
2201
2202         * glib/examples/statemachine/Makefile.am:
2203         * glib/examples/statemachine/sm-marshal.list:
2204         * glib/examples/statemachine/statemachine-client.c:
2205         * glib/examples/statemachine/statemachine-server.c:
2206         * glib/examples/statemachine/statemachine-server.xml:
2207         * glib/examples/statemachine/statemachine.c:
2208         * glib/examples/statemachine/statemachine.h:
2209         * glib/examples/statemachine/statemachine.xml:
2210
2211         New example.
2212
2213         * glib/examples/example-service.c (main): Move invocation
2214         of dbus_g_object_type_install_info earlier, to emphasize it
2215         should only be done once.
2216
2217         * glib/examples/example-signal-emitter.c (main): Ditto.
2218
2219         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2220
2221         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2222         (dbus_gvalue_marshal): Update prototypes.
2223
2224         * glib/dbus-gvalue.c: Update all marshalling functions to take
2225         const GValue instead of GValue.
2226         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2227         types.
2228         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2229         change.
2230         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2231         Return a newly-allocated string.
2232         (demarshal_proxy, demarshal_object_path, demarshal_object)
2233         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2234         we get the wrong types from message.
2235         (get_type_demarshaller): New function, extracted from
2236         dbus_gvalue_demarshal.
2237         (demarshal_collection): New function, demarshals generic
2238         collection.
2239         (dbus_gvalue_demarshal): Just invoke result of
2240         get_type_demarshaller.  Throw error if we don't have one.
2241         (marshal_garray_basic): Abort on OOM.
2242         (get_type_marshaller): New function, extracted from
2243         dbus_gvalue_marshal.
2244         (collection_marshal_iterator, marshal_collection): New functions;
2245         implements generic marshalling for an iteratable specialized
2246         collection.
2247         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2248
2249         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2250         G_TYPE_STRING.
2251         (ptrarray_value_from_gvalue): Ditto.
2252         (ptrarray_append, ptrarray_free): New functions.
2253         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2254         (slist_append, slist_end_append, slist_free): New functions.
2255         (dbus_g_type_specialized_builtins_init): Add append fuctions
2256         for GPtrArray and GSList.  Register GSList.
2257         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2258
2259         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2260         New.
2261         (dbus_g_type_specialized_collection_init_append)
2262         (dbus_g_type_specialized_collection_append)
2263         (dbus_g_type_specialized_collection_end_append): Prototype.
2264         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2265         end_append_func.
2266
2267         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2268         (dbus_g_type_specialized_collection_append) 
2269         (dbus_g_type_specialized_collection_end_append): New functions.
2270         (dbus_g_type_map_value_iterate): Take const GValue.
2271         (dbus_g_type_collection_value_iterate): Ditto.
2272
2273         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2274         _dbus_gvalue_utils_test.
2275         
2276         * glib/dbus-gtest.h: Prototype it.
2277
2278         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2279         using uninitialized owner_list.
2280         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2281         public API.
2282         (dbus_g_proxy_end_call_internal): Update to use error set
2283         from dbus_gvalue_demarshal instead of setting it here.
2284         (dbus_g_proxy_begin_call): Move return_if_fail here.
2285
2286         * glib/dbus-gobject.c (write_interface): Update for
2287         dbus_gtype_to_signature returning new string.
2288
2289         * configure.in: Add glib/examples/statemachine.
2290
2291 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2292
2293         * configure.in: Add a configure option, --with-console-auth-dir
2294         
2295         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2296         new setting.  Patch from Kay Sievers.
2297
2298 2005-07-06  Colin Walters  <walters@verbum.org>
2299
2300         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2301         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2302         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2303         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2304         Delete in favor of dbus_g_proxy_begin_call and
2305         dbus_g_proxy_cancel_call.
2306         (DBusGProxyCall, DBusGProxyCallNotify): New.
2307         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2308         data, and destroy function.  This replaces
2309         dbus_g_pending_call_set_notify.
2310         (dbus_g_proxy_cancel_call): Prototype.
2311         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2312
2313         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2314         pending_calls map.
2315         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2316         internal proxy for calls to the bus. Remove
2317         pending_nameowner_calls, now the internal proxy keeps track.
2318         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2319         pending_nameowner_calls.
2320         (got_name_owner_cb): Update prototype, and use
2321         dbus_g_proxy_end_call.
2322         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2323         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2324         favor of using internal proxy.
2325         (dbus_g_proxy_manager_unregister): Update to use
2326         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2327         (dbus_g_proxy_init): Initialize pending calls map.
2328         (dbus_g_proxy_constructor): New.
2329         (dbus_g_proxy_class_init): Add get/set property functions,
2330         constructor, and add NAME, PATH, and INTERFACE properties.
2331         (cancel_pending_call): New function.
2332         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2333         cancel them.
2334         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2335         (GPendingNotifyClosure): New structure.
2336         (d_pending_call_notify, d_pending_call_free): Moved here from
2337         dbus-glib.c.
2338         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2339         ordering.
2340         (manager_begin_bus_call): New internal function for talking to
2341         internal bus proxy.
2342         (dbus_g_proxy_new): Construct object using GObjet properties.
2343         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2344         Create closure of same, and insert call into map of pending calls.
2345         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2346         call.  Look up pending call in current set.  Remove it when we've
2347         completed.
2348         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2349         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2350         and destroy function directly.
2351         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2352         (dbus_g_proxy_call): Invoke with NULL callback.
2353         (dbus_g_proxy_cancel_call): New function, replaces
2354         dbus_g_pending_call_cancel.
2355
2356         * glib/dbus-gparser.c (validate_signature): Fix call to
2357         dbus_set_g_error.
2358
2359         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2360         New quark for attaching metadata to GType.
2361         (info_hash): Delete.
2362         (lookup_object_info): Look up using quark.
2363         (dbus_g_object_type_install_info): Check that a type is classed,
2364         not that it's an object.  Also just install type data using quark
2365         instead of using global hash.
2366
2367         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2368         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2369         (GPendingNotifyClosure): Delete.
2370         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2371         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2372
2373         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2374         client method generation until we can fix it...
2375         
2376         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2377         (load_from_service_thread_func): Ditto.
2378
2379         * tools/dbus-names-model.c (struct NamesModel): Hold
2380         DBusGProxyCall.
2381         (have_names_notify): Update prototype, use
2382         dbus_g_proxy_cancel_call.
2383         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2384
2385         * tools/dbus-monitor.c (filter_func): Update for print_message
2386         API change.
2387
2388         * test/glib/test-dbus-glib.c: Add more tests for async
2389         invocations.  Update many begin_call/end_call pairs to just use
2390         dbus_g_proxy_call.
2391
2392         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2393         allows us to dump print-introspect.c.
2394
2395         * tools/dbus-print-message.h (print_message): Add literal argument
2396         to print_message which is intended to allow printing arguments without
2397         metadata like "string=".
2398
2399         * tools/dbus-print-message.c (print_iter): Add literal argument.
2400         (print_message): Allow printing string messages literally.
2401
2402 2005-07-05  Colin Walters  <walters@verbum.org>
2403
2404         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2405         Remove value refcount leak, original patch from Jorn Baayen
2406         <jorn@openedhand.com>.  Also remove useless extra value in favor
2407         of prepending to value array directly.
2408
2409 2005-07-02  Colin Walters  <walters@verbum.org>
2410
2411         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2412
2413 2005-07-01  Colin Walters  <walters@verbum.org>
2414
2415         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2416         
2417         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2418         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2419         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2420         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2421
2422 2005-06-30  Colin Walters  <walters@verbum.org>
2423
2424         * test/glib/test-dbus-glib.c:
2425         * test/glib/test-service-glib.c:
2426         * test/glib/test-service-glib.xml: Update tests for new error
2427         setting bits, also add async tests (patch from Ross Burton).
2428
2429         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2430         DBUS_GLIB_THREADS_LIBS.
2431
2432         * glib/dbus-gproxy.c (get_name_owner)
2433         (dbus_g_pending_call_end_valist): Ditto.
2434
2435         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2436         domain (GQuark) to DBusGErrorInfo.  
2437         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2438         quark in error_metadata.  Take message interface as default
2439         error message interface.
2440         (gerror_to_dbus_error_message): Pass message interface.
2441         (dbus_set_g_error): Resurrected.
2442         (dbus_g_error_info_free): New function.
2443         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2444         of _peek to actually create the object class if it hasn't been
2445         created yet.
2446         (dbus_g_error_domain_register): New function.
2447
2448         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2449
2450         * glib/dbus-gparser.c (validate_signature): Ditto.
2451
2452         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2453         (dbus_g_error_domain_register): Prototype.
2454
2455         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2456         Update tests.
2457
2458 2005-06-29  Colin Walters  <walters@verbum.org>
2459
2460         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2461         DBUS_TYPE_G_OBJECT_PATH.
2462
2463         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2464         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2465         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2466         (dbus_g_object_path_get_g_type): New function.
2467         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2468         to DBUS_TYPE_G_OBJECT_PATH by default.
2469         (demarshal_proxy): Remove unused name variable.
2470         (demarshal_object_path, marshal_object_path): New functions.
2471         (demarshal_proxy_array, marshal_proxy_array): Delete.
2472         
2473         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2474         DBUS_TYPE_G_OBJECT_PATH to char *.
2475         (dbus_g_type_get_lookup_function): Map builtin
2476         DBUS_TYPE_G_OBJECT_PATH.
2477
2478         * test/glib/test-dbus-glib.c
2479         * test/glib/test-service-glib.c (my_object_objpath): 
2480         Adapt tests to new object path marshalling.
2481
2482 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2483
2484         * configure.in: force check for Python >= 2.4
2485
2486 2005-06-29  Colin Walters  <walters@verbum.org>
2487         
2488         Patch from Ross Burton <ross@openedhand.com>
2489         
2490         * glib/dbus-gobject.c (invoke_object_method): Unset object
2491         value in all cases, not only in async case.
2492
2493 2005-06-29  Colin Walters  <walters@verbum.org>
2494
2495         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2496         name_call for keeping track of any outgoing GetNameOwner call.
2497         Also add for_owner and associated.
2498         (struct _DBusGProxyManager): Add owner_names, which is hash table
2499         that maps a base name to a list of names it owns (that we're
2500         interested in).  Add pending_nameowner_calls which is a list of
2501         all outstanding GetNameOwner; avoids us having to iterate over
2502         every proxy.  Add unassociated_proxies which keeps track of name
2503         proxies with no associated name owner.
2504         (dbus_g_proxy_manager_unref): Destroy owner_names.
2505         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2506         name refcounts.
2507         (find_name_in_info, name_owner_foreach)
2508         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2509         (dbus_g_proxy_manager_monitor_name_owner)
2510         (dbus_g_proxy_manager_unmonitor_name_owner)
2511         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2512         New functions; they manipulate the owner_names mapping.
2513         (got_name_owner_cb): New function.
2514         (get_name_owner): New function, extracted from
2515         dbus_g_proxy_new_for_name_owner.
2516         (dbus_g_proxy_manager_register): For now we need to keep track of
2517         all NameOwnerChanged.  Also if the proxy is for a name, if we
2518         don't already know the name owner, queue a new GetNameOwner
2519         request and add it to our list of unassociated proxies.  Otherwise
2520         inc the refcount.
2521         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2522         cancel any pending GetNameOwner call, etc.
2523         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2524         the owner_names mapping to look up the current names for the
2525         signal source, and dispatch to any proxies for that name.
2526         (dbus_g_proxy_new): Initialize new members.
2527         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2528         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2529         (dbus_g_pending_call_end_valist): New function, extracted from
2530         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2531         but want to use the GLib infrastructure.  Also note how many
2532         arguments in reply were over.
2533         (dbus_g_pending_call_end): New function, just call
2534         dbus_g_pending_call_end_valist.
2535         (dbus_g_proxy_end_call_internal): Just call
2536         dbus_g_pending_call_end_valist.
2537
2538         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2539         of builtin marshaller for STRING_STRING_STRING.
2540
2541         * test/glib/test-dbus-glib.c: 
2542         * test/glib/test-service-glib.c:
2543         * test/glib/test-service-glib.xml:
2544         Extend tests to cover name proxies, destruction of owner proxies,
2545         etc.
2546         
2547         * glib/examples/example-signal-recipient.c
2548         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2549         
2550         * tools/dbus-send.c (main): Print D-BUS error name in addition
2551         to message.
2552
2553 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2554
2555         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2556         cmessage_function_handler): Patch from 
2557         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2558         by using the Py_GILState_Ensure/Release to synchronize with the
2559         python runtime.
2560         
2561 2005-06-28  Ray Strode  <rstrode@redhat.com>
2562
2563         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2564         babysitter helper process on last unref, bug #2813.
2565
2566 2005-06-27  Colin Walters  <walters@verbum.org>
2567
2568         * test/glib/test-dbus-glib.c: 
2569         * test/glib/test-service-glib.c:
2570         * test/glib/test-service-glib.xml:
2571         Test hash table signal emitting.
2572
2573         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2574         types to their fundamental basis types, since this is what
2575         marshallers operate on.  Also add an entry for VOID__BOXED.
2576         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2577
2578 2005-06-26  Havoc Pennington  <hp@redhat.com>
2579
2580         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2581         from Don Park
2582
2583 2005-06-26  Colin Walters  <walters@verbum.org>
2584
2585         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2586         (dbus_g_error_set): New public function from its ashes; used by
2587         both service-side method implementation and GLib bindings
2588         internals.
2589         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2590         (_dbus_glib_test): Add some tests.
2591
2592         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2593
2594         * test/glib/test-service-glib.c (my_object_throw_error): Use
2595         dbus_g_error_set.
2596
2597         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2598         errors thrown by dbus_g_error_set.
2599
2600         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2601
2602         * glib/dbus-gparser.c (validate_signature): Ditto.
2603
2604         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2605         (dbus_g_proxy_end_call_internal): Ditto.
2606
2607         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2608         converts DBUS_ERROR_x to DBUS_GERROR_x.
2609         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2610
2611         * doc/TODO: Remove error TODO.
2612
2613         * doc/dbus-tutorial.xml: Update with documentation about error
2614         handling.
2615
2616         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2617         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2618         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2619
2620 2005-06-22  Colin Walters  <walters@verbum.org>
2621         
2622         Patch from Ross Burton <ross@openedhand.com>
2623
2624         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2625
2626 2005-06-20  Colin Walters  <walters@verbum.org>
2627
2628         * configure.in: Add glib/examples.
2629
2630         * glib/Makefile.am: Add examples/
2631
2632         * glib/examples/.cvsignore
2633         * glib/examples/Makefile.am
2634         * glib/examples/example-client.c
2635         * glib/examples/example-service.c
2636         * glib/examples/example-service.xml
2637         * glib/examples/example-signal-emitter.c
2638         * glib/examples/example-signal-emitter.xml
2639         * glib/examples/example-signal-recipient.c:
2640         New files; GLib binding examples, ported from
2641         python/examples.
2642
2643 2005-06-20  Colin Walters  <walters@verbum.org>
2644
2645         * dbus/dbus-glib.h: 
2646         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2647         dbus_g_proxy_call.
2648
2649         * glib/dbus-binding-tool-glib.c: 
2650         * doc/dbus-tutorial.xml: 
2651         * test/glib/test-dbus-glib.c: Update for rename.
2652         
2653 2005-06-20  Colin Walters  <walters@verbum.org>
2654
2655         Patch suggested by Ross Burton <ross@openedhand.com>
2656
2657         * glib/dbus-gobject.c (export_signals): Free signal name.
2658         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2659         memory leak.  Add a bit of documentation.
2660         (dbus_g_method_return_error): Free context, and note we do
2661         so.
2662
2663 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2664
2665         * dbus/dbus-glib.h:
2666         * glib/dbus-gobject.c:
2667         * glib/dbus-gproxy.c:
2668         * glib/dbus-gvalue.c: Predeclare structs as 
2669         typedef struct _Something Something instead of 
2670         typedef struct Something Something, so we can 
2671         redeclare the prototypes. Other GNOME libraries 
2672         do this already.
2673
2674 2005-06-17  Colin Walters  <walters@verbum.org>
2675
2676         * tools/dbus-names-model.c (have_names_notify): Fix call
2677         to dbus_g_proxy_end_call.
2678         
2679 2005-06-17  Colin Walters  <walters@verbum.org>
2680
2681         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2682         spew warnings if we get malformed remote signals.
2683
2684         * glib/dbus-gobject.c (propsig_iterate): New function.
2685         (lookup_object_info): New function, extracted from
2686         lookup_object_and_method.
2687         (introspect_properties, introspect_signals): Delete; these
2688         are merged into write_interface.
2689         (write_interface): Write out signals and properties here;
2690         dump the org.gtk.object stuff and use the interface given
2691         in the introspection data blob.  Also fix up property XML.
2692         (lookup_values): New function.
2693         (introspect_interfaces): Gather a mapping from interface to a
2694         list of its methods, signals, and properties, then write out
2695         each interface.
2696         (lookup_object_and_method): Use lookup_object_info.
2697         (struct DBusGSignalClosure): Add interface.
2698         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2699         we can just use the constant data.
2700         (dbus_g_signal_closure_finalize): Don't free signal name.
2701         (signal_emitter_marshaller): Use interface from signal closure.
2702         (export_signals): Only export signals mentioned in introspection
2703         blob.
2704         (dbus_g_connection_register_g_object): Warn if we have no
2705         introspection data for an object.
2706         (funcsig_equal): Remove unused variable.
2707         (dbus_g_object_register_marshaller): Take varargs instead of
2708         list.
2709         (dbus_g_object_register_marshaller_array): New function,
2710         extracted from old dbus_g_object_register_marshaller.
2711
2712         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2713         signals and property data.
2714         (write_quoted_string): New function, extracted from generate_glue.
2715         (generate_glue): Write signals and properties to introspection
2716         blob.
2717
2718         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2719         exported_signals and exported_properties.
2720         (dbus_g_object_register_marshaller): Update prototype.
2721         (dbus_g_object_register_marshaller_array): Prototype.
2722         
2723         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2724
2725         * test/glib/test-service-glib.c: Add new test signals and method
2726         to emit them.
2727
2728         * test/glib/test-service-glib.xml: Add some test signals.
2729
2730         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2731         and my-object-marshal.h
2732         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2733         my-object-marshal.c.
2734         (my-object-marshal.c, my-object-marshal.h): Implement.
2735
2736         * test/glib/.cvsignore: Update.
2737
2738         * doc/TODO: Remove two GLib TODO items fixed by this
2739         patch.
2740
2741 2005-06-16  Colin Walters  <walters@verbum.org>
2742
2743         * doc/TODO: Update for GLib bindings.
2744         
2745 2005-06-16  Colin Walters  <walters@verbum.org>
2746
2747         * glib/dbus-binding-tool-glib.c:
2748         * glib/dbus-gobject.c:
2749         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2750         from Ross Burton, for his GLib bindings work.
2751
2752 2005-06-16  Colin Walters  <walters@verbum.org>
2753
2754         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2755         to iterate instead of walking to G_TYPE_INVALID.
2756
2757         Patch based on a patch from Ryan Gammon.
2758
2759 2005-06-16  Colin Walters  <walters@verbum.org>
2760
2761         * bus/bus.c (bus_context_new): Set parser to NULL
2762         after we unref it (Patch from Chris Boscolo, #2174).
2763         
2764 2005-06-16  Colin Walters  <walters@verbum.org>
2765
2766         * python/dbus_bindings.pyx.in: Import size_t,
2767         __int64_t, __uint64_t, and __signed.
2768
2769         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2770         Define cmsg struct, output it.
2771         (_dbus_read_credentials_unix_socket):
2772         Use cmsg struct.
2773         
2774         Patch from Joe Markus Clarke for FreeBSD support.
2775         
2776 2005-06-16  Colin Walters  <walters@verbum.org>
2777
2778         * tools/dbus-send.c (append_array): Use strtok.
2779         (append_dict): New function.
2780         (type_from_name): New function, extracted from main.
2781         (main): Handle sending dicts.
2782
2783         * tools/dbus-print-message.c (print_iter): Print dict
2784         entries.
2785         
2786 2005-06-16  Colin Walters  <walters@verbum.org>
2787
2788         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2789         values as the empty string (#2948).
2790         
2791 2005-06-16  Colin Walters  <walters@verbum.org>
2792
2793         * dbus/Makefile.am:
2794         * mono/doc/Makefile.am:
2795         * test/glib/Makefile.am:
2796
2797         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2798
2799 2005-06-16  Colin Walters  <walters@verbum.org>
2800
2801         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2802         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2803
2804         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2805         Increment pointer after swapping fixed array.  Add assertion
2806         for array length.
2807                 
2808 2005-06-15  Colin Walters  <walters@verbum.org>
2809
2810         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2811         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2812         
2813 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2814
2815         * NEWS: Update to 0.34
2816
2817 2005-06-15  David Zeuthen  <davidz@redhat.com>
2818
2819         * configure.in (LT_CURRENT): Revert back to 1 as the library
2820         hasn't changed and we've certainly not committed to protocol
2821         stability yet.  All this does is to break ABI. See commit note
2822         from hp@redhat.com 2005-05-05 for details.
2823         
2824 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2825
2826         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2827         (_dbus_connection_run_builtin_filters): New method
2828         (dbus_connection_dispatch): Run the builtin filters which in turn
2829         runs the peer filter which handles Ping messages.
2830
2831         * doc/TODO: 
2832          - Ping isn't handled: This patch fixes it
2833          
2834          - Add a test case for the Ping message: added TODO item
2835
2836 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2837
2838         * dbus/dbus-message.c:
2839         (dbus_message_has_path): New method
2840         (dbus_message_has_interface): New method
2841         (dbus_message_has_member): New method
2842
2843         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2844         New method
2845
2846         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
2847         the keyring directory is private to the user
2848
2849         * doc/TODO:
2850          - The convenience functions in dbus-bus.h should perhaps have
2851          the signatures that they would have if they were autogenerated
2852          stubs. e.g. the acquire service function. We should also evaluate
2853          which of these functions to include, in light of the fact that
2854          GLib/Qt native stubs will probably also exist.: Punted
2855
2856          - add dbus_message_has_path(), maybe has_member/interface:
2857          fixed in this patch
2858
2859          - in dbus-keyring.c, enforce that the keyring dir is not
2860          world readable/writable: Fixed in this patch
2861
2862 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2863
2864         * dbus/dbus-marshal-validate.h: Added a new validation
2865         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
2866         out of memory errors when validating signitures
2867
2868         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2869         in places where we previously used DBUS_VALID and a FALSE return 
2870         value to indicate OOM
2871         
2872         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2873         Use a stack to track the number of elements inside containers.  The 
2874         stack values are then used to validate that dict entries have only two
2875         elements within them.
2876         (validate_body_helper): check the reason for failure when validating
2877         varients
2878         
2879         * dbus/dbus-message.c (load_message): use 
2880         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
2881         DBUS_VALID and a FALSE return value to indicate OOM
2882
2883         * doc/TODO: remove "- validate dict entry number of fields" as this
2884         patch fixes it
2885
2886 2005-06-14  David Zeuthen  <davidz@redhat.com>
2887
2888         * bus/bus.c (process_config_every_time): Drop existing conf-dir
2889         watches (if applicable) and add new watches
2890
2891         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2892         (main): Setup SIGIO signal handler if using D_NOTIFY
2893
2894         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2895
2896         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2897         (merge_included): Also merge conf_dirs list
2898         (bus_config_parser_unref): Clear conf_dirs list
2899         (include_dir): Add directory to conf_dirs list
2900         (bus_config_parser_get_conf_dirs): New function
2901
2902         * bus/dir-watch.[ch]: New files
2903
2904         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2905
2906         * configure.in: Add checks for D_NOTIFY on Linux
2907
2908 2005-06-14  Colin Walters  <walters@verbum.org>
2909
2910         * glib/dbus-binding-tool-glib.c:
2911         * glib/dbus-gobject.c:
2912         * glib/dbus-gvalue.c: Fix indentation and brace style.
2913         
2914 2005-06-14  Ross Burton <ross@openedhand.com>.
2915
2916         * glib/dbus-glib.h: Make DBusGMethodInvocation
2917         a private structure.  Rearrange prototypes a bit.
2918         
2919         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2920         documentation for first_arg_type.
2921         
2922         * glib/dbus-gobject.c: Move DBusGMethodInvocation
2923         here, add documentation.  Move dbus_g_method_return
2924         and dbus_g_method_return_error into public API
2925         section.
2926
2927 2005-06-14  Colin Walters  <walters@verbum.org>
2928
2929         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2930         Add missing return statements, noticed by Ross Burton.
2931         
2932 2005-06-13  Ross Burton <ross@openedhand.com>.
2933
2934         * glib/dbus-gobject.c: Handle errors on message
2935         demarshalling by sending error message back.
2936         * glib/dbus-gvalue.c: Initialize return variables.
2937
2938 2005-06-13  Colin Walters  <walters@verbum.org>
2939
2940         * glib/Makefile.am: Fix thinko in last patch.
2941
2942 2005-06-13  Colin Walters  <walters@verbum.org>
2943
2944         * glib/Makefile.am: Move dbus-gtype-specialized.c
2945         and dbus-gtype-specialized.h into a _HEADERS variable,
2946         install them.
2947
2948 2005-06-12  Colin Walters  <walters@verbum.org>
2949
2950         Async signals and various bugfixes and testing by
2951         Ross Burton <ross@openedhand.com>.
2952
2953         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2954         (dbus_gvalue_genmarshal_name_from_type)
2955         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2956         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2957         (dbus_g_value_types_init, dbus_gtype_from_signature)
2958         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2959         (dbus_gtypes_from_arg_signature): New function prototypes.
2960         (dbus_gvalue_demarshal): Take context and error arguments.
2961         (dbus_gvalue_demarshal_variant): New function.
2962         (dbus_gvalue_demarshal_message): New function.
2963         (dbus_gvalue_store): Delete.
2964
2965         * glib/dbus-gvalue.c:
2966
2967         File has been almost entirely rewritten; now we special-case
2968         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2969         hash tables correctly, etc.  Full support for recursive values
2970         is not yet complete.
2971
2972         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2973         argument of signal to G_TYPE_POINTER since we now pass a
2974         structure.
2975         (lookup_g_marshaller): Delete in favor of
2976         _dbus_gobject_lookup_marshaller.
2977         (marshal_dbus_message_to_g_marshaller): Use
2978         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2979         to handle remote signal callbacks.
2980         (dbus_g_proxy_new_from_proxy): New function; creates a new
2981         DBusGProxy by copying an existing one.
2982         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2983         (dbus_g_proxy_get_path): New functions.
2984         (dbus_g_proxy_marshal_args_to_message): New function;
2985         factored out of existing code.
2986         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2987         from a varargs array.
2988         (dbus_g_proxy_begin_call_internal): New function.
2989         (dbus_g_proxy_end_call_internal): New function.
2990         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2991         as arguments; simply invoke dbus_g_proxy_begin_call_internal
2992         after collecting args into value array.
2993         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2994         invoke dbus_g_proxy_end_call_internal.
2995         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2996         end_call_internal.
2997         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2998         types.
2999         (array_free_all): New function.
3000         (dbus_g_proxy_add_signal): Take GTypes.
3001
3002         * glib/dbus-gobject.h:
3003         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3004         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3005         Prototype.
3006
3007         * glib/dbus-gobject.c: Add a global marshal_table hash which
3008         stores mappings from type signatures to marshallers.  Change lots
3009         of invocations of dbus_gtype_to_dbus_type to
3010         dbus_gtype_to_signature.
3011         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3012         (introspect_signals): Fix test for query.return_type.
3013         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3014         (invoke_object_method): Many changes.  Handle asynchronous
3015         invocations.  Convert arguments with
3016         dbus_gvalue_demarshal_message.  Handle errors.  Use
3017         DBusSignatureIter instead of strlen on args. Handle all arguments
3018         generically.  Special-case variants.
3019         (dbus_g_method_return, dbus_g_method_return_error): New function.
3020         (DBusGSignalClosure): New structure, closes over signal
3021         information.
3022         (dbus_g_signal_closure_new): New function.
3023         (dbus_g_signal_closure_finalize): New function.
3024         (signal_emitter_marshaller): New function; is special marshaller
3025         which emits signals on bus.
3026         (export_signals): New function; introspects object signals and
3027         connects to them.
3028         (dbus_g_object_type_install_info): Take GType instead of
3029         GObjectClass.
3030         (dbus_g_connection_register_g_object): Invoke export_signals.
3031         (dbus_g_connection_lookup_g_object): New function.
3032         (DBusGFuncSignature) New structure; used for mapping type
3033         signatures to marshallers.
3034         (funcsig_hash): New function; hashes DBusGFuncSignature.
3035         (funcsig_equal): New function; compares DBusGFuncSignature.
3036         (_dbus_gobject_lookup_marshaller): New function.
3037         (dbus_g_object_register_marshaller): New function; used to
3038         register a marshaller at runtime for a particular signature.
3039
3040         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3041
3042         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3043         which notes a server method implementation should be
3044         asynchronous.
3045
3046         * glib/dbus-binding-tool-glib.c
3047         (dbus_binding_tool_output_glib_server): Call
3048         dbus_g_value_types_init.
3049         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3050         variants specially.
3051         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3052         of a lookup function.
3053         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3054         (write_untyped_out_args): New method; write output arguments.
3055         (write_formal_declarations_for_direction): Function for
3056         writing prototypes.
3057         (write_formal_parameters_for_direction): Function for
3058         writing implementations.
3059         (write_typed_args_for_direction): Function for writing
3060         arguments prefixed with GTypes.
3061         (write_async_method_client): Write out async version
3062         of method.
3063
3064         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3065         (dbus_g_type_get_marshal_name): Move mapping from GType
3066         to marshal name into here.
3067         (dbus_g_type_get_c_name): Move into here.
3068         (compute_marshaller): Convert signature to type with
3069         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3070         (compute_marshaller_name): Ditto.
3071         (compute_marshaller): Handle async signal annotations.
3072         (gather_marshallers): Return if we don't have a known
3073         prefix.
3074         (generate_glue): Collect introspection blob here, and
3075         write all of the blob at the end.  This allows an object
3076         with multiple interfaces to work.
3077         Mark async methods in introspection blob.
3078
3079         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3080         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3081         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3082
3083         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3084         avoids people accidentally using DBUS_TYPE_* which should
3085         not be necessary anymore.
3086         Do include dbus-gtype-specialized.h, which are utilities
3087         for GLib container types.
3088         Add various #defines for types such as
3089         DBUS_TYPE_G_BOOLEAN_ARRAY.
3090         (DBusGValueIterator, DBusGValue): Define, not fully used
3091         yet.
3092         (dbus_g_value_get_g_type): Type for recursive value.
3093         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3094         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3095         (dbus_g_value_free): Prototypes.
3096         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3097         (dbus_g_proxy_set_interface): Prototype.
3098         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3099         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3100         types.
3101         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3102         Accessors.
3103         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3104         doing async invocations.
3105         (dbus_g_method_return, dbus_g_method_return_error):
3106         Prototypes.
3107         * doc/dbus-tutorial.xml: Update GLib section.
3108         
3109         * tools/dbus-viewer.c (load_child_nodes): Update
3110         for new invocation type of dbus_g_proxy_end_call.
3111         (load_from_service_thread_func): Ditto.
3112
3113         * tools/print-introspect.c (main): Ditto.
3114
3115         * tools/dbus-names-model.c (have_names_notify)
3116         (names_model_reload, names_model_set_connection)
3117         Use GTypes.
3118
3119         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3120         needed since Python bindings use GLib bindings.
3121
3122         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3123         Add --prefix argument.
3124
3125         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3126         unneeded --ignore-unsupported arg.
3127         
3128         * test/glib/test-service-glib.c: 
3129         * test/glib/test-service-glib.xml:
3130         * test/glib/test-dbus-glib.c: Add many more tests.
3131
3132 2005-06-06  David Zeuthen  <davidz@redhat.com>
3133
3134         * doc/TODO: Add item about need to remove deprecated functions.
3135
3136         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3137
3138         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3139         to repair the ABI which was broken with the last commit.
3140
3141 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3142
3143         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3144         (dbus_connection_disconnect): renamed to dbus_connection_close 
3145         for API symmetry with dbus_connection_open
3146         (_dbus_connection_open_internal): 
3147         s/dbus_connection_disconnect/dbus_connection_close
3148
3149         * dbus/dbus-bus.c (dbus_bus_get):
3150         s/dbus_connection_disconnect/dbus_connection_close
3151
3152         * bus/connection.c (bus_connections_unref, 
3153         bus_connections_setup_connection, bus_connections_expire_incomplete):
3154         s/dbus_connection_disconnect/dbus_connection_close
3155
3156         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3157         kill_client_connection_unchecked, check_hello_connection):
3158         s/dbus_connection_disconnect/dbus_connection_close
3159
3160         * bus/bus.c (new_connection_callback):
3161         s/dbus_connection_disconnect/dbus_connection_close
3162
3163         * tools/dbus-send.c (main):
3164         s/dbus_connection_disconnect/dbus_connection_close
3165
3166         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3167         s/dbus_connection_disconnect/dbus_connection_close
3168         
3169         * test/test-service.c (path_message_func, filter_func):
3170         s/dbus_connection_disconnect/dbus_connection_close
3171         
3172         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3173         
3174 2005-05-25  Colin Walters  <walters@verbum.org>
3175
3176         * dbus/dbus-protocol.h: Move various bus service #defines such
3177           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3178           dbus/dbus-shared.h.
3179         * dbus/dbus-shared.h: Various defines moved here.
3180         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3181
3182 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3183
3184         * python/__init__.py: Python bindings deserve a minor version
3185         update.  Upped to (0, 40, 2)
3186
3187 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3188
3189         * python/decorators.py: add explicitly_pass_message decorator
3190         for passing in the dbus message as keyword for edge case signal
3191         handling
3192
3193         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3194         to conform with what dbus expects for match rules
3195         (SignalMatchRule.execute): add the dbus message as a keyword
3196         if the signal handler has requested it
3197
3198         * python/examples/example/signal-recipient.py: added some more
3199         examples on how to hook up to signals
3200
3201 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3202
3203         * python/decorators.py: import dbus_bindings
3204
3205         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3206         SignalMatchNode): new classes that implement wildcard signal
3207         callback matching using a tree lookup. Heavily modified from a
3208         patch sent by Celso Pinto (fd.o bug #3241)
3209
3210         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3211         use new match classes to handle signals.
3212
3213 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3214         
3215         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3216
3217 2005-05-18  Havoc Pennington  <hp@redhat.com>
3218
3219         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3220         gettext. Not really worth requiring yet perhaps, but any
3221         production quality 1.0 would require it so we should go ahead and
3222         get things set up. We do have a couple token calls to
3223         bindtextdomain in the code already.
3224
3225 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3226
3227         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3228         when using recursive g_main_loops
3229
3230         * python/_dbus.py (class Bus): add the ProxyObjectClass
3231         alias for ProxyObject to make it easier for the Twisted 
3232         networking framework to integrate dbus.
3233
3234         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3235         alias for ProxyMethod to make it easier for the Twisted 
3236         networking framework to integrate dbus. 
3237
3238 2005-05-11  Ross Burton  <ross@openedhand.com>
3239
3240         * glib/dbus-glib-tool.c: Add --prefix argument.
3241         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3242         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3243         Add prefix argument.
3244         (generate_glue): Pass prefix argument down.
3245         (dbus_binding_tool_output_glib_server): Pass prefix to
3246         glib-genmarshal.
3247         
3248 2005-05-11  Colin Walters  <walters@verbum.org>
3249
3250         * tools/dbus-send.c (append_array): New function.
3251         (append_arg): Broken out from main.
3252         (main): Add cheesy hack to send arrays and variants.
3253         (usage): Update.
3254         * tools/dbus-print-message.c (print_iter): Broken out
3255         from main.
3256
3257 2005-05-11  Colin Walters  <walters@verbum.org>
3258
3259         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3260         New function, returns signature string for signature iter.
3261         * dbus/dbus-signature.h: Prototype it.
3262         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3263         New function, returns signature string for message iter.
3264         (dbus_message_iter_get_array_len): New function, returns
3265         length of array.
3266         (dbus_message_iter_get_fixed_array): Fix assertion; this
3267         function should be used when the iter is pointing to the
3268         contents of an array
3269         * dbus/dbus-message.h: Prototypes.
3270         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3271         New function; returns length of an array.
3272         * dbus/dbus-marshal-recursive.h: Prototype it.
3273         
3274 2005-05-11  Colin Walters  <walters@verbum.org>
3275
3276         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3277         compilation error.
3278         
3279 2005-05-08  Havoc Pennington  <hp@redhat.com>
3280
3281         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3282         daemon's pid, not the parent's pid, to the file descriptor.
3283         Reported by Taj Morton.
3284
3285 2005-05-05  Havoc Pennington  <hp@redhat.com>
3286
3287         * configure.in (LT_*): add notes on how the libtool versioning
3288         works to save thinking. Increment soname to indicate protocol
3289         breakage (though really the library interface hasn't changed I
3290         guess)
3291
3292         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3293         verify the GUID received from server matches what we were
3294         expecting, if we had an expectation
3295
3296         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3297         (_dbus_auth_get_guid_from_server): new function
3298         (send_begin): parse the OK args
3299
3300         * doc/dbus-specification.xml: add GUID to the auth protocol
3301
3302 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3303
3304         * Fix my name in previous changelog ;)
3305
3306         * python/proxies.py (ProxyObject.__getattr__): add further patch
3307         from Anthony Baxter to throw an AttributeError when python 
3308         __special__ functions are called instead of marshling them over 
3309         the bus (Bug#1685 comment 3).
3310
3311 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3312
3313         * python/Makefile.am: changed to use pyexecdir for the binding
3314         shared libraries (Bug#2494)
3315
3316         * python/exceptions.py: bring exceptions over from the bindings
3317         so they can be used in applications (Bug#2036)
3318         Make all exceptions derive from DBusException
3319
3320         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3321         of classes so that print obj doesn't throw an exception (Bug #1685)
3322
3323 2005-05-03  Ross Burton  <ross@openedhand.com>
3324
3325         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3326         Return if we get an error during registration.  Set up a
3327         weak reference on object to unregister if object is destroyed.
3328         (unregister_gobject): New function.
3329         
3330 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3331
3332         * python/dbus_bindings.pyx.in: 
3333         - added new type classes for hinting to the marashaler what type 
3334         to send over the wire
3335         - added int16 and uint16 marshalers
3336         - Fixed a bug in the type constants that caused int32 to go out
3337         as uint16 over the wire
3338         * python/dbus.py: split up into different files and renamed _dbus.py
3339         * python/__init__.py, python/_util.py, python/decorators.py, 
3340         python/exceptions.py, python/proxies.py, python/services.py,
3341         python/types.py: new files split off from dbus.py
3342         * python/Makefile.am: Add new files, remove dbus.py and 
3343         install all python files to <python module dir>/dbus
3344         * python/examples/*: Added #!/usr/bin/env python to the top of
3345         every example.  Patch provided by Tatavarty Kalyan
3346
3347 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3348
3349         * NEWS: Update to 0.33
3350
3351 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3352
3353         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3354         method for doing async calls
3355         (_pending_call_notification): New C function for handling pendning call
3356         callbacks
3357         (set_notify): New method for setting pending call notification
3358         
3359         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3360         Async capabilities added to remote method calls
3361         (Sender): class removed
3362         (RemoteService): class removed
3363         (ObjectTree): class removed for now
3364         (RemoteObject): Renamed to ProxyObject
3365         (RemoteMethod): Renamed to ProxyMethod
3366         (method): Decorator added for decorating python methods as dbus methods
3367         (signal): Decorator added for decorating python methods as signal emitters
3368         (ObjectType): Metaclass added for generating introspection data and the
3369         method callback vtable
3370         (Interface): Wrapper class added to wrap objects in a dbus interface
3371         (Object): Uses ObjectType as its metaclass and exports Introspect
3372         of the org.freedesktop.DBus.Introspectable interface
3373         (ValidationException, UnknownMethodException): new exceptions
3374
3375         * python/examples/*: Modified to fit with the new bindings
3376
3377 2005-04-23  Havoc Pennington  <hp@redhat.com>
3378
3379         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3380         reported by Tony Houghton
3381
3382         * test/test-service.c (main): test
3383         dbus_connection_get_object_path_data()
3384
3385         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3386         the exact_match
3387         (_dbus_object_tree_get_user_data_unlocked): new function used by
3388         dbus_connection_get_object_path_data()
3389         (do_register): add assertion test for get_user_data_unlocked
3390         (object_tree_test_iteration): more tests
3391
3392         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3393         new function from Dan Reed to let you get the user data from 
3394         dbus_connection_register_object_path()
3395
3396 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3397
3398         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3399         in numerous places that did not account for the NULL terminator
3400         (signature_from_seed): changed the manual string copy loop to 
3401         just use strcpy instead
3402         make check should now pass
3403
3404 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3405
3406         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3407         so that it allows messages that are not signals to pass in 
3408         NULL as the interface.
3409
3410 2005-04-18  David Zeuthen  <davidz@redhat.com>
3411
3412         * glib/dbus-gmain.c (io_handler_destroy_source): 
3413         (timeout_handler_destroy_source, connection_setup_free): 
3414         Also unref the source to avoid memory leaks.
3415
3416 2005-04-13  David Zeuthen  <davidz@redhat.com>
3417
3418         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3419         more reasonable, yet still totally arbitrary, value :-). 
3420
3421 2005-04-13  David Zeuthen  <davidz@redhat.com>
3422
3423         * doc/TODO: Added an "important for 1.0" item about selinux
3424         allow/deny messages
3425
3426 2005-04-13  David Zeuthen  <davidz@redhat.com>
3427
3428         * bus/selinux.c: Add c-file-style to top of file
3429         (log_audit_callback): Don't free the data here anymore
3430         (bus_selinux_check): Don't take spid and tpid since appending
3431         that to auxdata may OOM.
3432         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3433         to the caller if we are OOM by taking an error object.
3434         (bus_selinux_allows_send): -do-
3435
3436         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3437         and bus_selinux_allows_send
3438
3439         * bus/bus.c (bus_context_check_security_policy): Pass error and
3440         pass on OOM thrown by bus_selinux_allows_send()
3441
3442         * bus/services.c (bus_registry_acquire_service): Pass error and
3443         pass on OOM thrown by bus_selinux_allows_acquire_service()
3444
3445 2005-04-13  Havoc Pennington  <hp@redhat.com>
3446
3447         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3448         message at a time to avoid monopolizing the main loop, bug 
3449         #2953 from Benjamin Otte
3450
3451 2005-04-09  Havoc Pennington  <hp@redhat.com>
3452
3453         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3454         possible overlap, fix from Daniel Reed
3455         (fixup_alignment): fix signedness warnings
3456         (_dbus_string_append_unichar): ditto
3457
3458 2005-04-09  Havoc Pennington  <hp@redhat.com>
3459
3460         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3461
3462         * glib/dbus-glib-tool.c (main): fix warning
3463
3464         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3465
3466         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3467         add a new function that can be used in simple applications that
3468         don't have a main loop and are willing to block
3469
3470 2005-04-05  David Zeuthen  <davidz@redhat.com>
3471
3472         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3473
3474         * glib/dbus-gmain.c:
3475         (io_handler_destroy_source): Remove from list of IO handlers
3476         of the ConnectionSetup object
3477         (timeout_handler_destroy_source): -do- for timeout handlers
3478         (io_handler_source_finalized): Don't remove from list since
3479         we now do that in io_handler_destroy_source(). Renamed from
3480         io_handler_source_destroyed
3481         (timeout_handler_source_destroyed): -do- for timeout handlers
3482         (connection_setup_free): It is now safe to iterate over all
3483         IO and timeout handlers as the _destroy_source removes them
3484         from the list synchronously
3485
3486 2005-03-30  Havoc Pennington  <hp@redhat.com>
3487
3488         * configure.in: change check to gtk 2.4
3489
3490         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3491         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3492         to 2.4
3493
3494 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3495
3496         * News: Update 0.32
3497
3498         * HACKING: Fixed realease instructions.  configure.in should be updated to
3499           the next release by the person who made the last release.
3500
3501 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3502
3503         * python/lvalue_cast_post_process.py - removed.  Patch has been
3504           submitted to Pyrex maintainers that fixes gcc4.0 errors
3505
3506         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3507
3508 2005-03-24  Daniel Reed  <n@ml.org>
3509
3510         * tools/Makefile.am: Make print-introspect and
3511         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3512
3513 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3514
3515         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3516
3517         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3518           had in Red Hat packages for a while but for some reason never 
3519           got merged upstream
3520           (_dbus_is_a_number): New checks if a string
3521           can be converted to a number and does the conversion if it can
3522           (_dbus_user_database_lookup): Add check to see if the given username
3523           is a udi.  This allows udi's to be used instead of usernames in the
3524           config file.
3525           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3526           is a gdi.  This allows gdi's to be used instead of groupnames in the
3527           config file.
3528
3529 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3530
3531         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3532           code so that it compiles with gcc4.0
3533
3534         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3535           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3536           results back to dbus_binding.c
3537
3538 2005-03-20  Colin Walters  <walters@verbum.org>
3539
3540         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3541
3542         * configure.in: Require GTK+ 2.6.
3543         
3544 2005-03-20  Colin Walters  <walters@verbum.org>
3545
3546         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3547
3548 2005-03-17  Tom Parker  <palfrey@tevp.net>
3549
3550         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3551         print DBUS_UID_UNSET; instead print passed username.  Also
3552         be sure to actually use gid looked up in cache.
3553         
3554         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3555         for DBUS_GID_UNSET and groupname.
3556
3557 2005-03-17  Colin Walters  <walters@verbum.org>
3558
3559         * bus/print-introspect.c: Move to tools/.
3560         * bus/run-with-tmp-session-bus.sh: Ditto.
3561         
3562         * glib/Makefile.am (dbus-glib-bindings.h): Move
3563         generation to tools/Makefile.am.
3564
3565         * test/glib/run-test.sh: Update to handle move
3566         of run-with-tmp-session-bus.sh.
3567
3568         * test/glib/test-service-glib.c: Update to handle
3569         move of dbus-glib-bindings.h.
3570
3571         * tools/print-introspect.c: Moved here
3572         from bus/, and ported to GLib bindings.
3573
3574         * tools/run-with-tmp-session-bus.sh: Moved here
3575         from bus/.
3576
3577         * tools/Makefile.am: Generate dbus-glib-bindings.h
3578         and dbus-bus-introspect.xml here.
3579
3580         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3581         Update.
3582
3583 2005-03-17  Colin Walters  <walters@verbum.org>
3584
3585         * bus/driver.c (write_args_for_direction): Use
3586         _dbus_string_get_const_data to retrieve string;
3587         _dbus_string_get_const_data_len doesn't actually return
3588         a NULL-terminated substring.
3589
3590         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3591         (main): Change to use org_freedesktop_DBus_request_name
3592         instead of using g_proxy_begin_call/end_call.
3593
3594 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3595
3596         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3597         generating the finalizer.  Fixes from Ben Maurer.
3598
3599 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3600
3601         * mono/BusDriver.cs: Update method names: ListServices
3602         becomes ListNames; GetOwner becomes GetNameOwner.
3603
3604         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3605         onto the eval stack when removing the delegate.
3606
3607 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3608
3609         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3610         LT_CURRENT.  Set it to the autoconf variable.
3611                                                                                 
3612         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3613         classes that disconnects the signal handler delegate from the
3614         service object.  Fixes a big leak of proxy objects on the
3615         client side of things.  Patch from Ben Maurer
3616         <bmaurer@ximian.com>
3617
3618 2005-03-12  Colin Walters  <walters@verbum.org>
3619
3620         * bus/driver.c (write_args_for_direction): New function,
3621         parses a type signature into arguments and outputs to
3622         XML.
3623         (bus_driver_handle_introspect): Use it instead of
3624         hardcoding XML for certain signatures.
3625         
3626         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3627         dependency on dbus-daemon.
3628
3629         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3630         argument, pass it to dbus_binding_tool_output_glib_client.
3631
3632         * glib/dbus-binding-tool-glib.c
3633         (generate_client_glue): Protect against multiple inclusion.
3634         (dbus_binding_tool_output_glib_client): Add
3635         G_BEGIN_DECLS/G_END_DECLS.
3636
3637         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3638         Change to just take iface prefix directly.
3639         (write_formal_parameters): Clarify error message.
3640         (check_supported_parameters): New function; checks to see type
3641         signatures of method parameters are supported.
3642         (generate_client_glue): Handle ignore_unsupported flag.
3643         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3644         parameter.
3645
3646         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3647         --ignore-unsupported by default until glib bindings
3648         support arrays.
3649
3650 2005-03-11  Colin Walters  <walters@verbum.org>
3651
3652         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3653         install it.
3654
3655         * bus/print-introspect.c: New file; prints introspection
3656         data for a given name and object path.
3657
3658         * bus/run-with-tmp-session-bus.sh: New file, refactored
3659         from test/glib/run-test.sh.  Creates a temporary session
3660         bus and runs another program.
3661
3662         * test/glib/run-test.sh: Refactor to invoke
3663         run-with-tmp-session-bus.sh.
3664
3665         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3666         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3667         macros instead of hardcoding.
3668
3669         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3670
3671 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3672
3673         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3674         this unref; it doesn't match up evenly in some codepaths.
3675         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3676         this evenly matches with the ref near the top of this function.
3677
3678 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3679
3680         * dbus/dbus-object-tree.c
3681         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3682         and we try to unregister a path that's not registered, still go
3683         through the process of unlocking and don't just return.
3684
3685 2005-03-09  Colin Walters  <walters@verbum.org>
3686
3687         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3688         to this are generated for client-side wrappers.  Invokes a
3689         D-BUS method and returns reply values.  
3690
3691         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3692         function; writes signature string for argument direction.
3693         (write_args_for_direction): Change to pass input values directly
3694         instead of via address, and fix indentation.
3695         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3696         make generated wrappers inlineable.
3697
3698         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3699         note about using dbus_type_is_fixed.
3700
3701         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3702         dbus/dbus-signature.c as dbus_type_is_fixed.
3703
3704         All callers updated.
3705
3706         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3707         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3708
3709         * dbus/dbus-signature.h: Prototype.
3710
3711         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3712         error printf code.
3713
3714         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3715         appropriate instead of just freeing it.
3716         (main): Free returned strings using g_free.
3717
3718         * test/glib/Makefile.am (test-service-glib-glue.h)
3719         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3720
3721         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3722         simply maps a simple D-BUS type to GType.
3723         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3724         GType.
3725         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3726         initialize the value with it.
3727         (dbus_gvalue_binding_type_from_type): Unused, delete.
3728         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3729         various types instead of unmarshalling to value data directly.
3730         Remove can_convert boolean.
3731         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3732         returning directly instead of using can_convert boolean.
3733         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3734         Stores a GValue in a pointer to a value of its corresponding C
3735         type.
3736
3737         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3738         add dbus_gvalue_store.
3739
3740 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3741
3742         Fix a bunch of lifecycle and memory management problems
3743         in the mono bindings.
3744
3745         * mono/Arguments.cs (Arguments): Implement IDisposable
3746
3747         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3748         strictly a static class.
3749
3750         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3751         delegates into this file.
3752         (Connection): Implement IDisposable.
3753         (Dispose): Disconnect the connection and set the raw connection
3754         pointer to IntPtr.Zero.
3755         (~Connection): Call Dispose().
3756         (RegisterObjectPath): Added.  Manages the registration of object
3757         paths so we can cleanly disconnect them at dispose/finalize time.
3758         (UnregisterObjectPath): Ditto.
3759         (set_RawConnection): Unregister all of the object paths when
3760         changing the underlying DBusConnection.  Add them back onto the
3761         new connection, if any.
3762
3763         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3764         more unmanaged resources anymore, so it's not necessary.  Move all
3765         the DBusObjectPathVTable stuff out of here.
3766         (Handler): Save references to our delegates so that they don't get
3767         finalized.  Call Connection.RegisterObjectPath() instead of
3768         dbus_connection_register_object_path() directly.
3769         (Message_Called): Dispose the message after we're finished with
3770         it.
3771
3772         * mono/Message.cs (Message): Implement IDisposable.
3773         (Dispose): Dispose the Arguments, and set the RawMessage to
3774         IntPtr.Zero.
3775         (SendWithReplyAndBlock): We own the ref to the reply that comes
3776         back from dbus_connection_send_with_reply_and_block() so add a
3777         comment about that and unref it after we've constructed a managed
3778         MethodReturn class around it.  Fixes a big, big leak.
3779
3780         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3781         method.
3782         (BuildSignalHandler): After we've sent the Signal message, dispose
3783         of it.
3784         (BuildMethod): Dispose of the method call and reply messages after
3785         we've sent the message and extracted the data we want from the
3786         reply.
3787
3788         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3789         anymore.
3790         (Service_FilterCalled): Dispose of the message after we're
3791         finished with it.
3792
3793 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3794
3795         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3796         After we attach our pending call to the connection, unref
3797         it.  Fixes a leak.
3798  
3799         * mono/Connection.cs (set_RawConnection): Disconnect our
3800         filter and match callbacks from the old connection and
3801         reconnect them to the new connection, if any.
3802
3803         * mono/DBusType/Array.cs: "Code" is a static member, so
3804         don't use "this" to refer to it.  Fix for stricter checking
3805         in Mono 1.1.4.
3806  
3807         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3808         object path that we pass into unmanaged code.
3809  
3810         * mono/DBusType/String.cs (Append): Don't leak the string
3811         that we pass into unmanged code.
3812
3813 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3814         * NEWS: Update for 0.31
3815
3816         * configure.in: Release 0.31
3817         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3818
3819         * qt/Makefile.am: fixed build
3820
3821         * dbus/Makefile.am: soname bump for libdbus
3822
3823         * glib/Makefile.am: soname bump for libdbus-glib
3824
3825 2005-03-05  Havoc Pennington  <hp@redhat.com>
3826
3827         * dbus/dbus-sysdeps.c:
3828         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3829         value
3830         (_dbus_generate_random_bytes_buffer): fix return value
3831
3832         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3833         checks actually work, from Tom Parker <fdo@tevp.net>
3834
3835 2005-03-01  Colin Walters  <walters@verbum.org>
3836
3837         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3838         functions copied from dbus-glib-tool.c.
3839         (main): Convert lots of error code to use them.
3840         Also add some testing for introspection bits.
3841
3842 2005-03-01  Colin Walters  <walters@verbum.org>
3843         
3844         * doc/TODO: Remove introspection signature TODO.
3845
3846 2005-02-27  Colin Walters  <walters@verbum.org>
3847
3848         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3849         Change return value to const char * instead of int so we can do
3850         full signatures.
3851         (struct PropertyInfo, struct ArgInfo): Store char *.
3852         (property_info_new, arg_info_new): Update parameters, strdup.
3853         (property_info_unref, arg_info_unref): Free.
3854
3855         * glib/dbus-gidl.h: Update prototypes.
3856
3857         * glib/dbus-gparser.c (basic_type_from_string): Delete.
3858         (validate_signature): New function, just validates signature and
3859         sets GError.
3860         (parse_property, parse_arg): Invoke validate_signature.  Store
3861         signature instead of just type code.
3862
3863         * glib/dbus-gvalue.c (base_type_from_signature): New utility
3864         function to return a primary type for a signature, dropping
3865         information about types in container types.
3866         (dbus_gvalue_genmarshal_name_from_type)
3867         (dbus_gvalue_binding_type_from_type)
3868         (dbus_gvalue_ctype_from_type): Update to take full signature
3869          instead of type code.
3870         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3871
3872         * glib/dbus-gvalue.h: Update prototypes for above.
3873
3874         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3875         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3876         (introspect_properties, introspect_signals, write_interface):
3877         Update to handle signatures, and remove usage of
3878         _dbus_gutils_type_to_string.
3879         (handle_introspect): Print out type codes instead of e.g. "string"
3880         in hardcoded introspection XML; also use x_AS_STRING constants
3881         instead of hardcoding in string.
3882
3883         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3884         to string.  Remove usage of _dbus_gutils_type_to_string.
3885
3886         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3887
3888         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3889         deletion.
3890         
3891         * glib/dbus-binding-tool-glib.c (compute_marshaller)
3892         (compute_marshaller_name, generate_glue): Handle signature change
3893         to string.
3894         (write_formal_parameters, write_args_for_direction): Ditto, and
3895         remove FIXME.
3896
3897         * tools/dbus-tree-view.c (type_to_string): Delete.
3898         (info_set_func_text): Update to print full signatures.
3899
3900         * test/glib/test-service-glib.xml: Change types to new
3901         introspection format.
3902
3903 2005-02-26  Havoc Pennington  <hp@redhat.com>
3904
3905         * doc/TODO: remove the "guid" item
3906
3907         * test/glib/test-profile.c (no_bus_thread_func): use open_private
3908         (with_bus_thread_func): use open_private
3909
3910         * dbus/dbus-connection.c (dbus_connection_open_private): new
3911         function that works like the old dbus_connection_open()
3912         (dbus_connection_open): now returns an existing connection if
3913         possible
3914
3915         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3916         through the GUID to the transport
3917
3918         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3919         GUID in hex-encoded form.
3920
3921         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3922         pass GUID argument in to the transport
3923
3924         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3925         guid argument
3926
3927         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3928
3929         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3930
3931 2005-02-25  Havoc Pennington  <hp@redhat.com>
3932
3933         * doc/dbus-specification.xml: document the GUID thing
3934
3935         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3936         globally unique ID for the server, and put a "guid=hexencoded"
3937         field in the address
3938
3939         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3940
3941         * dbus/dbus-message.c: ditto
3942
3943         * dbus/dbus-dataslot.c: ditto
3944
3945         * dbus/dbus-list.c: ditto
3946
3947         * dbus/dbus-internals.h: wait, just include
3948         dbus-threads-internal.h here
3949         
3950         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3951         use in main library
3952
3953         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3954
3955 2005-02-24  Colin Walters  <walters@verbum.org>
3956
3957         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3958
3959 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
3960
3961         * glib/Makefile.am: added dbus-gobject.h to sources list
3962         so distcheck doesn't fail
3963         
3964 2005-02-24  Havoc Pennington  <hp@redhat.com>
3965
3966         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3967         you must disconnect before unref, since locking and other things
3968         are screwed up otherwise. Fix assorted other locking stuff.
3969
3970         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3971         fix compilation
3972
3973         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3974         into a private header and don't export from the library
3975
3976         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3977
3978 2005-02-24  Colin Walters  <walters@verbum.org>
3979         
3980         * dbus/dbus-signature.c: New file; implements various functions
3981         related to type signatures.  Includes an interator for parsing,
3982         validation functions.
3983         (dbus_type_is_basic): Moved here from
3984         dbus-marshal-basic.c:_dbus_type_is_basic.
3985         (dbus_type_is_container): Moved here from
3986         dbus-marshal-basic.c:_dbus_type_is_container.
3987
3988         All callers of _dbus_type_is_container and _dbus_type_is_basic
3989         updated, and include dbus-signature.h.
3990
3991         * dbus/dbus-signature.h: New file; prototypes for the above.
3992
3993         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3994         dbus-signature.h.
3995
3996         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3997         function factored out of _dbus_first_type_in_signature.
3998         (_dbus_first_type_in_signature_c_str): New function; returns first
3999         type code for a type signature character.
4000
4001         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4002         handle function moves.
4003
4004         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4005
4006         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4007         function; skips to next complete type in type signature.
4008         Implemented using previous skip_one_complete_type.  Now
4009         skip_one_complete_type just delegates to
4010         _dbus_type_signature_next.
4011
4012         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4013         to dbus-signature.c
4014         (_dbus_type_is_container): Ditto.
4015
4016         * doc/dbus-specification.xml: Update introspection sample to
4017         use real type signatures.
4018
4019         * dbus/dbus-test.h: Prototype signature test.
4020
4021         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4022         signature tests.
4023
4024         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4025
4026 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4027
4028         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4029         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4030
4031 2005-02-21  Colin Walters  <walters@verbum.org>
4032
4033         * dbus/dbus-test-main.c (main): Take optional specific test
4034         argument.
4035
4036         * dbus/dbus-test.c (run_test): New function, runs a test function
4037         with no data directory.
4038         (run_data_test): Like above, but takes data directory.
4039         (dbus_internal_do_not_use_run_tests): Take
4040         specific test argument.  Replace lots of cut n' paste code
4041         with run_test and run_data_test.
4042
4043         * dbus/dbus-test.h: Update prototype for
4044         dbus_internal_do_not_use_run_tests.
4045
4046 2005-02-20  Havoc Pennington  <hp@redhat.com>
4047
4048         Fix bugs reported by Daniel P. Berrange
4049         
4050         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4051         (protected_change_watch): new function
4052         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4053         (_dbus_server_add_watch): change to work like the
4054         dbus-connection.c equivalents; like those, probably kind of
4055         busted, but should at least mostly work for now
4056         (dbus_server_disconnect): drop the lock if we were already
4057         disconnected, patch from Daniel P. Berrange
4058
4059         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4060         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4061         same stuff
4062
4063         * doc/TODO: todo about unscrewing this mess
4064
4065 2005-02-19  Colin Walters  <walters@verbum.org>
4066
4067         * glib/dbus-binding-tool-glib.c
4068         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4069
4070         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4071         as errno.h and sys/stat.h.
4072         (lose): New function, prints error with
4073         newline and exits.
4074         (lose_gerror): Similar, but takes GError for message.
4075         (main): Add --output argument to specify output file to write to,
4076         instead of always printing to stdout.  In this mode, determine
4077         timestamps on source files to see whether any are newer than the
4078         target file.  If not, exit.  Also convert a number of error
4079         messages to use lose (since it's shorter), and switch to using
4080         g_io_channel_shutdown.
4081
4082 2005-02-19  Havoc Pennington  <hp@redhat.com>
4083
4084         * glib/dbus-gobject.c
4085         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4086
4087         * glib/dbus-glib.c: fix doxygen warnings
4088
4089         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4090         is found on an <arg>
4091
4092 2005-02-17  Colin Walters  <walters@verbum.org>
4093
4094         * glib/dbus-gobject.h: Don't export
4095         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4096         
4097         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4098         (invoke_object_method): Handle it.
4099
4100         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4101         Handle rename.
4102         
4103 2005-02-17  Colin Walters  <walters@verbum.org>
4104
4105         * bus/.cvsignore, doc/.cvsignore
4106         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4107         Update.
4108
4109 2005-02-17  Colin Walters  <walters@verbum.org>
4110         
4111         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4112         Rename to DBUS_SERVICE_DBUS.
4113         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4114         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4115         Change the value from "org.freedesktop.Local"
4116         to "org.freedesktop.DBus.Local".
4117         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4118         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4119         DBUS_INTERFACE_INTROSPECTABLE.
4120         Change the value from "org.freedesktop.Introspectable"
4121         to "org.freedesktop.DBus.Introspectable".
4122         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4123         DBUS_INTERFACE_PROPERTIES.
4124         Change the value from "org.freedesktop.Properties"
4125         to "org.freedesktop.DBus.Properties".
4126         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4127         DBUS_INTERFACE_PEER.
4128         Change the value from "org.freedesktop.Peer"
4129         to "org.freedesktop.DBus.Peer".
4130         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4131         DBUS_INTERFACE_LOCAL.
4132         Change the value from "org.freedesktop.Local"
4133         to "org.freedesktop.DBus.Local".
4134
4135         All other users of those constants have been changed.
4136
4137         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4138
4139         * glib/dbus-gobject.c (handle_introspect): Use constants.
4140
4141         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4142
4143 2005-02-17  Colin Walters  <walters@verbum.org>
4144
4145         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4146         (parse_node, parse_interface, parse_method, parse_signal)
4147         (parse_property, parse_annotation): Lose if we're currently in an
4148         annotation.
4149         (parse_annotation): New function.
4150         (parser_start_element, parser_end_element): Handle annotation.
4151         (parse_method, parse_interface): Remove support for c_name attribute,
4152         switch to annotations.
4153
4154         * glib/dbus-gidl.h (interface_info_get_binding_names)
4155         (method_info_get_binding_names)
4156         (interface_info_get_binding_name, method_info_get_binding_name)
4157         (interface_info_set_binding_name, method_info_set_binding_name):
4158         Remove.
4159         (interface_info_get_annotations, method_info_get_annotations)
4160         (interface_info_get_annotation, method_info_get_annotation)
4161         (interface_info_add_annotation, method_info_add_annotation):
4162         Prototype.
4163
4164         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4165         for "bindings".
4166         (struct MethodInfo): Ditto.
4167         Straightfoward conversion of binding methods into annotation methods
4168         as prototyped.
4169
4170         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4171
4172         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4173
4174         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4175         Use new annotation API.
4176
4177         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4178         annotation element.
4179         
4180         * doc/dbus-specification.xml: Discuss introspection annotations,
4181         include list of well-known annotations.
4182
4183         * test/glib/test-service-glib.xml: Make validate against new DTD.
4184
4185 2005-02-17  Colin Walters  <walters@verbum.org>
4186
4187         This patch is based on initial work from
4188         Paul Kuliniewicz <kuliniew@purdue.edu>.
4189
4190         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4191         initialization of GValue from dbus type to here.
4192         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4193         for the "glib-genmarshal" program from a DBus type.
4194         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4195         into the C name for it we use in the glib bindings.
4196         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4197         glib C type (not GValue).
4198         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4199
4200         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4201         from dbus-gobject.c.
4202
4203         * glib/dbus-gutils.h: Prototype it.
4204
4205         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4206         (marshal_dbus_message_to_g_marshaller): Use new shared function
4207         dbus_glib_marshal_dbus_message_to_gvalue_array.
4208
4209         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4210         Will be changed once we have annotations.
4211
4212         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4213         GStaticRWLock.  Callers updated.
4214         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4215         (string_table_next): New function for iterating over zero-terminated
4216         string value array.
4217         (string_table_lookup): New function; retrieves specific entry in
4218         array.
4219         (get_method_data): New function; look up method data in object data chunk.
4220         (object_error_domain_prefix_from_object_info)
4221         (object_error_code_from_object_info): New functions, but not implemented yet.
4222         (method_interface_from_object_info): New function; retrieve interface name.
4223         (method_name_from_object_info): New function; retrieve method name.
4224         (method_arg_info_from_object_info): New function; retrieve argument data.
4225         (arg_iterate): New function; iterates over serialized argument data.
4226         (method_dir_signature_from_object_info): New function; returns a
4227         GString holding type signature for arguments for just one
4228         direction (input or output).
4229         (method_input_signature_from_object_info)
4230         (method_output_signature_from_object_info): New functions.
4231         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4232         converts dbus message arguments into a GValue array.  Used for both
4233         signal handling and method invocation.
4234         (struct DBusGlibWriteIterfaceData): New utility structure.
4235         (write_interface): New function; generate introspection XML for
4236         an interface.
4237         (introspect_interfaces): New function; gathers all interface->methods,
4238         generates introspection XML for them.
4239         (handle_introspect): Invoke introspect_interfaces.
4240         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4241         (lookup_object_and_method): New function; examines an incoming message
4242         and attempts to match it up (via interface, method name, and argument
4243         signature) with a known object and method.
4244         (gerror_domaincode_to_dbus_error_name): New function; converts a
4245         GError domain and code into a DBus error name.  Needs GError data
4246         added to object introspection to work well.
4247         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4248         GError.
4249         (invoke_object_method): New function to invoke an object method
4250         looked up via lookup_object_and_method.  Parses the incoming
4251         message, turns it into a GValue array, then invokes the marshaller
4252         specified in the DBusGMethodInfo.  Creates a new message with
4253         either return values or error message as appropriate.
4254         (gobject_message_function): Invoke lookup_object_and_method and
4255         invoke_object_method.
4256
4257         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4258         (enum DBusBindingOutputMode): New enum for binding output modes.
4259         (pretty_print): Print binding names.
4260         (dbus_binding_tool_error_quark): GError bits.
4261         (version): Fix typo.
4262         (main): Create GIOChannel for output.  Parse new --mode argument,
4263         possible values are "pretty-print", "glib-server", "glib-client".
4264         Use mode to invoke appropriate function.
4265         
4266         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4267
4268         * glib/dbus-glib-tool.h: New header, just includes GError bits
4269         for now.
4270
4271         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4272         maps binding style to name.
4273         (struct MethodInfo): Ditto.
4274         (get_hash_keys, get_hash_key): Utility function, returns keys for
4275         a GHashTable.
4276         (interface_info_new, method_info_new): Initialize bindings.
4277         (interface_info_unref, method_info_unref): Destroy bindings.
4278         (method_info_get_binding_names, method_info_get_binding_name)
4279         (interface_info_get_binding_names, interface_info_get_binding_name):
4280         Functions for retrieving binding names.
4281         (method_info_set_binding_name, interface_info_set_binding_name):
4282         Functions for setting binding names.
4283
4284         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4285         for glib binding generation.
4286
4287         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4288         and client-side glib glue generation.
4289
4290         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4291         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4292         dbus-glib-tool.h.
4293
4294         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4295         of using GClosureMarshal directly.
4296         (struct DBusGObjectInfo): Add n_infos member.
4297
4298         * test/glib/test-service-glib.xml: New file; contains introspection data
4299         for MyTestObject used in test-service-glib.c.
4300
4301         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4302         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4303         (my_object_uppercase, my_object_many_args): New test methods.
4304         (main): Use dbus_g_object_class_install_info to include generated object
4305         info.
4306
4307         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4308         as well as client-side bindings.
4309
4310         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4311         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4312         using both the dbus_gproxy stuff directly as well as the generated bindings.
4313
4314 2005-02-15  Havoc Pennington  <hp@redhat.com>
4315
4316         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4317         complete a pending call, don't run filters first.
4318
4319         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4320         dbus_pending_call_steal_reply
4321
4322         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4323         _dbus_connection_block_pending_call
4324         (dbus_pending_call_get_reply): change to steal_reply and return a
4325         ref
4326
4327         * dbus/dbus-connection.c
4328         (dbus_connection_send_with_reply_and_block): port to work in terms
4329         of DBusPendingCall
4330         (_dbus_connection_block_pending_call): replace block_for_reply
4331         with this
4332
4333 2005-02-14  Havoc Pennington  <hp@redhat.com>
4334
4335         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4336         properly handle looking up group information by name; fix 
4337         from j@bootlab.org
4338
4339 2005-02-13  Havoc Pennington  <hp@redhat.com>
4340
4341         * dbus/dbus-connection.c (dbus_connection_return_message) 
4342         (dbus_connection_borrow_message): hold dispatch lock while message
4343         is outstanding
4344         (_dbus_connection_block_for_reply): hold dispatch lock while we
4345         block for the reply, so nobody steals our reply
4346         (dbus_connection_pop_message): hold the dispatch lock while we
4347         pluck the message
4348
4349 2005-02-13  Havoc Pennington  <hp@redhat.com>
4350
4351         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4352         (_dbus_connection_release_dispatch)
4353         (_dbus_connection_acquire_io_path)
4354         (_dbus_connection_release_io_path): make the mutex and condvar
4355         control access to the "acquired" flag. Drop the connection lock
4356         while waiting on the condvar. Hopefully these are baby steps in
4357         roughly the right direction.
4358
4359 2005-02-13  Havoc Pennington  <hp@redhat.com>
4360
4361         * dbus/dbus-connection.c: use separate mutexes for the condition
4362         variables; this is some kind of baseline for sanity, but the
4363         condition variables still aren't used correctly afaict
4364
4365 2005-02-13  Havoc Pennington  <hp@redhat.com>
4366
4367         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4368         fix a double-unlock
4369
4370         * dbus/dbus-connection.c
4371         (_dbus_connection_detach_pending_call_unlocked): add this
4372
4373         Initial semi-correct pass through to fix thread locking; there are
4374         still some issues with the condition variable paths I'm pretty
4375         sure
4376         
4377         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4378         lock/unlock calls
4379
4380         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4381         rename to add _unlocked
4382         (struct DBusConnection): move "dispatch_acquired" and
4383         "io_path_acquired" to use only one bit each.
4384         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4385         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4386         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4387         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4388         (_dbus_connection_remove_timeout) 
4389         (_dbus_connection_toggle_timeout): drop lock when calling out to
4390         user functions; done in a hacky/bad way.
4391         (_dbus_connection_send_and_unlock): add a missing unlock
4392         (_dbus_connection_block_for_reply): add a missing unlock
4393
4394         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4395         drop lock in a hacky probably unsafe way to call out to user
4396         function
4397
4398 2005-02-12  Havoc Pennington  <hp@redhat.com>
4399
4400         * tools/dbus-tree-view.c (info_set_func_text): display more
4401         details on args
4402
4403         * bus/driver.c (bus_driver_handle_list_services): list the bus
4404         driver
4405
4406         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4407
4408         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4409         (method_info_get_n_args): new function
4410
4411 2005-02-12  Havoc Pennington  <hp@redhat.com>
4412
4413         * bus/driver.c (bus_driver_handle_introspect): add introspection
4414         for bus driver
4415
4416 2005-02-12  Havoc Pennington  <hp@redhat.com>
4417
4418         * bus/driver.c: put the signature of each bus driver method in the
4419         table of handlers and check it on incoming calls; this isn't
4420         really useful, but going to add introspect support in a minute.
4421
4422 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4423
4424         * mono/Connection.cs: The unpredictability of finalizers in mono
4425         prevents us from deterministically disconnecting the filters from
4426         the Service class's finalizer, so move tracking of filters and
4427         matches here.  Add API for that.
4428
4429         * mono/Service.cs: Remove the code, add code which calls the
4430         methods now on the Connection class.
4431
4432 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4433
4434         * python/dbus.py (class Sender): added to support dbus signals better
4435         (Bus::add_signal_receiver): added expand_args parameter which defaults
4436         to True.  When expand args is True the signal handler will pass the 
4437         message arguments as parameters to the signal handler.  If False
4438         revert to previous behavior where the signal handler must get the
4439         argument list from the message.  This is to help port applications
4440         like HAL that have a tendancy to send variable length argument lists.
4441         self._match_rule_to_receivers is now a dict of dicts.
4442         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4443         removing it from a list
4444         (Bus::_signal_func): change signal handlers so that interface,
4445         signal_name, service, path and message are packed into a Sender
4446         object and that is passed to the handler.  If expand_args is True
4447         extract the args list from the message and append it to the parameter
4448         list
4449         
4450         * python/dbus_bindings.pyx.in (class Signature): added to support 
4451         signiature types
4452         (MessageIter::__init__): changed iteration limit to match D-BUS
4453         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4454         STRUCT and VARIENT type support
4455         (MessageIter::python_value_to_dbus_sig): made recursive to support
4456         recursive types
4457         (MessageIter::append*): added Signature, dict, tuple 
4458         support
4459
4460         * python/examples/example-client.py: added examples of getting tuples
4461         and dicts
4462
4463         * python/examples/example-service.py: added examples of sending tuples
4464         and dicts
4465
4466         * python/examples/example-signal-recipient.py: Fixed to handle new
4467         signal callback format
4468
4469 2005-02-10  Havoc Pennington  <hp@redhat.com>
4470
4471         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4472         (call dbus_g_proxy_add_signal)
4473
4474         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4475         escape the hostname
4476         (_dbus_server_new_for_domain_socket): escape the path
4477
4478         * dbus/dbus-address.c (dbus_address_escape_value): new
4479         (dbus_address_unescape_value): new
4480         (dbus_parse_address): unescape values
4481
4482         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4483
4484         * doc/dbus-specification.xml: explain how to escape values in
4485         addresses
4486
4487 2005-02-10  Havoc Pennington  <hp@redhat.com>
4488
4489         * dbus/dbus-message-factory.c (generate_special): modify test to
4490         avoid using a non-basic dict key
4491
4492         * dbus/dbus-marshal-validate-util.c: add test for the below
4493
4494         * doc/dbus-specification.xml: require that dict keys are a basic
4495         type
4496
4497         * dbus/dbus-marshal-validate.c
4498         (_dbus_validate_signature_with_reason): require that dict key is a
4499         basic type
4500
4501 2005-02-10  Havoc Pennington  <hp@redhat.com>
4502
4503         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4504         change to be _and_unlock instead of _unlocked
4505
4506         * dbus/dbus-connection.c
4507         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4508         have no_update so we can find this bug quickly in future
4509
4510 2005-02-10  Havoc Pennington  <hp@redhat.com>
4511
4512         * dbus/dbus-message-util.c (verify_test_message): tests for string
4513         array
4514
4515         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4516         support for arrays of string/signature/path
4517
4518 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4519
4520         * dbus/dbus-connection.c
4521         (_dbus_connection_queue_received_message_link,
4522         _dbus_connection_message_sent): Add the path to
4523         the verbose output.
4524         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4525         _dbus_connection_send_preallocated_unlocked(), updated the
4526         dispatch status, and unlocks.  Fixes a bug where certain
4527         situations (like a broken pipe) could cause a Disconnect message
4528         to not be sent, tricking the bus into thinking a service was still
4529         there when the process had quit.
4530         (_dbus_connection_send_preallocated): Call
4531         _dbus_connection_send_preallocated_and_unlock().
4532         (_dbus_connection_send_and_unlock): Added.  Calls
4533         _dbus_connection_send_preallocated_and_unlock().
4534         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4535         (dbus_connection_send_with_reply): Update the dispatch status and
4536         unlock.
4537
4538         * mono/Service.cs (~Service): Added.  Removes the filter so that
4539         we don't get unmanaged code calling back into a GCed delegate.
4540         (RemoveFilter); Added.
4541
4542 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4543
4544         * dbus/dbus-message.c (dbus_message_iter_open_container):
4545         - Removed check for iterator type being an array because
4546         get_arg_type does not work with writer iterators
4547         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4548
4549 2005-02-07  Havoc Pennington  <hp@redhat.com>
4550
4551         * doc/dbus-specification.xml: some more language cleanups; add
4552         stuff about how to deal with invalid protocol and extension
4553         points; add _ to allowed chars in auth commands; add EXTENSION_
4554         auth command prefix
4555
4556 2005-02-06  Havoc Pennington  <hp@redhat.com>
4557
4558         * s/expected/required/ in a couple places for clarity
4559
4560 2005-02-07  Colin Walters  <walters@verbum.org>
4561
4562         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4563         sender or proposed_recipient.
4564
4565 2005-02-06  Havoc Pennington  <hp@redhat.com>
4566
4567         * dbus/dbus-message-factory.c (generate_special): more tests
4568
4569         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4570         array length that exceeds the maximum
4571
4572 2005-02-05  Havoc Pennington  <hp@redhat.com>
4573
4574         * dbus/dbus-message-factory.c (generate_special): more test cases,
4575         increasing coverage
4576
4577         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4578         reason why a signature was invalid
4579
4580         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4581         skip the length of the string before we look at it in validation
4582
4583         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4584         equal_substring
4585
4586         * dbus/dbus-message.c (_dbus_message_loader_new): default
4587         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4588
4589 2005-02-05  Havoc Pennington  <hp@redhat.com>
4590
4591         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4592         if the signature of a variant was empty
4593         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4594         struct with no element type)
4595
4596         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4597         mangled messages to break things
4598
4599 2005-02-04  Havoc Pennington  <hp@redhat.com>
4600
4601         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4602         g_quark_try_string() so it actually can return 0
4603         (dbus_g_proxy_connect_signal): ditto
4604
4605 2005-02-04  Havoc Pennington  <hp@redhat.com>
4606
4607         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4608         bogus warning
4609         (tristring_from_message): assert cleanly on null path/interface
4610         (should not be possible though I decided later)
4611         (dbus_g_proxy_dispose): move proxy manager unregistration here
4612         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4613         g_return_if_fail() checks
4614
4615 2005-02-04  Havoc Pennington  <hp@redhat.com>
4616
4617         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4618
4619         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4620         (with some minor changes)
4621
4622         * doc/dbus-specification.xml: add deprecated attribute to
4623         introspection format
4624
4625 2005-01-31  Havoc Pennington  <hp@redhat.com>
4626
4627         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4628         think it's sort of right
4629
4630 2005-01-30  Havoc Pennington  <hp@redhat.com>
4631
4632         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4633
4634 2005-01-30  Havoc Pennington  <hp@redhat.com>
4635
4636         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4637
4638         * autogen.sh: change to autotools 1.9
4639
4640         * glib/dbus-gproxy.c: completely change how signals work
4641         (dbus_g_proxy_add_signal): new function to specify signature of a
4642         signal
4643         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4644         and g_warning if the incoming message has the wrong signature.
4645
4646 2005-01-30  Havoc Pennington  <hp@redhat.com>
4647
4648         * tools/dbus-names-model.c (have_names_notify): fix this
4649
4650         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4651         up the string array handling a bit 
4652
4653 2005-01-30  Havoc Pennington  <hp@redhat.com>
4654
4655         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4656         (dbus_g_pending_call_cancel): new function
4657
4658         * dbus/dbus-glib.h: move GType decls for connection/message here;
4659         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4660         here, just kind of rationalizing how we handle all that
4661
4662         * tools/dbus-names-model.c: new file for a tree model listing the
4663         services on a bus
4664
4665         * tools/dbus-tree-view.c (model_new): use proper typing on the
4666         model rows
4667
4668 2005-01-30  Havoc Pennington  <hp@redhat.com>
4669
4670         * glib/dbus-gmain.c: add a custom GSource back that just checks
4671         whether the message queue has anything in it; otherwise, there are 
4672         cases where we won't see messages in the queue since there was no 
4673         IO visible to the glib main loop
4674
4675         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4676         increase default message timeout to 25 seconds
4677
4678 2005-01-30  Havoc Pennington  <hp@redhat.com>
4679
4680         * test/glib/test-profile.c (no_bus_stop_server): remove the
4681         warning about the g_warning that I just fixed
4682
4683         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4684         custom source, seems to be a lot easier to understand and work
4685         better.
4686
4687 2005-01-30  Havoc Pennington  <hp@redhat.com>
4688
4689         I think this main loop thing is conceptually broken, but here are 
4690         some band aids. I'll maybe rewrite it in a minute.
4691         
4692         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4693         custom GSource, so don't pass it in; confusing
4694         (gsource_server_finalize, gsource_connection_finalize): add
4695         finalize handlers that remove all the watches.  
4696
4697 2005-01-30  Havoc Pennington  <hp@redhat.com>
4698
4699         * glib/dbus-gobject.c (introspect_properties): fix the XML
4700         generated
4701
4702         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4703         which effectively detects the use of freed messages
4704
4705         * glib/dbus-gobject.c (handle_introspect): modify and return the
4706         reply message instead of the incoming message
4707
4708         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4709         gee, maybe it should SEND THE XML instead of just making a string
4710         and freeing it again ;-)
4711
4712         * tools/dbus-print-message.c (print_message): improve printing of
4713         messages
4714
4715         * configure.in: add debug-glib.service to the output
4716
4717 2005-01-30  Havoc Pennington  <hp@redhat.com>
4718
4719         dbus-viewer introspected and displayed the bus driver
4720         
4721         * dbus/dbus-object-tree.c 
4722         (object_tree_test_iteration): add tests for a handler registered on "/"
4723
4724         * dbus/dbus-object-tree.c
4725         (_dbus_decompose_path): fix to handle path "/" properly
4726         (run_decompose_tests): add tests for path decomposition
4727         
4728         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4729         properly
4730
4731         * glib/dbus-gobject.c (handle_introspect): fix quotes
4732
4733         * test/glib/run-test.sh: support launching the bus, then running
4734         dbus-viewer
4735
4736         * test/glib/test-service-glib.c (main): put in a trivial gobject
4737         subclass and register it on the connection
4738
4739         * bus/driver.c (bus_driver_handle_introspect): implement
4740         introspection of the bus driver service
4741
4742         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4743         identifiers, doctype decl
4744
4745         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4746         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4747         returning the service unchanged.
4748         (bus_driver_handle_message): remove old check for reply_serial in
4749         method calls, now the message type deals with that
4750         (bus_driver_handle_message): handle NULL interface
4751
4752         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4753
4754         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4755         -1 for len
4756
4757         * tools/dbus-viewer.c: add support for introspecting a service on
4758         a bus
4759
4760         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4761         (dbus_g_pending_call_unref): add
4762
4763 2005-01-29  Havoc Pennington  <hp@redhat.com>
4764
4765         * tools/dbus-tree-view.c: add support for displaying properties.
4766         (run dbus-viewer with an introspect xml file as arg, then resize
4767         the window so the tree elements show up, not sure what that is)
4768
4769         * glib/dbus-gobject.c (handle_introspect): return
4770         org.freedesktop.Properties and org.freedesktop.Introspectable
4771         interfaces when we are introspected.
4772
4773         * doc/dbus-specification.xml: allow empty interface name when 
4774         Get/Set a property
4775
4776 2005-01-29  Havoc Pennington  <hp@redhat.com>
4777
4778         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4779         though it uses glib, it could be extended for any binding in
4780         principle
4781
4782         * glib/dbus-gobject.c (gobject_message_function): change to the
4783         new way properties work
4784
4785         * dbus/dbus-protocol.h: add the new interfaces
4786
4787         * doc/dbus-specification.xml: document the introspection format,
4788         Introspectable interface, and add an org.freedesktop.Properties
4789         interface.
4790
4791         * glib/dbus-gparser.c: add support for a <property> element
4792
4793         * glib/dbus-gidl.c: add PropertyInfo
4794
4795         * glib/dbus-gobject.c (handle_introspect): put the outermost
4796         <node> outside the signal and property descriptions.
4797         (introspect_properties): export properties as <property> rather
4798         than as method calls
4799
4800 2005-01-28  Havoc Pennington  <hp@redhat.com>
4801
4802         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4803         related to authentication protocol
4804
4805 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4806
4807         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4808                 - BUS_ACTIVATION -> BUS_STARTER
4809                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4810                 - class MessageIter (__init__): Added recursion checking 
4811                 so we throw a nice error instead of just disconnecting from the
4812                 bus.
4813                 (get): Added arg_type parameter for recursion.
4814                 Removed the nil type
4815                 Added signiture type placeholder (not implemented)
4816                 Added struct type placeholder (not implemented)
4817                 Added varient type placeholder (not implemented)
4818                 Commented out dict type for now     
4819                 (get_element_type): renamed from get_array_type
4820                 (get_*): changed to use the dbus_message_iter_get_basic API
4821                 (get_*_array): removed in favor of recursive get_array method
4822                 (get_array): new recursive method which calls get to marshal
4823                 the elements of the array
4824                 (value_to_dbus_sig): New method returns the corrasponding
4825                 dbus signiture to a python value
4826                 (append): Comment out dict handling for now
4827                 Handle lists with the new recursive API
4828                 Comment out None handling for now
4829                 (append_nil): removed
4830                 (append_*): changed to use dbus_message_iter_append_basic API
4831                 (append_*_array): removed in favor of recursive append_array 
4832                 method
4833                 (__str__): Make it easier to print out recursive iterators
4834                 for debugging
4835                 - class Message (__str__): moved type inspection to the
4836                 MessageIter class' __str__ method
4837                 (get_iter): Added an append parameter wich defaults to False
4838                 If True use the new API's to create an append iterator
4839
4840         * python/dbus.py: Update to use new bindings API
4841                 - TYPE_ACTIVATION -> TYPE_STARTER
4842                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4843                 - class ActivationBus -> class StarterBus
4844                 - class RemoteObject (__call__): get an append iterator
4845                 - (_dispatch_dbus_method_call): get an append iterator
4846                 - class Object (emit_signal): get an append iterator
4847
4848         * python/examples/: Fixed up the examples to work with the new API
4849                 
4850 2005-01-28  Joe Shaw  <joeshaw@novell.com>
4851
4852         * configure.in: Bump version up to 0.30.
4853
4854         * HACKING: Add a release item to bump the version number up after 
4855         a release.
4856
4857 2005-01-28  Havoc Pennington  <hp@redhat.com>
4858
4859         * doc/dbus-specification.xml: update to describe 16-bit types and
4860         dict entries
4861
4862         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4863         assertion
4864
4865         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4866         type
4867
4868         * dbus/dbus-marshal-recursive.c: implement
4869
4870 2005-01-27  Havoc Pennington  <hp@redhat.com>
4871
4872         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4873
4874         * configure.in: find the right type for 16 and 32 bit ints as well
4875         as 64
4876
4877         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4878         the 16-bit types so people don't have to stuff them in 32-bit or
4879         byte arrays.
4880
4881 2005-01-27  Havoc Pennington  <hp@redhat.com>
4882
4883         * dbus/dbus-message.c: byteswap the message if you init an
4884         iterator to read/write from it
4885         
4886         * dbus/dbus-marshal-byteswap.c: new file implementing 
4887         _dbus_marshal_byteswap()
4888
4889         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4890
4891 2005-01-26  Havoc Pennington  <hp@redhat.com>
4892         
4893         * dbus/dbus-marshal-validate-util.c: break this out (and fix
4894         build, apparently - nobody noticed?)
4895         
4896 2005-01-26  Havoc Pennington  <hp@redhat.com>
4897
4898         * dbus/dbus-marshal-recursive.h: remove todo comment
4899
4900 2005-01-25  Joe Shaw  <joeshaw@novell.com>
4901
4902         * Land the mono binding changes to conform to the new APIs.
4903
4904         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4905         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4906
4907         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
4908         type code as a string.
4909         (InitAppending): Rename dbus_message_append_iter_init() to
4910         dbus_message_iter_init_append().
4911
4912         * mono/BusDriver.cs: Rename ServiceEventHandler to
4913         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
4914         Rename ServiceOwnerChanged to NameOwnerChanged.
4915
4916         * mono/Connection.cs: Rename BaseService to UniqueName, and the
4917         underlying C call.
4918
4919         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
4920
4921         * mono/Service.cs: Rename Exists to HasOwner, internally rename
4922         dbus_bus_acquire_service() to dbus_bus_request_name().
4923
4924         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4925         of Type.UnderlyingSystemType to get the correct element type for
4926         the array.
4927         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4928         dbus_message_get_{element|arg}_type() instead of
4929         dbus_message_iter_init_array_iterator().
4930         (Append): Replace dbus_message_iter_append_array() with
4931         dbus_message_iter_open_container() and
4932         dbus_message_iter_close_container().
4933
4934         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
4935         types have been removed.
4936         
4937         * mono/DBusType/*.cs: Replace calls of
4938         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4939         but specify the type in the DllImport extern declaration.  Ditto
4940         for dbus_message_iter_append_[type]() ->
4941         dbus_message_iter_append_basic().
4942
4943         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4944         NameOwnerChangedHandler.
4945
4946 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
4947
4948         * python/dbus_bindings.pyx.in: Rename of methods and bindings
4949                 - get_base_service -> get_unique_name
4950                 - bus_get_base_service -> bus_get_unique_name
4951                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4952                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
4953                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4954                 - bus_activate_service -> bus_start_service_by_name
4955                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4956                 - bus_acquire_service -> bus_request_name
4957                 - dbus_bus_acquire_service -> dbus_bus_request_name
4958                 - bus_service_exists -> bus_name_has_owner
4959                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4960
4961         * python/dbus.py: Rename of methods
4962                 - activate_service -> start_service_by_name
4963                 - bus_acquire_service -> bus_request_name
4964                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
4965                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4966
4967         
4968 2005-01-24  Joe Shaw  <joeshaw@novell.com>
4969
4970         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4971         signature for the method that can't be found.
4972
4973         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4974         the message has any arguments, we need to call
4975         _dbus_type_reader_get_current_type(), not
4976         _dbus_type_reader_has_next().
4977
4978 2005-01-24  Havoc Pennington  <hp@redhat.com>
4979
4980         * dbus/dbus-message-factory.c: more testing of message validation
4981
4982         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4983         header
4984
4985 2005-01-23  Havoc Pennington  <hp@redhat.com>
4986
4987         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
4988         get this all working, not many tests in the framework yet though
4989
4990 2005-01-22  Havoc Pennington  <hp@redhat.com>
4991
4992         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4993         tutorial, based on work from David Wheeler.
4994
4995 2005-01-21  Havoc Pennington  <hp@redhat.com>
4996
4997         * dbus/dbus-bus.c: add more return_if_fail checks
4998
4999         * dbus/dbus-message.c (load_message): have the "no validation"
5000         mode (have to edit the code to toggle the mode for now though)
5001
5002         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5003         skips all validation; I want to use this at least for benchmark
5004         baseline, I'm not sure if it should be a publicly-available switch.
5005
5006 2005-01-21  Havoc Pennington  <hp@redhat.com>
5007
5008         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5009         toplevel doxygen group as the low-level API stuff
5010
5011         * dbus/dbus.h: note that libdbus is the low-level API
5012
5013 2005-01-20  Havoc Pennington  <hp@redhat.com>
5014
5015         * update-dbus-docs.sh: script to update docs on the web site, only
5016         works for me though. neener.
5017
5018 2005-01-20  Havoc Pennington  <hp@redhat.com>
5019
5020         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5021         code can reveal bugs in it
5022
5023 2005-01-20  Havoc Pennington  <hp@redhat.com>
5024
5025         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5026         select() version, patches from Tor Lillqvist
5027
5028 2005-01-20  Havoc Pennington  <hp@redhat.com>
5029
5030         * doc/dbus-tutorial.xml: replace > with &gt;
5031
5032         * bus/services.c (bus_registry_acquire_service): validate the name
5033         and return a better error if it's no good.
5034
5035         * doc/dbus-specification.xml: note NO_AUTO_START change
5036
5037         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5038         from AUTO_START, we're toggling the default
5039
5040         * bus/dispatch.c: adapt the tests to change of auto-start default
5041
5042 2005-01-18  Havoc Pennington  <hp@redhat.com>
5043
5044         * rename dbus-daemon-1 to dbus-daemon throughout
5045
5046 2005-01-18  Havoc Pennington  <hp@redhat.com>
5047
5048         * Throughout, grand renaming to strip out the use of "service",
5049         just say "name" instead (or "bus name" when ambiguous).  Did not
5050         change the internal code of the message bus itself, only the
5051         programmer-facing API and messages.
5052         
5053         * doc/dbus-specification.xml: further update the message bus section
5054         
5055         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5056         in error case
5057
5058 2005-01-17  Havoc Pennington  <hp@redhat.com>
5059
5060         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5061         ever
5062
5063         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5064         "invalid name character" not only non-ASCII
5065
5066         * doc/dbus-specification.xml: further update spec, message bus 
5067         parts are still out-of-date but the marshaling etc. stuff is now
5068         accurate-ish
5069
5070 2005-01-17  Havoc Pennington  <hp@redhat.com>
5071
5072         * doc/dbus-specification.xml: partially update spec
5073
5074 2005-01-17  Havoc Pennington  <hp@redhat.com>
5075
5076         * Throughout, align variant bodies according to the contained
5077         type, rather than always to 8. Should save a fair bit of space in
5078         message headers.
5079         
5080         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5081         fix handling of case where p == end
5082
5083         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5084
5085 2005-01-17  Havoc Pennington  <hp@redhat.com>
5086
5087         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5088
5089         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5090         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5091         are marshaling/unmarshaling a boolean.
5092
5093 2005-01-16  Havoc Pennington  <hp@redhat.com>
5094
5095         This is about it on what can be disabled/deleted from libdbus
5096         easily, back below 150K anyhow. Deeper cuts are more work than 
5097         just turning the code off as I've done here.
5098         
5099         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5100         signed int convenience funcs
5101
5102         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5103         verbose mode
5104
5105         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5106         things out of libdbus
5107
5108         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5109         
5110         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5111         tests-enabled-only, though it should probably be deleted)
5112
5113         * dbus/dbus-message-util.c: same stuff
5114
5115         * dbus/dbus-auth-util.c: same stuff
5116
5117 2005-01-16  Havoc Pennington  <hp@redhat.com>
5118
5119         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5120
5121         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5122         way for stripping down dbus-userdb.c stuff included in libdbus.
5123         Rename _dbus_parse_uid for consistency.
5124
5125 2005-01-16  Havoc Pennington  <hp@redhat.com>
5126
5127         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5128         name the assertion failed in
5129
5130         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5131         (_dbus_return_val_if_fail): assert that the name of the function
5132         containing the check doesn't start with '_', since we only want to 
5133         use checks on public functions
5134         
5135         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5136         checks to assertions
5137
5138         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5139         change checks to asserts for private function
5140
5141         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5142         to asserts for private function
5143
5144         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5145         broken assertion that was breaking make check
5146         (_dbus_type_reader_array_is_empty): remove this rather than fix
5147         it, was only used in assertions
5148
5149 2005-01-16  Havoc Pennington  <hp@redhat.com>
5150
5151         * test/unused-code-gc.py: hacky script to find code that's used
5152         only by the bus (not libdbus) or used only by tests or not used at
5153         all. It has some false alarms, but looks like we can clean up a
5154         lot of size from libdbus.
5155
5156         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5157         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5158         
5159 2005-01-16  Havoc Pennington  <hp@redhat.com>
5160
5161         * Add and fix docs according to Doxygen warnings throughout
5162         source.
5163         
5164         * dbus/dbus-marshal-recursive.c
5165         (_dbus_type_reader_array_is_empty): change this to just call
5166         array_reader_get_array_len() and make it static
5167
5168         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5169         from get_array_type
5170         (dbus_message_iter_init_append): rename from append_iter_init
5171
5172         * dbus/dbus-marshal-recursive.c
5173         (_dbus_type_reader_get_element_type): rename from
5174         _dbus_type_reader_get_array_type
5175
5176 2005-01-15  Havoc Pennington  <hp@redhat.com>
5177
5178         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5179
5180         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5181         when DBUS_DISABLE_ASSERT
5182         (_dbus_marshal_set_basic): be sure we align for the string length
5183
5184         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5185         this look faster
5186
5187         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5188         inline macro version
5189         (_dbus_string_set_byte): provide inline macro version
5190
5191 2005-01-15  Havoc Pennington  <hp@redhat.com>
5192
5193         * Land the new message args API and type system.
5194
5195         This patch is huge, but the public API change is not 
5196         really large. The set of D-BUS types has changed somewhat, 
5197         and the arg "getters" are more geared toward language bindings;
5198         they don't make a copy, etc.
5199
5200         There are also some known issues. See these emails for details
5201         on this huge patch:
5202         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5203         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5204         
5205         * dbus/dbus-marshal-*: all the new stuff
5206
5207         * dbus/dbus-message.c: basically rewritten
5208
5209         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5210         freed blocks to be all non-nul bytes so using freed memory is less
5211         likely to work right
5212
5213         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5214         DBUS_FAIL_MALLOC=N environment variable, so you can do
5215         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5216         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5217         thorough.
5218
5219         * qt/message.cpp: port to the new message args API
5220         (operator<<): use str.utf8() rather than str.unicode()
5221         (pretty sure this is right from the Qt docs?)
5222
5223         * glib/dbus-gvalue.c: port to the new message args API
5224
5225         * bus/dispatch.c, bus/driver.c: port to the new message args API
5226
5227         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5228         "locked" flag to TRUE and align_offset to 0; I guess we never
5229         looked at these anyhow, but seems cleaner.
5230
5231         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5232         move allocation padding macro to this header; use it to implement
5233         (_DBUS_STRING_STATIC): ability to declare a static string.
5234
5235         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5236         change to return TRUE if the interface is not set.
5237
5238         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5239         to dbus-marshal-validate.[hc]
5240
5241         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5242         dbus-internals.c
5243
5244         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5245         to dbus-marshal-*.[hc]
5246
5247         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5248         function here from dbus-marshal.c
5249
5250 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5251
5252         * NEWS: Update for 0.23.
5253
5254         * configure.in: Release 0.23.
5255
5256 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5257
5258         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5259         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5260         behind.
5261
5262         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5263         uninstall"
5264
5265         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5266         is an enum, get the enum's underlying type.  Another mono
5267         1.1.3 fix.
5268
5269 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5270
5271         Patch from Sjoerd Simons <sjoerd@luon.net>
5272
5273         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5274         DESTDIR.  It breaks stuff.
5275
5276 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5277
5278         Patch from Tambet Ingo <tambet@ximian.com>
5279
5280         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5281         calling type.GetElementType().  The code previously depended on
5282         broken Mono behavior, which was fixed in Mono 1.1.3.
5283
5284         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5285         Activator.CreateInstance() so that the class's constructor is
5286         called with the right parameters.
5287
5288 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5289
5290         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5291
5292         * dbus/dbus-connection.c
5293         (_dbus_connection_queue_received_message_link): Call
5294         _dbus_connection_remove_timeout() instead of the _locked()
5295         variant, since it's always called from
5296         _dbus_connection_handle_watch(), which handles the locking.
5297         Removed the _locked() variant since it's no longer used.
5298
5299 2005-01-03  Havoc Pennington  <hp@redhat.com>
5300
5301         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5302         return
5303         
5304 2004-12-26  Havoc Pennington  <hp@redhat.com>
5305
5306         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5307
5308 2005-01-03  Havoc Pennington  <hp@redhat.com>
5309
5310         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5311         floating point
5312
5313         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5314
5315 2005-01-02  Havoc Pennington  <hp@redhat.com>
5316
5317         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5318
5319 2005-01-01  Havoc Pennington  <hp@redhat.com>
5320
5321         * configure.in: add -Wfloat-equal
5322
5323 2005-01-01  Havoc Pennington  <hp@redhat.com>
5324
5325         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5326         for a variety of reasons '==' doesn't do this.
5327
5328 2004-12-31  Havoc Pennington  <hp@redhat.com>
5329
5330         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5331         I keep wishing I had
5332
5333 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5334
5335         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5336
5337 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5338
5339         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5340         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5341         dbus-protocol.h.  Because they are defines and not enums they are not
5342         autogenerated.
5343
5344 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5345
5346         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5347         dbus_bus_activate_service
5348
5349         * python/dbus.py (Bus.activate_service): activate a service on the
5350         bus.
5351
5352 2004-12-24  Havoc Pennington  <hp@redhat.com>
5353
5354         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5355         file format has also changed and I haven't adapted to that yet
5356         
5357         * Makefile.am: load .gcno files from latest gcc
5358
5359 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5360         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5361
5362         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5363         lowlevel binding
5364
5365         * python/dbus.py (get_unix_user): Added binding to 
5366         call dbus_bindings.bus_get_unix_user
5367
5368         * python/extract.py: Modified the proto_pat regex to
5369         handle unsigned long
5370
5371 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5372
5373         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5374         better POSIX compliance.
5375
5376 2004-12-19  Havoc Pennington  <hp@redhat.com>
5377
5378         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5379         (_dbus_string_insert_8_aligned): new functions
5380
5381         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5382
5383 2004-12-18  Havoc Pennington  <hp@redhat.com>
5384
5385         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5386         macro
5387
5388         * dbus/dbus-message.c: fix a comment, and add a still-unused
5389         not-implemented function
5390
5391         * dbus/dbus-marshal.h: fix comment
5392
5393         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5394
5395 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5396
5397         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5398         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5399         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5400         Type.UnderlyingSystemType to get the actual system type
5401         underneath.  This code previously depended on the broken Mono
5402         behavior, which was fixed in 1.1.3.
5403
5404 2004-11-27  Havoc Pennington  <hp@redhat.com>
5405
5406         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5407         are disabled
5408         (_dbus_string_get_const_data): inline when asserts are disabled
5409
5410         * dbus/dbus-message.c: record the _dbus_current_generation of
5411         creation so we can complain if dbus_shutdown() is used improperly.
5412         Do this only if checks are enabled.
5413
5414         * dbus/dbus-connection.c: ditto
5415         
5416 2004-11-26  Havoc Pennington  <hp@redhat.com>
5417
5418         * test/glib/test-profile.c: add with_bus mode to profile echoes
5419         that go through the bus.
5420
5421         * test/glib/run-test.sh: add ability to run test-profile
5422
5423         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5424         config file reload.
5425
5426 2004-11-26  Havoc Pennington  <hp@redhat.com>
5427
5428         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5429         thing was implemented
5430
5431 2004-11-26  Havoc Pennington  <hp@redhat.com>
5432
5433         * test/glib/test-profile.c: tweak a bit, add support for some
5434         made-up minimal malloc overhead with plain sockets, since in 
5435         real life some sort of buffers are unavoidable thus we could 
5436         count them in the theoretical best case
5437
5438 2004-11-26  Havoc Pennington  <hp@redhat.com>
5439
5440         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5441         where I was trying to cache one too many messages
5442
5443 2004-11-26  Havoc Pennington  <hp@redhat.com>
5444
5445         * dbus/dbus-message.c: reimplement message cache as an array which 
5446         makes the cache about twice as fast and saves maybe 1.5% overall
5447
5448 2004-11-26  Havoc Pennington  <hp@redhat.com>
5449
5450         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5451         message cache lock here
5452
5453 2004-11-26  Havoc Pennington  <hp@redhat.com>
5454
5455         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5456         the "char byte_order" next to each other to save 4 bytes
5457         (dbus_message_new_empty_header): reduce preallocation, since the
5458         message cache should achieve a similar effect
5459         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5460         message cache that keeps a few DBusMessage around in a pool,
5461         another 8% speedup or so.
5462
5463         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5464
5465 2004-11-25  Havoc Pennington  <hp@redhat.com>
5466
5467         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5468         to write, without reading or blocking, try it before the poll()
5469         and skip the poll() if nothing remains to write. This is about a
5470         3% speedup in the echo client/server
5471
5472 2004-11-25  Havoc Pennington  <hp@redhat.com>
5473
5474         The primary change here is to always write() once before adding
5475         the write watch, which gives us about a 10% performance increase.
5476         
5477         * dbus/dbus-transport-unix.c: a number of modifications to cope
5478         with removing messages_pending
5479         (check_write_watch): properly handle
5480         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5481         messages_pending stuff
5482         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5483         AUTHENTICATED cases
5484         (unix_handle_watch): after writing, see if the write watch can be
5485         removed
5486         (unix_do_iteration): assert that write_watch/read_watch are
5487         non-NULL rather than testing that they aren't, since they 
5488         aren't allowed to be NULL. check_write_watch() at the end so 
5489         we add the watch if we did not finish writing (e.g. got EAGAIN)
5490
5491         * dbus/dbus-transport-protected.h: remove messages_pending call,
5492         since it resulted in too much inefficient watch adding/removing; 
5493         instead we now require that the transport user does an iteration 
5494         after queueing outgoing messages, and after trying the first
5495         write() we add a write watch if we got EAGAIN or exceeded our 
5496         max bytes to write per iteration setting
5497
5498         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5499         function
5500
5501         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5502         freed and then accessed, valgrind flagged this bug, fix it
5503
5504         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5505         as the last valid field plus 1, where really it is equal to the
5506         last valid field. Corrects some message corruption issues.
5507
5508         * dbus/dbus-mainloop.c: verbosity changes
5509
5510         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5511         instead of aborting in one of the test codepaths
5512
5513         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5514         caused not printing the pid ever again if a verbose was missing
5515         the newline at the end
5516         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5517
5518         * dbus/dbus-connection.c: verbosity changes; 
5519         (dbus_connection_has_messages_to_send): new function
5520         (_dbus_connection_message_sent): no longer call transport->messages_pending
5521         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5522         try to write() immediately, so we can avoid the write watch. This
5523         is the core purpose of this patchset
5524         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5525         dump the outgoing message queue, so nobody will get confused
5526         trying to send them or thinking stuff is pending to be sent
5527
5528         * bus/test.c: verbosity changes
5529
5530         * bus/driver.c: verbosity/assertion changes
5531
5532         * bus/dispatch.c: a bunch of little tweaks to get it working again
5533         because this patchset changes when/where you need to block.
5534
5535 2004-11-23  Havoc Pennington  <hp@redhat.com>
5536
5537         * test/glib/test-profile.c: modify to accept a plain_sockets
5538         argument in which case it will bench plain sockets instead of
5539         libdbus, for comparison purposes.
5540
5541 2004-11-22  Havoc Pennington  <hp@redhat.com>
5542
5543         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5544         threads for more time, so sysprof can get a grip on it.
5545
5546         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5547         pointless variable
5548
5549 2004-11-13  Havoc Pennington  <hp@redhat.com>
5550
5551         * test/glib/test-profile.c: fix this thing up a bit
5552
5553         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5554         preallocation sizes by a fair bit; not sure if this will be an
5555         overall performance win or not, but it does reduce reallocs.
5556
5557         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5558         the test hack that forced constant realloc if asserts are
5559         disabled, so we can profile sanely. Sprinkle in some
5560         _DBUS_UNLIKELY() which are probably pointless, but before I
5561         noticed the real performance problem I put them in.
5562         (_dbus_string_validate_utf8): micro-optimize this thing a little
5563         bit, though callgrind says it didn't help; then special-case
5564         ascii, which did help a lot; then be sure we detect nul bytes as
5565         invalid, which is a bugfix.
5566         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5567         superstition; use memset to nul the padding instead of a manual
5568         loop.
5569         (_dbus_string_get_length): inline this as a
5570         macro; it showed up in the profile because it's used for loop
5571         tests and so forth
5572
5573 2004-11-10  Colin Walters  <walters@verbum.org>
5574
5575         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5576         for extra paranoia.
5577
5578 2004-11-09  Colin Walters  <walters@verbum.org>
5579
5580         * dbus/dbus-string.c (_dbus_string_get_length): New
5581         function, writes DBusString to C buffer.
5582
5583         * dbus/dbus-string.h: Prototype it.
5584
5585         * dbus/dbus-message.c (dbus_message_type_to_string): New
5586         function, converts message type into C string.
5587
5588         * dbus/dbus-message.h: Prototype it.
5589
5590         * bus/selinux.c (bus_selinux_check): Take source pid,
5591         target pid, and audit data.  Pass audit data to
5592         avc_has_perm.
5593         (log_audit_callback): New function, appends extra
5594         audit information.
5595         (bus_selinux_allows_acquire_service): Also take
5596         service name, add it to audit data.
5597         (bus_selinux_allows_send): Also take message
5598         type, interface, method member, error name,
5599         and destination, and add them to audit data.
5600         (log_cb): Initialize func_audit.
5601         
5602         * bus/selinux.h (bus_selinux_allows_acquire_service)
5603         (bus_selinux_allows_send): Update prototypes 
5604
5605         * bus/services.c (bus_registry_acquire_service): Pass
5606         service name to bus_selinux_allows_acquire_service.
5607
5608         * bus/bus.c (bus_context_check_security_policy): Pass
5609         additional audit data.  Move assignment of dest
5610         to its own line.
5611
5612 2004-11-07  Colin Walters  <walters@verbum.org>
5613
5614         * dbus/dbus-transport-unix.c (do_authentication): Always
5615         initialize auth_completed.
5616         
5617 2004-11-07  Colin Walters  <walters@verbum.org>
5618
5619         * bus/bus.c (load_config): Break into three
5620         separate functions: process_config_first_time_only,
5621         process_config_every_time, and process_config_postinit.
5622         (process_config_every_time): Move call of
5623         bus_registry_set_service_context_table into
5624         process_config_postinit.
5625         (process_config_postinit): New function, does
5626         any processing that needs to happen late
5627         in initialization (and also on reload).
5628         (bus_context_new): Instead of calling load_config,
5629         open config parser here and call process_config_first_time_only
5630         and process_config_every_time directly.  Later, after
5631         we have forked but before changing UID,
5632         invoke bus_selinux_full_init, and then call
5633         process_config_postinit.
5634         (bus_context_reload_config): As in bus_context_new,
5635         load parse file inside here, and call process_config_every_time
5636         and process_config_postinit.
5637
5638         * bus/services.h, bus/services.c
5639         (bus_registry_set_service_context_table): Rename
5640         from bus_registry_set_sid_table.  Take string hash from config
5641         parser, and convert them here into SIDs.
5642
5643         * bus/config-parser.c (struct BusConfigParser): Have
5644         config parser only store a mapping of service->context
5645         string.
5646         (merge_service_context_hash): New function.
5647         (merge_included): Merge context string hashes instead
5648         of using bus_selinux_id_table_union.
5649         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5650         simply create a new string hash.
5651         (bus_config_parser_unref): Unref it.
5652         (start_selinux_child): Simply insert strings into hash,
5653         don't call bus_selinux_id_table_copy_over.
5654
5655         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5656         (bus_selinux_id_table_copy_over): Delete.
5657
5658 2004-11-03  Colin Walters  <walters@verbum.org>
5659
5660         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5661         variables.
5662         
5663 2004-11-03  Colin Walters  <walters@verbum.org>
5664
5665         * bus/test-main.c (test_pre_hook): Fix test logic,
5666         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5667
5668 2004-11-02  Colin Walters  <walters@redhat.com>
5669
5670         * bus/selinux.c (bus_selinux_init): Split into two functions,
5671         bus_selinux_pre_init and bus_selinux_post_init.
5672         (bus_selinux_pre_init): Just determine whether SELinux is
5673         enabled.
5674         (bus_selinux_post_init): Do everything else.
5675
5676         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5677         config file, and bus_selinux_post_init after.  This ensures that
5678         we don't lose the policyreload notification thread that
5679         bus_selinux_init created before forking previously.
5680         
5681         * bus/test-main.c (test_pre_hook): Update for split.
5682
5683 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5684
5685         Patch from Johan Fischer <linux@fischaz.com>
5686         
5687         * mono/doc/Makefile.am (install-data-local): Added directory
5688         install for DESTDIR
5689
5690 2004-10-29  Colin Walters  <walters@redhat.com>
5691
5692         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5693         parameter for fd to write pid to.       
5694
5695         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5696         
5697         * bus/bus.c (bus_context_new): Pass print_pid_fd
5698         to _dbus_become_daemon (bug #1720)
5699
5700 2004-10-29  Colin Walters  <walters@redhat.com>
5701
5702         Patch from Ed Catmur <ed@catmur.co.uk>
5703
5704         * mono/doc/Makefile.am (install-data-local): Handle
5705         DESTDIR.
5706
5707 2004-10-29  Colin Walters  <walters@redhat.com>
5708
5709         * bus/.cvsignore, qt/.cvsignore: Update.
5710
5711 2004-10-29  Colin Walters  <walters@redhat.com>
5712
5713         Patch from Kristof Vansant <de_lupus@pandora.be>
5714
5715         * configure.in: Detect Slackware.
5716         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5717         * bus/rc.messagebus.in: New file.
5718
5719 2004-10-29  Colin Walters  <walters@redhat.com>
5720
5721         * tools/dbus-monitor.c (filter_func): Return
5722         DBUS_HANDLER_RESULT_HANDLED in filter function
5723         for now.  See:
5724         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5725
5726 2004-10-29  Colin Walters  <walters@redhat.com>
5727
5728         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5729
5730         * bus/services.c (bus_registry_acquire_service): 
5731         Correctly retrieve service name from DBusString
5732         for printing.
5733
5734 2004-10-29  Colin Walters  <walters@redhat.com>
5735
5736         * dbus/dbus-glib.h: Update documentation to not
5737         refer to internal APIs.
5738
5739 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5740
5741         * mono/Arguments.cs (GetDBusTypeConstructor):
5742         type.UnderlyingSystemType will return "System.Byte" if you do it
5743         on "byte[]", which is not what we want.  So check the type.IsArray
5744         property and use System.Array instead.
5745
5746 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5747
5748         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5749         the DBusUserInfo structure since this is passed into the function.
5750         This would cause a double free when the function that allocated
5751         the structure would try to free it when an error occured.
5752
5753         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5754         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5755         for service activation to avoid 32bit/64bit parallel install issues
5756
5757 2004-10-21  Colin Walters  <walters@verbum.org>
5758
5759         * AUTHORS: Fix my email address, the @gnu.org one
5760         has been bouncing for some time.  Also add J5.
5761         
5762 2004-10-21  Colin Walters  <walters@verbum.org>
5763
5764         * dbus/dbus-transport-unix.c (do_authentication): Return
5765         authentication status to callers.
5766         (unix_handle_watch): If we completed authentication this round,
5767         don't do another read.  Instead wait until the next iteration,
5768         after we've read any pending data in the auth buffer.
5769         (unix_do_iteration): Ditto.
5770         (unix_handle_watch): Updated for new do_authentication prototype.
5771
5772 2004-10-18  Colin Walters  <walters@verbum.org>
5773
5774         * bus/selinux.c (bus_selinux_enabled): Handle
5775         --disable-selinux case.
5776         
5777 2004-10-18  Colin Walters  <walters@verbum.org>
5778
5779         * bus/selinux.h: Add bus_selinux_enabled.
5780         
5781         * bus/selinux.c (bus_selinux_enabled): Implement it.
5782         
5783         * bus/config-parser.c (struct include): Add
5784         if_selinux_enabled member.
5785         (start_busconfig_child): Parse if_selinux_enabled
5786         attribute for include.
5787         (bus_config_parser_content): Handle it.
5788
5789         * bus/session.conf.in, bus/system.conf.in: Add
5790         inclusion of context mapping to default config files;
5791         conditional on SELinux being enabled.
5792         
5793         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5794         
5795         * test/data/invalid-config-files/badselinux-1.conf, 
5796         test/data/invalid-config-files/badselinux-2.conf:
5797         Test files for bad syntax.
5798         
5799 2004-10-17  Colin Walters  <walters@verbum.org>
5800
5801         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5802         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5803         format specifier mismatches.
5804
5805 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5806
5807         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5808         format string.
5809
5810         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5811         pointer (bug #1540, Leonardo Boiko).
5812
5813 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5814
5815         * mono/BusDriver.cs: Changed BusDriver struct to remove
5816         the ServiceCreated and ServiceDeleted events and replace them
5817         with the new ServiceOwnerChanged event.
5818
5819         * mono/example/BusListener.cs: Added a new example program,
5820         which listens for and reports any ServiceOwnerChanged events
5821         on the bus driver.
5822
5823         * mono/example/Makefile.am (DESTDIR): Build changes for the
5824         new BusListener.cs example.
5825
5826 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5827
5828         * bus/signals.c (bus_match_rule_parse): validate the components of
5829         match rules (bug #1439).
5830
5831         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5832
5833 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5834
5835         * doc/dbus-specification.xml: document ServiceOwnerChanged
5836         signal.
5837         
5838         * bus/driver.c, bus/driver.h, bus/services.c: Use
5839         ServiceOwnerChanged signal instead of ServiceCreated and
5840         ServiceDeleted.
5841         
5842         * bus/dispatch.c: update testcase for the new signal.
5843
5844 2004-09-20  Jon Trowbridge  <trow@ximian.com>
5845
5846         Patch from Nat Friedman <nat@novell.com>
5847
5848         * mono/Makefile.am: A number of small build fixes to allow "make
5849         distcheck" to succeed.
5850
5851         * mono/example/Makefile.am: "make distcheck" fixes.
5852
5853         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5854         key in @srcdir@.
5855
5856         * test/Makefile.am: "make distcheck" fixes.
5857
5858 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5859
5860         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5861
5862         * doc/busconfig.dtd: update the DTD for the at_console attribute.
5863
5864         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5865         messages after the first one (bug #1389).
5866         
5867         * bus/dispatch.c (check_double_hello_message): add a test case for
5868         the double hello message bug.
5869         (check_existent_service_activation): fix check of spawning error.
5870         
5871 2004-09-16  David Zeuthen  <david@fubar.dk>
5872
5873         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5874
5875 2004-09-12  David Zeuthen  <david@fubar.dk>
5876
5877         Patch from Kay Sievers <kay.sievers@vrfy.org>
5878
5879         * bus/bus.c (bus_context_new):
5880         * bus/bus.h:
5881         * bus/main.c (usage)
5882         (main):
5883         Add commandline option --nofork to override configuration file
5884         setting.
5885
5886 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5887
5888         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5889         compilers don't like it (bug #974).
5890
5891 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
5892
5893         * qt/connection.*: Applied patch by Jérôme Lodewyck
5894         <lodewyck@clipper.ens.fr> to integrate an existing
5895         connection into the Qt eventloop
5896
5897 2004-08-30  Jon Trowbridge  <trow@ximian.com>
5898
5899         * mono/BusDriver.cs: Added.  This is a class for interacting with
5900         the org.freedesktop.DBus service.
5901
5902         * mono/Message.cs: Added a mechanism to expose the message that is
5903         currently being dispatched via the static Message.Current
5904         property.  Added Message.Sender and Message.Destination
5905         properties.
5906
5907         * mono/Handler.cs: Expose the dispatched message via
5908         Message.Current when handling method calls.
5909
5910         * mono/Service.cs: Expose the dispatched message via
5911         Message.Current when handling signal emissions.
5912         
5913         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5914         Connection.BaseService property.
5915
5916 2004-08-28  Havoc Pennington  <hp@redhat.com>
5917
5918         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5919
5920         More fixes from Steve Grubb
5921         
5922         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5923         (_dbus_listen_tcp_socket): fix fd leak
5924
5925         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5926         EINTR to a bit lower in the code
5927
5928 2004-08-26  Jon Trowbridge  <trow@ximian.com>
5929
5930         * bus/driver.c (bus_driver_handle_service_exists): Respond with
5931         TRUE if we are inquiring about the existence of the built-in
5932         org.freedesktop.DBus service.
5933
5934 2004-08-25  John Palmieri  <johnp@redhat.com>
5935         * bus/config-parser.c:
5936         (struct PolicyType): Add POLICY_CONSOLE
5937         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5938         (start_busconfig_child): Sets up console element when
5939         <policy at_console=""> is encountered in a policy file
5940         (append_rule_from_element): Convert console elements to console
5941         rules.
5942
5943         * bus/policy.c: 
5944         (bus_policy_create_client_policy): Add console rules to the client
5945         policy based on if the client is at the console
5946         (bus_policy_append_console_rule): New function for adding a
5947         console rule to a policy
5948         (bus_policy_merge): Handle console rule merging
5949
5950         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5951         where we check for console user files
5952         
5953         * dbus/dbus-sysdeps.c:
5954         (_dbus_file_exists): New function which checks if the given
5955         file exists
5956         (_dbus_user_at_console): New function which does the system
5957         specific process of checking if the user is at the console
5958
5959         * dbus/dbus-userdb.c:
5960         (_dbus_is_console_user): New function converts a UID to user name
5961         and then calls the system specific _dbus_user_at_console to 
5962         see if the user is at the console and therefor a console user
5963
5964 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5965
5966         * bus/config-parser.c (set_limit):
5967         * bus/dbus-daemon-1.1.in:
5968         * test/data/valid-config-files/many-rules.conf: set the
5969         max_match_rules_per_connection limt from the config file. 
5970
5971         * doc/busconfig.dtd: update the DTD.
5972
5973         * bus/driver.c: remove some unused variables.
5974
5975 2004-08-24  Mikael Hallendal  <micke@imendio.com>
5976
5977         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
5978         it's been replaced by dbus_g_bus_get
5979
5980 2004-08-23  Colin Walters  <walters@redhat.com>
5981
5982         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5983
5984         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5985
5986         * bus/selinux.c: Create a thread for policy reload notification.
5987         (bus_selinux_get_policy_root): Implement.
5988
5989         * bus/config-parser.c (start_busconfig_child)
5990         (bus_config_parser_content): Support SELinux-root relative
5991         inclusion.
5992
5993         * configure.in <HAVE_SELINUX>: Add -lpthread.
5994         
5995         * bus/test-main.c (test_pre_hook, test_post_hook): New.
5996         (test_post_hook): Move memory checking into here.
5997         (test_pre_hook, test_post_hook): Move SELinux checks in
5998         here, but conditional on a DBUS_TEST_SELINUX environment
5999         variable.  Unfortunately we can't run the SELinux checks
6000         as a normal user, since they won't have any permissions
6001         for /selinux.  So this will have to be tested manually
6002         for now, until we have virtualization for most of
6003         libselinux.
6004         
6005 2004-08-23  Havoc Pennington  <hp@redhat.com>
6006
6007         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6008         drop supplementary groups, suggested by Steve Grubb
6009
6010 2004-08-20  Colin Walters  <walters@redhat.com>
6011
6012         * bus/config-parser.c (start_busconfig_child): Remove some unused
6013         variables.
6014         
6015         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6016         warning.
6017
6018 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6019
6020         * configure.in: If --enable-mono is passed in, if we can't find
6021         mono error out.
6022
6023         * mono/Makefile.am: Use /gacutil to install assemblies into the
6024         GAC and not /root.
6025
6026 2004-08-12  Havoc Pennington  <hp@redhat.com>
6027
6028         * NEWS: update for 0.22
6029
6030         * configure.in: release 0.22
6031
6032 2004-08-11  Colin Walters  <walters@redhat.com>
6033
6034         * tools/dbus-send.c (main, usage): Add --reply-timeout
6035         argument.
6036
6037 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6038
6039         * bus/bus.c (process_config_first_time_only): get rid of an unused
6040         DBusError that was causing a memoy leak (bug #989).
6041
6042         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6043         fix compilation on Solaris/Forte C (bug #974)
6044
6045         * bus/main.c (main): plug two minuscule memleaks.
6046
6047 2004-08-10  Havoc Pennington  <hp@redhat.com>
6048
6049         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6050
6051 2004-08-09  Havoc Pennington  <hp@redhat.com>
6052
6053         * COPYING: switch to Academic Free License version 2.1 instead of
6054         2.0, to resolve complaints about patent termination clause.
6055
6056 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6057
6058         * README: added documentation for the --enable-python 
6059         configure switch.
6060
6061 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6062
6063         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6064         _unref in the SELinux support.
6065
6066         * doc/busconfig.dtd: update DTD for SELinux support.
6067
6068         * bus/config-loader-libxml.c: fix error handler and parser
6069         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6070
6071         * configure.in: remove the warning about libxml2.
6072
6073         * dbus/dbus-bus.c: silence doxygen warning.
6074
6075 2004-07-31  Colin Walters  <walters@redhat.com>
6076
6077         * configure.in: Move #error in SELinux check to its own line.
6078
6079 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6080
6081         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6082         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6083         dbus_error_set.
6084
6085         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6086         broken by the change in the _SET_OOM macros.
6087
6088 2004-07-31  Colin Walters  <walters@redhat.com>
6089
6090         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6091         BUS_SET_OOM.
6092
6093 2004-07-31  Colin Walters  <walters@redhat.com>
6094
6095         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6096         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6097         AC_MSG_CHECKING.
6098
6099 2004-07-24  Havoc Pennington  <hp@redhat.com>
6100
6101         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6102
6103         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6104         functionality
6105
6106         * configure.in: add --enable-selinux
6107         
6108         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6109
6110         * bus/main.c (main): initialize and shut down selinux
6111
6112         * bus/connection.c: store SELinux ID on each connection, to avoid 
6113         repeated getting of the string context and converting it into 
6114         an ID
6115
6116         * bus/bus.c (bus_context_get_policy): new accessor, though it
6117         isn't used
6118         (bus_context_check_security_policy): check whether the security
6119         context of sender connection can send to the security context of
6120         recipient connection
6121
6122         * bus/config-parser.c: add parsing for <selinux> and <associate>
6123         
6124         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6125         implement dbus_connection_get_unix_fd()
6126
6127         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6128         function, used by the selinux stuff
6129         
6130 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6131
6132         * bus/config-loader-libxml.c: complete the implementation of
6133         libxml backend for config file loader. Doesn't work with full OOM
6134         test yet. 
6135         
6136         * configure.in: change error when selecting libxml into a warning.
6137         
6138         * test/data/invalid-config-files: add two non-well-formed XML
6139         files. 
6140         
6141         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6142         
6143         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6144         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6145         be necessary to read all the buffer. (bug #894)
6146
6147         * bus/activation.c (bus_activation_activate_service): fix a
6148         potential assertion failure (bug #896). Small optimization in the
6149         case of auto-activation messages.
6150
6151         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6152         add test case for byte-through-vararg bug (#901). patch by Kimmo
6153         Hämäläinen. 
6154
6155 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6156
6157         * python/dbus.py:
6158         * python/dbus_bindings.pyx.in:
6159         Add dbus.init_gthreads (), allow emit_signal to pass
6160         arguments to the signal.
6161         
6162 2004-07-24  Havoc Pennington  <hp@redhat.com>
6163
6164         * AUTHORS: add some people, not really comprehensively, let me
6165         know if I missed you
6166
6167 2004-07-24  Havoc Pennington  <hp@redhat.com>
6168
6169         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6170         Owen
6171
6172         * test/Makefile.am (DIST_SUBDIRS): here also
6173
6174 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6175
6176         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6177         breaking build on Solaris, reported by Farhad Saberi on the ML.
6178
6179         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6180         va_arg invocation to account for integer promotion in the case of
6181         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6182
6183         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6184         _dbus_list_get_first_link, not _dbus_list_get_first.
6185
6186         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6187
6188         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6189         handler functions so that the asserts in _dbus_object_subtree_unref
6190         do not fail.
6191
6192         * dbus/dbus-transport-unix.c (do_reading):
6193         _dbus_transport_queue_messages return value is of type
6194         dbus_bool_t, not DBusDispatchStatus.
6195         
6196 2004-07-19  David Zeuthen  <david@fubar.dk>
6197
6198         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6199
6200         * bus/dispatch.c:
6201         (check_get_connection_unix_user): Debug says GetProperty; but the
6202         method is called GetConnectionUnixUser
6203         (check_get_connection_unix_process_id): New function
6204         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6205         also call check_get_connection_unix_process_id()
6206         
6207         * bus/driver.c:
6208         (bus_driver_handle_get_connection_unix_process_id): New function,
6209         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6210         interface
6211         
6212         * dbus/dbus-auth.c:
6213         (handle_server_data_external_mech): Set pid from the credentials
6214         obtained from the socket
6215         
6216         * dbus/dbus-connection.c:
6217         (dbus_connection_get_unix_process_id): New function
6218         
6219         * dbus/dbus-connection.h: 
6220         Add prototype for dbus_connection_get_unix_process_id
6221         
6222         * dbus/dbus-transport.c:
6223         (_dbus_transport_get_unix_process_id): New function
6224         
6225         * dbus/dbus-transport.h:
6226         Add prototype for _dbus_transport_get_unix_process_id
6227         
6228 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6229
6230         * dbus/dbus-message.c: Message counter fix, patch by Christian
6231         Hammond <chipx86@gnupdate.org>
6232
6233 2004-07-18  Seth Nickell  <seth@gnome.org>
6234
6235         * python/dbus.py:
6236         * python/dbus_bindings.pyx.in:
6237         * python/tests/test-client.py:
6238
6239         Add dbus.ByteArray and dbus_bindings.ByteArray
6240         types so that byte streams can be passed back.
6241
6242         Give jdahlin the heaps of credit that are so
6243         rightfully his.
6244         
6245 2004-07-12  Seth Nickell  <seth@gnome.org>
6246
6247         * python/dbus.py:
6248
6249         Add message argument to the default object_method_handler
6250         function.
6251         
6252         * python/dbus_bindings.pyx.in:
6253
6254         Automatically return NIL when passed an empty list
6255         (we can't pass back a list since lists are typed
6256         and we don't have any idea what type the the client
6257         intended the list to be... :-( )
6258         
6259 2004-07-10  Seth Nickell  <seth@gnome.org>
6260
6261         * python/examples/Makefile.am:
6262
6263         Fix distcheck breakage caused by new examples.
6264
6265 2004-07-10  Seth Nickell  <seth@gnome.org>
6266
6267         * python/dbus.py:
6268
6269         Add "message" argument to service-side dbus.Object
6270         methods. This will break existing services written
6271         using the python bindings, but will allow extraction
6272         of all the message information (e.g. who its from).
6273
6274         Add improved "object oriented" signal handling/emission.
6275         
6276         * python/examples/example-service.py:
6277
6278         Nix this example.
6279         
6280         * python/examples/example-signal-emitter.py:
6281         * python/examples/example-signal-recipient.py:
6282
6283         Two new examples that show how to emit and receive
6284         signals using the new APIs.
6285         
6286         * python/examples/example-signals.py:
6287         * python/examples/gconf-proxy-service.py:
6288         * python/examples/gconf-proxy-service2.py:
6289
6290         Add "message" argument to service methods.
6291
6292 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6293
6294         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6295         * dbus/bus.c (dbus_bus_get_unix_user)
6296         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6297         method of org.freedesktop.DBus interface.
6298
6299         * bus/dispatch.c: test case
6300
6301 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6302
6303         * python/Makefile.am: switched include directory from glib/ to dbus/
6304         since dbus-glib.h moved
6305  
6306 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6307
6308         * configure.in: prevent building the gcj stuff and libxml loader
6309         since they are broken.
6310
6311 2004-06-20  Havoc Pennington  <hp@redhat.com>
6312
6313         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6314         codes from the dbus error names
6315         
6316         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6317         as dbus/dbus-glib.h and that breakage is now visible due to 
6318         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6319         
6320         * glib/dbus-glib.h: s/gproxy/g_proxy/
6321
6322         * dbus/dbus-shared.h: new header to hold stuff shared with
6323         binding APIs
6324         
6325         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6326         than dbus-errors.h
6327
6328         * glib/dbus-glib.h (dbus_set_g_error): move to
6329         dbus-glib-lowlevel.h
6330
6331         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6332         of stuff to enable this
6333
6334         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6335
6336         * a bunch of other changes with the same basic "separate glib 
6337         bindings from dbus.h" theme
6338         
6339 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6340
6341         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6342
6343         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6344
6345 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6346
6347         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6348         the reply value of the ServiceExists message.
6349
6350 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6351
6352         * python/dbus_bindings.pyx.in: No longer need to parse path
6353         elements and pass them as arrays of strings.  The C API now
6354         accepts plain path strings.
6355         (_build_parsed_path): removed 
6356
6357 2004-06-07  Havoc Pennington  <hp@redhat.com>
6358
6359         * doc/TODO: remove auto-activation item since it's done; sort
6360         items by importance/milestone
6361
6362 2004-06-07  Havoc Pennington  <hp@redhat.com>
6363
6364         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6365         random signature when using REQUIRED_FIELDS (this hack won't work
6366         in the long term)
6367
6368         * dbus/dbus-message.c: change the signature to be a header field,
6369         instead of message->signature special-case string. Incremental
6370         step forward. Then we can fix up code to send the signature in the
6371         message, then fix up code to validate said signature, then fix up
6372         code to not put the typecodes inline, etc.
6373         (load_one_message): don't make up the signature after the fact
6374         (decode_header_data): require signature field for the known
6375         message types
6376
6377         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6378
6379         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6380
6381 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6382
6383         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6384
6385         * mono/Handler.cs: Updated to follow new path argument for
6386         (un-)registering objects.
6387
6388         * mono/example/Makefile.am:
6389         * mono/Makefile.am:
6390         * configure.in: Bumped required version for mono and use new -pkg
6391         syntax for deps
6392
6393 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6394
6395         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6396         registration functions take the path argument as char* instead of
6397         char**.
6398
6399         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6400         split off the path decompostion part of
6401         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6402         warnings. 
6403
6404         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6405         
6406 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6407  
6408         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6409         machine approach.  A state is implemented as a function that
6410         handles incoming events as specified for that state.
6411         
6412         * doc/dbus-specification.xml: Update auth protocol state machine
6413         specification to match implementation.  Remove some leftover
6414         base64 examples.
6415
6416 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6417
6418         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6419         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6420         quiet doxygen.
6421
6422         * Doxyfile.in: remove deprecated options.
6423
6424         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6425         glib/test-thread.h, glib/test-thread-client.c,
6426         glib/test-thread-server.c, glib/test-profile.c,
6427         glib/test-dbus-glib.c: remove these unused files.
6428
6429 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6430
6431         * dbus/dbus-object-tree.c
6432         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6433         non-fallback handlers (bug #684).
6434         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6435         (find_subtree_recurse): report wether the returned subtree is an
6436         exact match or a "fallback" match higher up in the tree.
6437         (object_tree_test_iteration): update test case.
6438
6439 2004-06-01  Seth Nickell  <seth@gnome.org>
6440
6441         * python/dbus_bindings.pyx.in:
6442         * python/tests/test-client.py:
6443
6444         Round off basic type support. Add dicts (yay!), and 
6445         remaining array types.
6446
6447         Make MessageIter more general so it works for dicts too.
6448
6449         Mark all loop variables as C integers.
6450         
6451 2004-05-31  Havoc Pennington  <hp@redhat.com>
6452
6453         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6454         "in" before "out"
6455
6456         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6457
6458         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6459         option that runs the tests, and start filling in some code
6460         including for starters just dumping the interfaces to stdout
6461
6462         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6463
6464         * test/data/valid-introspection-files/lots-of-types.xml: test of
6465         an example introspection file
6466
6467         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6468         "node" (I think...)
6469
6470 2004-05-31  Seth Nickell  <seth@gnome.org>
6471
6472         * python/dbus_bindings.pyx.in:
6473         * python/tests/test-client.py:
6474
6475         Test Suite: 1
6476         Python Bindings: 0
6477
6478         Fix string array memory trashing bug... oops...
6479
6480 2004-05-30  Seth Nickell  <seth@gnome.org>
6481
6482         * python/dbus.py:
6483
6484         Add a nicer-but-less-flexible alternate API for handling 
6485         calls to virtual objects in dbus.ObjectTree.
6486
6487         Screw up the argument order to the dbus.Object constructor
6488         for consistency with dbus.ObjectTree (and to make dbus_methods
6489         optional for future extension)
6490         
6491         * python/examples/Makefile.am:
6492         * python/examples/gconf-proxy-service.py:
6493         * python/examples/gconf-proxy-service2.py:
6494
6495         Alternate implementation of gconf-proxy-service using the
6496         nicer dbus.ObjectTree API.
6497         
6498         * python/examples/example-service.py:
6499         * python/tests/test-server.py
6500
6501         Reverse the argument order to deal with dbus.Object constructor
6502         changes.
6503         
6504 2004-05-30  Seth Nickell  <seth@gnome.org>
6505
6506         * python/examples/example-client.py:
6507         * python/examples/example-service.py:
6508
6509         Take it back. Lists seem to work but they're broken
6510         in the test suite. Make the base examples use
6511         lists (works fine).
6512
6513 2004-05-30  Seth Nickell  <seth@gnome.org>
6514
6515         * python/dbus_bindings.pyx.in:
6516         * python/tests/test-client.py:
6517
6518         Add some more tests and fix errors that crop up.
6519         Unfortunately, currently it seems like marshalling
6520         and unmarshalling of lists is completely broken :-(
6521
6522 2004-05-30  Seth Nickell  <seth@gnome.org>
6523
6524         * python/dbus_bindings.pyx.in:
6525
6526         Add support for ObjectPath type.
6527
6528         * python/dbus.py:
6529
6530         Refactor message handling code to a common function.
6531         
6532         * python/tests/test-client.py:
6533         * python/tests/test-server.py:
6534
6535         Add tests that check to make sure values of all types
6536         can be echoed from a service w/o mangling.
6537         
6538 2004-05-29  Seth Nickell  <seth@gnome.org>
6539
6540         * python/dbus.py:
6541
6542         Add ObjectTree class which allows implementation
6543         of trees of "virtual" objects. Basically the python
6544         wrapper for "register_fallback".
6545         
6546         * python/examples/Makefile.am
6547         * python/examples/gconf-proxy-client.py:
6548         * python/examples/gconf-proxy-service.py:
6549
6550         Implement a simple GConf proxy service that supports
6551         get/set on string and int GConf keys using the ObjectTree.
6552         
6553 2004-05-29  Seth Nickell  <seth@gnome.org>
6554
6555         * python/dbus.py:
6556         * python/examples/example-client.py:
6557         * python/examples/example-service.py:
6558         * python/examples/list-system-services.py:
6559
6560         Add SessionBus, SystemBus and ActivationBus classes
6561         so you don't need to know the special little BUS_TYPE
6562         flag.
6563         
6564 2004-05-29  Havoc Pennington  <hp@redhat.com>
6565
6566         * bus/config-parser.c (process_test_valid_subdir): temporarily
6567         stop testing config parser OOM handling, since expat has issues
6568         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6569
6570         * bus/dbus-daemon-1.1.in: change requested_reply to
6571         send_requested_reply/receive_requested_reply so we can send the
6572         replies, not just receive them.
6573
6574         * bus/config-parser.c: parse the new
6575         send_requested_reply/receive_requested_reply
6576
6577         * bus/policy.c (bus_client_policy_check_can_send): add
6578         requested_reply argument and use it
6579
6580         * bus/bus.c (bus_context_check_security_policy): pass through
6581         requested_reply status to message send check
6582
6583         * bus/system.conf.in: adapt to requested_reply change
6584         
6585 2004-05-28  Havoc Pennington  <hp@redhat.com>
6586
6587         * test/glib/test-service-glib.c (main): remove unused variable
6588
6589         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6590
6591         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6592         from the enum, no longer in use.
6593
6594         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6595         works right.
6596
6597         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6598         whether error_name passed in is a valid error name.
6599
6600 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6601
6602         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6603         OBJECT_PATH and OBJECT_PATH_ARRAY
6604
6605 2004-05-28  Seth Nickell  <seth@gnome.org>
6606
6607         * python/examples/Makefile.am:
6608
6609         Forget to add Makefile.am. Do not pass go.
6610
6611 2004-05-28  Michael Meeks  <michael@ximian.com>
6612
6613         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6614         fix no int64 case.
6615
6616         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6617
6618         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6619         (_dbus_message_iter_get_basic_type_array): impl.
6620         drastically simplify ~all relevant _get methods to use these.
6621         (_dbus_message_iter_append_basic_array),
6622         (dbus_message_iter_append_basic): impl
6623         drastically simplify ~all relevant _append methods to use these.
6624
6625         * dbus/dbus-message-builder.c (parse_basic_type) 
6626         (parse_basic_array, lookup_basic_type): impl.
6627         (_dbus_message_data_load): prune scads of duplicate /
6628         cut & paste coding.
6629
6630         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6631         (_dbus_demarshal_basic_type): implement,
6632         (demarshal_and_validate_len/arg): beef up debug.
6633         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6634
6635 2004-05-27  Seth Nickell  <seth@gnome.org>
6636
6637         * configure.in:
6638         * python/Makefile.am:
6639
6640         Include the example python apps in the tarball.
6641         
6642         * python/examples/list-system-services.py
6643
6644         Add a python new example that fetches the list of services
6645         from the system bus.
6646         
6647 2004-05-27  Seth Nickell  <seth@gnome.org>
6648
6649         * python/dbus.py:
6650         * python/dbus_bindings.pyx.in:
6651
6652         Fix failure to notify that a signal was not handled,
6653         resulted in hung functions.
6654         
6655 2004-05-25  Colin Walters  <walters@redhat.com>
6656
6657         * tools/dbus-monitor.c (main): Monitor all types of messages.
6658
6659 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6660
6661         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6662         which unregisters the object path and disposes the handler.
6663
6664 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6665  
6666         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6667          
6668         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6669         operands to && so we call dbus_message_iter_next () for the last
6670         argument also.
6671
6672 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6673
6674         * dbus/dbus-object-tree.c
6675         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6676         children even if the requested path isn't registered.
6677         (object_tree_test_iteration): test object_tree_list_registered.
6678
6679         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6680         it to 0.
6681         
6682 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6683
6684         * doc/TODO: Remove resolved items.
6685
6686         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6687         field.
6688         
6689         * bus/connection.c (bus_connections_expect_reply): Enforce the
6690         per-connection limit on pending replies.
6691         
6692         Patch from Jon Trowbridge <trow@ximian.com>:
6693  
6694         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6695         up a watch that triggers a config reload when one end of the pipe
6696         becomes readable.
6697         (signal_handler): Instead of doing the config reload in our SIGHUP
6698         handler, just write to the reload pipe and let the associated
6699         watch handle the reload when control returns to the main loop.
6700  
6701         * bus/driver.c (bus_driver_handle_reload_config): Added.
6702         Implements a ReloadConfig method for requesting a configuration
6703         file reload via the bus driver.
6704  
6705 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6706
6707         * HACKING: Updated release instructions concerning the wiki page.
6708
6709 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6710
6711         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6712         filter against auth->allowed_mechs; we only add allowed mechs in
6713         record_mechanisms().
6714  
6715         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6716         ALLOWED_MECHS to auth-script format so we can set the list of
6717         allowed mechanisms.
6718  
6719         * data/auth/client-out-of-mechanisms.auth-script: New test to
6720         check client disconnects when it is out of mechanisms to try.
6721  
6722         * dbus/dbus-auth.c (process_command): Remove check for lines
6723         longer that 1 MB; we only buffer up maximum 16 kB.
6724  
6725         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6726         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6727         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6728         assume there might be unused bytes.
6729  
6730         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6731         client-out-of-mechs, it is handled in process_reject(). Move check
6732         for max failures to send_rejected(), as it's a server-only thing.
6733
6734         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6735         send_auth(), send_data(), send_rejected(), send_error(),
6736         send_ok(), send_begin() and send_cancel().
6737
6738 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6739
6740         Remove base64 encoding, replace with hex encoding. Original patch
6741         from trow@ximian.com, added error handling.
6742
6743         * dbus/dbus-string.c (_dbus_string_base64_encode)
6744         (_dbus_string_base64_decode): Remove.
6745         (_dbus_string_hex_decode): Add end_return argument so we can
6746         distinguish between OOM and invalid hex encoding.
6747         (_dbus_string_test): Remove base64 tests and add test case for
6748         invalid hex.
6749
6750         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6751         Replace base64 with hex.
6752
6753         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6754         for invalid hex encoded data in auth protocol.
6755
6756 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6757
6758         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6759         leak.
6760
6761 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6762
6763         * mono/dbus-sharp.dll.config.in: Added for GAC
6764         * mono/dbus-sharp.snk: Added for GAC
6765         * mono/Assembly.cs.in: Added for GAC
6766         * mono/Makefile.am: Changes for GAC installation        
6767         * configure.in: Added refs for dbus-sharp.dll.config.in and
6768         Assembly.cs.in. More fixes for mono testing
6769         * mono/example/Makefile.am: Changed var to CSC
6770         * Makefile.am: Changed flag name to DBUS_USE_CSC
6771
6772 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6773
6774         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6775         * mono/doc/*: Added documentation framework
6776         * configure.in: Added monodoc check
6777         * README: Added description of mono configure flags
6778
6779 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6780
6781         * doc/dbus-specification.xml: Added a "Required" column to the 
6782         header fields table and changed the "zero or more" verbage in
6783         the above paragraph to read "The header must contain the required 
6784         named header fields and zero or more of the optional named header 
6785         fields".
6786         * test/data/invalid-messages/*.message: Added the required PATH 
6787         named header field to the tests so that they don't fail on 
6788         'Missing path field'
6789
6790 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6791
6792         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6793         the stack by implicitly defining variable and parameter types and
6794         removing the hack of defining C pointers as python objects and later
6795         casting them.
6796
6797 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6798
6799         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6800
6801 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6802
6803         * mono/DBusType/Dict.cs: Handle empty dicts
6804         * mono/DBusType/Array.cs: Handle empty arrays
6805         * mono/Arguments.cs: Handle empty arguments
6806
6807 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6808
6809         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6810         field
6811
6812 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6813
6814         * test/data/valid-messages/standard-*.message: Update message
6815         test scripts to new header field names.
6816
6817 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6818
6819         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6820         overflow to times_we_did_each_thing array which would chop off the
6821         first character of the failure_dir string. Increased the size of
6822         the array to 7 to reflect the number of random mutation functions
6823         we have.
6824
6825 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6826
6827         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6828         unix_server->watch here, it is unreffed in disconnect.
6829         (_dbus_server_new_for_tcp_socket): convert NULL host to
6830         "localhost" here so we don't append NULL to address.
6831         
6832         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6833         various addresses, including tcp with no explicit host.
6834
6835 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6836
6837         * dbus/dbus-message.c (decode_header_data, decode_string_field):
6838         fix incorrect setting of .name_offset in the HeaderField (it was
6839         off by two bytes, positioned right after the name and typecode)
6840
6841         * bus/bus.c (bus_context_new, bus_context_unref): test before
6842         calling dbus_server_free_data_slot and _dbus_user_database_unref
6843         in case of an error.
6844
6845         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6846         by libdbus-gtool.
6847
6848 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
6849
6850         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6851         _dbus_poll() instead of select().
6852
6853 2004-04-15  Jon Trowbridge  <trow@ximian.com>
6854
6855         * bus/main.c (signal_handler): Reload the configuration files
6856         on SIGHUP.
6857         (main): Set up our SIGHUP handler.
6858
6859         * bus/bus.c (struct BusContext): Store the config file, user and
6860         fork flag in the BusContext.
6861         (process_config_first_time_only): Added.  Contains the code
6862         (previously in bus_context_new) for setting up the BusContext from
6863         the BusConfigParser that should only be run the first time the
6864         config files are read.
6865         (process_config_every_time): Added.  Contains the code (previously
6866         in bus_context_new) for setting up the BusContext from the
6867         BusConfigParser that should be run every time the config files are
6868         read.
6869         (load_config): Added.  Builds a BusConfigParser from the config
6870         files and passes the resulting structure off to
6871         process_config_first_time_only (assuming this is the first time)
6872         and process_config_every_time.
6873         (bus_context_new): All of the config-related code has been moved
6874         to process_config_first_time_only and process_config_every_time.
6875         Now this function just does the non-config-related initializations
6876         and calls load_config.
6877         (bus_context_reload_config): Added.
6878
6879 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6880
6881         * bus/driver.c (bus_driver_handle_get_service_owner):
6882         implement a GetServiceOwner method.
6883         * doc/dbus-specification.xml: document it.
6884         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6885         
6886         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6887         implement, using the bus GetServiceOwner method.
6888
6889         * test/glib/test-dbus-glib.c:
6890         use dbus_gproxy_new_for_service_owner so that we can receive the
6891         signal. 
6892
6893 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
6894
6895         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6896         dbus/dbus-message.c, dbus/dbus-protocol.h
6897         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6898
6899         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6900         dbus/dbus-message.c, dbus/dbus-protocol.h
6901         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6902
6903         * dbus/dbus-internals.c (_dbus_header_field_to_string):
6904         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6905         DBUS_HEADER_FIELD_SENDER resolves to "sender"
6906
6907         * doc/dbus-specification.xml (Header Fields Table):
6908         s/SERVICE/DESTINATION
6909         s/SENDER_SERVICE/SENDER
6910
6911
6912 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6913
6914         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6915         a few seconds.
6916
6917 2004-04-13  Michael Meeks  <michael@ximian.com>
6918
6919         * glib/dbus-gobject.c (handle_introspect): split out
6920         (introspect_properties): this.
6921         (handle_introspect): implement this.
6922
6923         * test/glib/Makefile.am: use the absolute path so the bus
6924         daemon's chdir ("/") doesn't kill us dead.
6925
6926         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6927
6928 2004-04-12  Jon Trowbridge  <trow@ximian.com>
6929
6930         * bus/config-parser.c (struct BusConfigParser): Added
6931         included_files field.
6932         (seen_include): Added.  Checks whether or not a file has already
6933         been included by any parent BusConfigParser.
6934         (bus_config_parser_new): Copy the parent's included_files.
6935         (include_file): Track which files have been included, and fail on
6936         circular inclusions.
6937         (process_test_valid_subdir): Changed printf to report if we are
6938         testing valid or invalid conf files.
6939         (all_are_equiv): Changed printf to be a bit clearer about
6940         what we are actually doing.
6941         (bus_config_parser_test): Test invalid configuration files.
6942
6943 2004-04-09  Jon Trowbridge  <trow@ximian.com>
6944
6945         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6946         argument.  If non-null, the newly-constructed BusConfigParser will
6947         be initialized with the parent's BusLimits instead of the default
6948         values.
6949         (include_file): When including a config file, pass in
6950         the current parser as the parent and then copy the BusLimits
6951         from the included BusConfigParser pack to the current parser.
6952         (process_test_valid_subdir): Renamed from process_test_subdir.
6953         (process_test_equiv_subdir): Added.  Walks through a directory,
6954         descending into each subdirectory and loading the config files
6955         it finds there.  If any subdirectory contains two config files
6956         that don't produce identical BusConfigParser structs, fail.
6957         For now, the BusConfigParser's BusPolicies are not compared.
6958         (bus_config_parser_test): Call both process_test_valid_subdir and
6959         process_test_equiv_subdir.
6960
6961         * bus/config-loader-libxml.c (bus_config_load): Take a parent
6962         argument and pass it along to the call to bus_config_parser_new.
6963         Also made a few small changes to allow this code to compile.
6964
6965         * bus/config-loader-expat.c (bus_config_load): Take a parent
6966         argument and pass it along to the call to bus_config_parser_new.
6967
6968         * bus/bus.c (bus_context_new): Load the config file
6969         with a NULL parent argument.
6970
6971 2004-03-29  Michael Meeks  <michael@ximian.com>
6972
6973         * glib/dbus-gobject.c (introspect_properties): split
6974         out, fix mangled 'while' flow control.
6975         (introspect_signals): implement.
6976         (handle_introspect): update.
6977
6978 2004-03-29  Michael Meeks  <michael@ximian.com>
6979
6980         * glib/dbus-gobject.c (set_object_property): split out / 
6981         re-work, use the property type, and not the message type(!)
6982         (get_object_property): ditto.
6983
6984         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6985         (dbus_gvalue_marshal): make this code re-usable, needed
6986         for signals too, also on both proxy and server side.
6987         Re-write for more efficiency / readability.
6988
6989 2004-03-29  Michael Meeks  <michael@ximian.com>
6990
6991         * dbus/dbus-message.c
6992         (dbus_message_new_error_printf): impl.
6993
6994         * dbus/dbus-connection.c
6995         (dbus_connection_unregister_object_path): fix warning.
6996
6997         * configure.in: fix no-mono-installed situation.
6998
6999 2004-03-27  Havoc Pennington  <hp@redhat.com>
7000
7001         Patch from Timo Teräs:
7002         
7003         * tools/dbus-send.c (main): if --print-reply, assume type is
7004         method call; support boolean type args
7005         
7006         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7007         bunch of memleak and logic bugs
7008         
7009 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7010
7011         * mono/Arguments.cs:
7012         * mono/Introspector.cs:
7013         * mono/Handler.cs:
7014         * mono/InterfaceProxy.cs:
7015         * mono/Message.cs
7016         * mono/ProxyBuilder.cs:
7017         * mono/Service.cs:
7018         Added InterfaceProxy class to avoid building proxies for every
7019         object.
7020
7021         * dbus-message.h:
7022         * dbus-message.c (dbus_message_append_args_valist)
7023         (dbus_message_iter_get_object_path)
7024         (dbus_message_iter_get_object_path_array)
7025         (dbus_message_iter_append_object_path)
7026         (dbus_message_iter_append_object_path_array):
7027         Added object_path iter functions to handle OBJECT_PATH arguments
7028         
7029 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7030
7031         First checkin of mono bindings.
7032         * configure.in:
7033         * Makefile.am:
7034         Build stuff for the bindings
7035         * dbus-sharp.pc.in: Added for pkgconfig
7036         
7037 2004-03-21  Havoc Pennington  <hp@redhat.com>
7038
7039         * test/test-service.c (main): remove debug spew
7040
7041 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7042
7043         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7044         arrays
7045
7046         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7047         (dbus_message_iter_init_array_iterator)
7048         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7049         indicate whether the iterator is empty
7050
7051         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7052         warnings
7053
7054 2004-03-19  Havoc Pennington  <hp@redhat.com>
7055
7056         * NEWS: 0.21 updates
7057
7058         * configure.in: 0.21
7059
7060         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7061         
7062         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7063         you don't need pyrex to make dist
7064
7065         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7066         sources; run moc
7067         
7068 2004-03-18  Richard Hult  <richard@imendio.com>
7069
7070         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7071         (dbus_message_set_auto_activation): Add doxygen docs.
7072
7073 2004-03-16  Richard Hult  <richard@imendio.com>
7074
7075         * bus/activation.c: (bus_activation_service_created),
7076         (bus_activation_send_pending_auto_activation_messages),
7077         (bus_activation_activate_service):
7078         * bus/activation.h:
7079         * bus/dispatch.c: (bus_dispatch),
7080         (check_nonexistent_service_auto_activation),
7081         (check_service_auto_activated),
7082         (check_segfault_service_auto_activation),
7083         (check_existent_service_auto_activation), (bus_dispatch_test):
7084         * bus/driver.c: (bus_driver_handle_activate_service):
7085         * bus/services.c: (bus_registry_acquire_service):
7086         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7087         (dbus_message_get_auto_activation):
7088         * dbus/dbus-message.h:
7089         * dbus/dbus-protocol.h: Implement auto-activation.
7090         
7091         * doc/dbus-specification.xml: Add auto-activation to the spec.
7092
7093 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7094
7095         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7096         fix a bug with CUSTOM types.
7097
7098         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7099         a unit test for this bug (used to fail).
7100
7101 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7102
7103         * bus/activation.c:
7104         (babysitter_watch_callback): notify all pending activations waiting for
7105           the same exec that the activation failed.
7106         (bus_activation_activate_service): shortcut the activation if we 
7107           already waiting for the same executable to start up.
7108
7109 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7110
7111         * bus/activation.c: 
7112         - Added service file reloading. 
7113           Each service files directory is kept in an hash table in 
7114           BusActivation and each BusActivationEntry knows what .service-file it
7115           was read from. So when you try to activate a service the bus will 
7116           check if it's been updated, removed or if new .service-files has 
7117           been installed.
7118         - Test code at the bottom for the service file reloading.
7119         * bus/test-main.c: (main):
7120         * bus/test.h:
7121         - added service reloading test.
7122         * dbus/dbus-sysdeps.c: 
7123         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7124
7125 2004-03-08  Michael Meeks  <michael@ximian.com>
7126
7127         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7128         bail immediately if disconnected, to avoid busy loop.
7129
7130         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7131         cleanup cut/paste/inefficiency.
7132
7133 2004-03-01  David Zeuthen  <david@fubar.dk>
7134
7135         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7136         bug where args were used twice. This bug resulted in a segfault
7137         on a Debian/PPC system when starting the messagebus daemon. Include
7138         dbus-sysdeps.h for DBUS_VA_COPY
7139
7140         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7141
7142         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7143         appropriate va_copy implementation. From GLib
7144         
7145 2004-02-24  Joe Shaw  <joe@ximian.com>
7146
7147         * bus/services.c (bus_registry_acquire_service): We need to pass
7148         in the service name to dbus_set_error() to prevent a crash.
7149
7150 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7151
7152         * AUTHORS: Reveal my True identity.
7153
7154 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7155
7156         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7157         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7158
7159 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7160
7161         * doc/TODO: Added not about better error check of configuration files.
7162
7163 2003-12-02  Richard Hult  <richard@imendio.com>
7164
7165         * Update AFL version to 2.0 throughout the source files to reflect
7166         the update that was done a while ago.
7167
7168 2003-12-02  Richard Hult  <richard@imendio.com>
7169
7170         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7171         wrote_dict_key to FALSE on the iter that the dict is appended to,
7172         just like when appending other types. Fixes a bug where a dict
7173         couldn't be put inside a dict.
7174         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7175         (message_iter_test, _dbus_message_test): Add test case for dict
7176         inside dict.
7177
7178 2003-12-01  David Zeuthen  <david@fubar.dk>
7179
7180         * python/dbus.py: Add the actual message when calling the reciever
7181         of a signal such that parameters can be inspected. Add the method
7182         remove_signal_receiver
7183         
7184 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7185
7186         * bus/*.[ch]:
7187         * dbus/*.[ch]:
7188         * glib/*.[ch]: Made ref functions return the pointer
7189
7190 2003-11-25  Zack Rusin  <zack@kde.org>
7191
7192         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7193
7194         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7195         wrappers,
7196
7197         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7198         the Integrator and to better fit with the server,
7199
7200 2003-11-24  Zack Rusin  <zack@kde.org>
7201
7202         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7203         the integrator handles it now
7204
7205         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7206         since QTimer wasn't really meant to be used the way DBusTimeout is
7207
7208 2003-11-24  Zack Rusin  <zack@kde.org>
7209
7210         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7211         Integrator class which integrates D-BUS with the Qt event loop,
7212
7213         * qt/connection.h, qt/connection.cpp: Move all the code which
7214         was dealing with D-BUS integration to the Integrator class,
7215         and start using Integrator,
7216
7217 2003-11-23  Zack Rusin  <zack@kde.org>
7218
7219         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7220         wrapper
7221
7222         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7223         switching namespaces to DBusQt, reworking the class,
7224
7225         * Makefile.cvs: switching dependencies so that it matches KDE 
7226         schematics,
7227         
7228         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7229         the library
7230
7231 2003-11-19  Havoc Pennington  <hp@redhat.com>
7232
7233         * NEWS: update
7234
7235         * configure.in: bump version to 0.20
7236
7237         * configure.in (have_qt): add yet another place to look for qt
7238         (someone hand trolltech a .pc file...)
7239
7240 2003-11-01  Havoc Pennington  <hp@redhat.com>
7241
7242         * doc/dbus-specification.xml: add state machine docs on the auth
7243         protocol; just a first draft, I'm sure it's wrong.      
7244
7245 2003-10-28  David Zeuthen  <david@fubar.dk>
7246
7247         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7248         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7249         
7250 2003-10-28  Havoc Pennington  <hp@redhat.com>
7251
7252         * dbus/dbus-message.c (get_next_field): delete unused function
7253
7254 2003-10-28  Havoc Pennington  <hp@redhat.com>
7255
7256         * bus/expirelist.c (do_expiration_with_current_time): detect
7257         failure of the expire_func due to OOM
7258
7259         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7260
7261         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7262         NoReply error that's now created by the bus when the service exits
7263
7264 2003-10-28  Havoc Pennington  <hp@redhat.com>
7265
7266         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7267         tests for set_path, set_interface, set_member, etc.
7268
7269         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7270
7271         * dbus/dbus-message.c (set_string_field): always just delete and
7272         re-append the field; accept NULL for deletion
7273         (re_align_fields_recurse): reimplement
7274         
7275 2003-10-26  Havoc Pennington  <hp@redhat.com>
7276
7277         * dbus/dbus-connection.c: fix docs to properly describe the
7278         disconnected message
7279         (_dbus_connection_notify_disconnected): remove this function; 
7280         we can't synchronously add the disconnected message, we have to 
7281         do it after we've queued any remaining real messages
7282         (_dbus_connection_get_dispatch_status_unlocked): queue the
7283         disconnect message only if the transport has finished queueing all
7284         its real messages and is disconnected.
7285         (dbus_connection_disconnect): update the dispatch status here
7286
7287 2003-10-22  Havoc Pennington  <hp@redhat.com>
7288
7289         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7290
7291         * bus/connection.c (bus_transaction_send_from_driver): set the
7292         destination to the connection's base service
7293
7294 2003-10-20  Havoc Pennington  <hp@redhat.com>
7295
7296         hmm, make check is currently not passing.
7297         
7298         * doc/dbus-specification.xml: add requirement that custom type
7299         names follow the same rules as interface names.
7300
7301         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7302         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7303         'map'
7304
7305         * doc/dbus-specification.xml: update type codes to match
7306         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7307         CUSTOM. Add type OBJECT_PATH to the spec.
7308
7309 2003-10-17  Havoc Pennington  <hp@redhat.com>
7310
7311         * bus/driver.c (create_unique_client_name): use "." as separator
7312         in base service names instead of '-'
7313
7314         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7315         byte at the end of the string
7316
7317         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7318         optimization macros since string validation seems to be a slow
7319         point.
7320         
7321         * doc/dbus-specification.xml: restrict valid
7322         service/interface/member/error names. Add test suite code for the
7323         name validation.
7324
7325         * dbus/dbus-string.c: limit service/interface/member/error names 
7326         to [0-9][A-Z][a-z]_
7327
7328         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7329         format arg to verbose spew
7330
7331         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7332         memory, return instead of g_error
7333
7334         * test/test-service.c (path_message_func): support emitting a
7335         signal on request
7336
7337         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7338         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7339         assuming the activation bus was the session bus so that services
7340         started manually will still register.
7341         (init_connections_unlocked): fix so that in OOM situation we get
7342         the same semantics when retrying the function
7343         
7344         * test/test-service.c (main): change to use path registration, to
7345         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7346         than DBUS_BUS_SESSION
7347
7348 2003-10-16  Havoc Pennington  <hp@redhat.com>
7349
7350         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7351
7352         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7353         coverage of the tests
7354         (coverage-report.txt): don't move the .da and .bbg files around
7355
7356 2003-10-16  Havoc Pennington  <hp@redhat.com>
7357
7358         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7359         to put there
7360
7361 2003-10-16  Havoc Pennington  <hp@redhat.com>
7362
7363         * bus/connection.c (bus_pending_reply_expired): either cancel or
7364         execute, not both
7365         (bus_connections_check_reply): use unlink, not remove_link, as we
7366         don't want to free the link; fixes double free mess
7367
7368         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7369         where no reply was received
7370
7371         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7372         fix a refcount leak
7373
7374         * bus/signals.c (match_rule_matches): add special cases for the
7375         bus driver, so you can match on sender/destination for it.
7376
7377         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7378         DBUS_PRINT_BACKTRACE is set
7379
7380         * dbus/dbus-internals.c: add pid to assertion failure messages
7381
7382         * dbus/dbus-connection.c: add message type code to the debug spew
7383
7384         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7385         sender=foo not service=foo
7386
7387         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7388         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7389         DBUS_ACTIVATION_ADDRESS instead
7390
7391         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7392         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7393
7394         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7395         context struct
7396
7397         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7398         (dbus_message_iter_get_object_path_array): new function (half
7399         finished, disabled for the moment)
7400         
7401         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7402         DBUS_MESSAGE_TYPE_ERROR
7403
7404         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7405         avoid redirecting stderr to /dev/null
7406         (babysit): close stdin if not doing the "exit_with_session" thing
7407
7408         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7409         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7410         stdout/stdin, so things don't get confused
7411         
7412         * bus/system.conf.in: fix to allow replies, I modified .conf
7413         instead of .conf.in again.
7414
7415 2003-10-14  David Zeuthen  <david@fubar.dk>
7416
7417         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7418         argtype to arg_type when raising unknown arg type exception.
7419         Changed type list to reflect the changes in dbus-protocol.h so 
7420         the bindings actually work.
7421
7422 2003-10-14  Havoc Pennington  <hp@redhat.com>
7423
7424         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7425         to have a bug keeping it from outputting the .da files sometimes
7426         (string_get_string): don't append garbage nul bytes to the string.
7427
7428 2003-10-15  Seth Nickell  <seth@gnome.org>
7429
7430         * python/Makefile.am:
7431
7432         Include dbus_h_wrapper.h in the dist tarball.
7433
7434 2003-10-14  Havoc Pennington  <hp@redhat.com>
7435
7436         * bus/bus.c (bus_context_check_security_policy): revamp this to
7437         work more sanely with new policy-based requested reply setup
7438
7439         * bus/connection.c (bus_transaction_send_from_driver): set bus
7440         driver messages as no reply
7441
7442         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7443         requested_reply attribute on allow/deny rules
7444
7445         * bus/system.conf: add <allow requested_reply="true"/>
7446
7447         * bus/driver.c (bus_driver_handle_message): fix check for replies
7448         sent to the bus driver, which was backward. How did this ever work
7449         at all though? I think I'm missing something.
7450
7451         * dbus/dbus-message.c (decode_header_data): require error and
7452         method return messages to have a reply serial field to be valid
7453         (_dbus_message_loader_queue_messages): break up this function;
7454         validate that reply serial and plain serial are nonzero; 
7455         clean up the OOM/error handling.
7456         (get_uint_field): don't return -1 from this
7457         (dbus_message_create_header): fix signed/unsigned bug
7458
7459         * bus/connection.c (bus_connections_expect_reply): save serial of
7460         the incoming message, not reply serial
7461
7462 2003-10-14  Havoc Pennington  <hp@redhat.com>
7463
7464         * bus/connection.c: implement pending reply tracking using
7465         BusExpireList
7466
7467         * bus/bus.c (bus_context_check_security_policy): verify that a
7468         reply is pending in order to allow a reply to be sent. Deny 
7469         messages of unknown type.
7470
7471         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7472
7473         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7474         (bus_context_get_reply_timeout): new
7475
7476 2003-10-13  Seth Nickell  <seth@gnome.org>
7477
7478         * python/Makefile.am:
7479
7480         Pass "make distcheck": remove a couple files from DIST_FILES
7481         that weren't included in the final version.
7482
7483 2003-10-12  Havoc Pennington  <hp@pobox.com>
7484
7485         Added test code that 1) starts an actual bus daemon and 2) uses
7486         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7487         more testing possible, but this is the basic framework.
7488         
7489         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7490         empty proxy lists from the proxy list hash
7491
7492         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7493         couple of return_if_fail checks
7494
7495         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7496         to allocate, so everything is cleared to NULL as it should be.
7497
7498         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7499         source as data to dbus_connection_set_timeout_functions() as the 
7500         timeout functions expected
7501
7502         * test/glib/run-test.sh: add a little script to start up a message
7503         bus and run tests using it
7504
7505         * tools/dbus-launch.1: updates
7506
7507         * tools/dbus-launch.c (main): add --config-file option
7508
7509         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7510         that could never be reached.
7511
7512         * dbus/dbus-message.c (dbus_message_new_method_return) 
7513         (dbus_message_new_error, dbus_message_new_signal): set the
7514         no-reply-expected flag on all these. Redundant, but may
7515         as well be consistent.
7516
7517 2003-10-11  Havoc Pennington  <hp@pobox.com>
7518
7519         * test/decode-gcov.c (function_solve_graph): make broken block
7520         graph a nonfatal error since it seems to be broken. Need to debug
7521         this.
7522
7523         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7524         can't just check type > INVALID < LAST anymore
7525
7526         * dbus/dbus-message.c (dbus_message_get_signature): new function
7527         (dbus_message_has_signature): new function
7528         (struct DBusMessage): add signature field (right now it isn't sent
7529         over the wire, just generated on the fly)
7530         (dbus_message_copy): copy the signature, and init strings to
7531         proper length to avoid some reallocs
7532         (dbus_message_iter_init_array_iterator): return void, since it
7533         can't fail
7534         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7535         (_dbus_message_loader_queue_messages): add silly temporary hack to
7536         fill in message->signature on load
7537
7538         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7539         characters, so they are relatively human-readable.
7540
7541 2003-10-11  Havoc Pennington  <hp@pobox.com>
7542
7543         * dbus/dbus-message.c (_dbus_message_test): add more test
7544         coverage, but #if 0 for now since they uncover a bug 
7545         not fixed yet; I think in re_align_field_recurse()
7546         (re_align_field_recurse): add FIXME about broken assertion
7547
7548         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7549
7550         * bus/connection.c: share a couple code bits with expirelist.c
7551
7552         * bus/expirelist.h, bus/expirelist.c: implement a generic
7553         expire-items-after-N-seconds facility, was going to share between
7554         expiring connections and replies, decided not to use for expiring
7555         connections for now.
7556
7557         * COPYING: include AFL 2.0 (still need to change all the file headers)
7558
7559 2003-10-09  Havoc Pennington  <hp@redhat.com>
7560
7561         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7562         gcc 3.3. Not that we do anything about it yet.
7563
7564         * bus/signals.c (bus_match_rule_parse): impose max length on the
7565         match rule text
7566
7567         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7568
7569 2003-10-09  Havoc Pennington  <hp@redhat.com>
7570
7571         Make matching rules theoretically work (add parser).
7572         
7573         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7574         the case where destination is explicitly specified as bus driver
7575         and someone else is eavesdropping.
7576         
7577         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7578         definition of eavesdropping and assertion
7579
7580         * tools/dbus-send.c (main): use dbus_message_type_from_string
7581
7582         * bus/signals.c (bus_match_rule_parse): implement
7583
7584         * dbus/dbus-message.c (dbus_message_type_from_string): new
7585
7586         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7587
7588 2003-10-02  Havoc Pennington  <hp@pobox.com>
7589
7590         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7591         dbus_gproxy_oneway_call
7592
7593         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7594         (dbus_server_setup_with_g_main): fix to allow calling them more
7595         than once on the same args
7596         (dbus_bus_get_with_g_main): new function
7597
7598 2003-10-02  Havoc Pennington  <hp@redhat.com>
7599
7600         * doc/dbus-tutorial.xml: write some stuff
7601
7602 2003-09-29  Havoc Pennington  <hp@pobox.com>
7603
7604         * configure.in: split checks for Doxygen from XML docs, check for
7605         xmlto
7606
7607         * doc/Makefile.am: XML-ify all the docs, and add a blank
7608         dbus-tutorial.xml
7609
7610 2003-09-29  Havoc Pennington  <hp@pobox.com>
7611
7612         * Merge dbus-object-names branch. To see the entire patch 
7613         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7614         it's huuuuge though.
7615         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7616         
7617 2003-09-28  Havoc Pennington  <hp@pobox.com>
7618
7619         * HACKING: update to reflect new server
7620
7621 2003-09-26  Seth Nickell  <seth@gnome.org>
7622
7623         * python/dbus.py:
7624         * python/examples/example-signals.py:
7625
7626         Start implementing some notions of signals. The API
7627         is really terrible, but they sort of work (with the
7628         exception of being able to filter by service, and to
7629         transmit signals *as* a particular service). Need to
7630         figure out how to make messages come from the service
7631         we registered :-(
7632         
7633         * python/dbus_bindings.pyx.in:
7634
7635         Removed duplicate message_handler callbacks.
7636         
7637 2003-09-25  Havoc Pennington  <hp@redhat.com>
7638
7639         * bus/session.conf.in: fix my mess
7640
7641 2003-09-25  Havoc Pennington  <hp@pobox.com>
7642
7643         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7644
7645 2003-09-25  Seth Nickell  <seth@gnome.org>
7646
7647         * python/examples/example-service.py:
7648
7649         Johan notices complete wrong code in example-service, but
7650         completely wrong in a way that works exactly the same (!).
7651         Johan is confused, how could this possibly work? Example
7652         code fails to serve purpose of making things clear.
7653         Seth fixes.
7654
7655 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7656
7657         * doc/dbus-specification.sgml: don't require header fields
7658         to be 4-byte aligned and specify that fields should be
7659         distinguished from padding by the fact that zero is not
7660         a valid field name.
7661         
7662         * doc/TODO: remove re-alignment item and add item to doc
7663         the OBJECT_PATH type.
7664         
7665         * dbus/dbus-message.c:
7666         (HeaderField): rename the original member to value_offset
7667         and introduce a name_offset member to keep track of where
7668         the field actually begins.
7669         (adjust_field_offsets): remove.
7670         (append_int_field), (append_uint_field),
7671         (append_string_field): don't align the start of the header
7672         field to a 4-byte boundary.
7673         (get_next_field): impl finding the next marhsalled field
7674         after a given field.
7675         (re_align_field_recurse): impl re-aligning a number of
7676         already marshalled fields.
7677         (delete_field): impl deleting a field of any type and
7678         re-aligning any following fields.
7679         (delete_int_or_uint_field), (delete_string_field): remove.
7680         (set_int_field), (set_uint_field): no need to re-check
7681         that we have the correct type for the field.
7682         (set_string_field): ditto and impl re-aligning any
7683         following fields.
7684         (decode_header_data): update to take into account that
7685         the fields aren't 4-byte aligned any more and the new
7686         way to distinguish padding from header fields. Also,
7687         don't exit when there is too much header padding.
7688         (process_test_subdir): print the directory.
7689         (_dbus_message_test): add test to make sure a following
7690         field is re-aligned correctly after field deletion.
7691         
7692         * dbus/dbus-string.[ch]:
7693         (_dbus_string_insert_bytes): rename from insert_byte and
7694         allow the insert of multiple bytes.
7695         (_dbus_string_test): test inserting multiple bytes.
7696
7697         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7698         warning note to docs about having to re-align any
7699         marshalled values following the string.
7700         
7701         * dbus/dbus-message-builder.c:
7702         (append_string_field), (_dbus_message_data_load):
7703         don't align the header field.
7704         
7705         * dbus/dbus-auth.c: (process_test_subdir): print the
7706         directory.
7707         
7708         * test/break-loader.c: (randomly_add_one_byte): upd. for
7709         insert_byte change.
7710         
7711         * test/data/invalid-messages/bad-header-field-alignment.message:
7712         new test case.
7713         
7714         * test/data/valid-messages/unknown-header-field.message: shove
7715         a dict in the unknown field.
7716
7717 2003-09-25  Seth Nickell  <seth@gnome.org>
7718
7719         * python/dbus.py:
7720         * python/dbus_bindings.pyx.in:
7721
7722         Handle return values.
7723         
7724         * python/examples/example-client.py:
7725         * python/examples/example-service.py:
7726
7727         Pass back return values from the service to the client.
7728         
7729 2003-09-24  Seth Nickell  <seth@gnome.org>
7730
7731         * python/dbus.py:
7732
7733         Connect Object methods (when you are sharing an object) up... pass
7734         in a list of methods to be shared. Sharing all the methods just
7735         worked out too weird. You can now create nice Services over the
7736         DBus in Python. :-)
7737         
7738         * python/dbus_bindings.pyx.in:
7739
7740         Keep references to user_data tuples passed into C functions so 
7741         Python doesn't garbage collect on us.
7742
7743         Implement MethodReturn and Error subclasses of Message for creating
7744         DBusMessage's of those types.
7745         
7746         * python/examples/example-client.py:
7747         * python/examples/example-service.py:
7748
7749         Simple example code showing both how create DBus services and objects,
7750         and how to use them.
7751
7752 2003-09-23  Havoc Pennington  <hp@pobox.com>
7753
7754         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7755
7756 2003-09-23  Havoc Pennington  <hp@redhat.com>
7757
7758         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7759         (dbus_gproxy_disconnect_signal): implement
7760         (dbus_gproxy_manager_remove_signal_match): implement
7761         (dbus_gproxy_manager_add_signal_match): implement
7762         (dbus_gproxy_oneway_call): implement
7763
7764 2003-09-23  Havoc Pennington  <hp@pobox.com>
7765
7766         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7767         subclass. This means dropping the transparent thread safety of the
7768         proxy; you now need a separate proxy per-thread, or your own
7769         locking on the proxy. Probably right anyway.
7770         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7771
7772 2003-09-22  Havoc Pennington  <hp@redhat.com>
7773
7774         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7775
7776 2003-09-21  Seth Nickell  <seth@gnome.org>
7777
7778         First checkin of the Python bindings.
7779         
7780         * python/.cvsignore:
7781         * python/Makefile.am:
7782         * python/dbus_bindings.pyx.in:
7783         * python/dbus_h_wrapper.h:
7784
7785         Pieces for Pyrex to operate on, building a dbus_bindings.so
7786         python module for low-level access to the DBus APIs.
7787         
7788         * python/dbus.py:
7789
7790         High-level Python module for accessing DBus objects.
7791
7792         * configure.in:
7793         * Makefile.am:
7794
7795         Build stuff for the python bindings.
7796
7797         * acinclude.m4:
7798
7799         Extra macro needed for finding the Python C header files.
7800
7801 2003-09-21  Havoc Pennington  <hp@pobox.com>
7802
7803         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7804         implementing the proxy manager, didn't get very far.
7805
7806         * dbus/dbus-bus.c (dbus_bus_add_match): new
7807         (dbus_bus_remove_match): new
7808
7809         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7810         path_name argument; adjust the other not-yet-implemented 
7811         gproxy constructors to be what I think they should be.
7812
7813 2003-09-21  Havoc Pennington  <hp@pobox.com>
7814
7815         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7816         by default for message bus connections.
7817
7818         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7819         exit_on_disconnect flag is set and we process the disconnected
7820         signal.
7821         (dbus_connection_set_exit_on_disconnect): new function
7822
7823 2003-09-21  Havoc Pennington  <hp@pobox.com>
7824
7825         Get matching rules mostly working in the bus; only actually
7826         parsing the rule text remains. However, the client side of
7827         "signal connections" hasn't been started, this patch is only the
7828         bus side.
7829         
7830         * dbus/dispatch.c: fix for the matching rules changes
7831         
7832         * bus/driver.c (bus_driver_handle_remove_match)
7833         (bus_driver_handle_add_match): send an ack reply from these
7834         method calls
7835
7836         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7837         arguments, reported by Seth Nickell
7838
7839         * bus/config-parser.c (append_rule_from_element): support
7840         eavesdrop=true|false attribute on policies so match rules 
7841         can be prevented from snooping on the system bus.
7842
7843         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7844         and "destination" in attribute names; fix some docs bugs; 
7845         add eavesdrop=true|false attribute
7846
7847         * bus/driver.c (bus_driver_handle_add_match)
7848         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7849         messages
7850
7851         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7852         rid of broadcast service concept, signals are just always broadcast
7853
7854         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7855         mostly implement matching rules stuff (currently only exposed as signal
7856         connections)
7857
7858 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
7859
7860         * doc/dbus-specification.sgml: Change the header field name
7861         to be an enum and update the rest of the spec to reference
7862         the fields using the conventinal name.
7863
7864         * dbus/dbus-protocol.h: update to reflect the spec.
7865
7866         * doc/TODO: add item to remove the 4 byte alignment requirement.
7867         
7868         * dbus/dbus-message.c: Remove the code to generalise the
7869         header/body length and serial number header fields as named
7870         header fields so we can reference field names using the 
7871         protocol values.
7872         (append_int_field), (append_uint_field), (append_string_field):
7873         Append the field name as a byte rather than four chars.
7874         (delete_int_or_uint_field), (delete_string_field): reflect the
7875         fact that the field name and typecode now occupy 4 bytes instead
7876         of 8.
7877         (decode_string_field), (decode_header_data): update to reflect
7878         protocol changes and move the field specific encoding from
7879         decode_string_field() back into decode_header_data().
7880         
7881         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7882         Add utility to aid debugging.
7883         
7884         * dbus/dbus-message-builder.c:
7885         (append_string_field), (_dbus_message_data_load): Update to
7886         reflect protocol changes; Change the FIELD_NAME directive
7887         to HEADER_FIELD and allow it to take the field's conventional
7888         name rather than the actual value.
7889         
7890         * test/data/*/*.message: Update to use HEADER_FIELD instead
7891         of FIELD_NAME; Always align the header on an 8 byte boundary
7892         *before* updating the header length.
7893
7894 2003-09-15  Havoc Pennington  <hp@pobox.com>
7895
7896         * dbus/dbus-pending-call.c: add the get/set object data
7897         boilerplate as for DBusConnection, etc. Use generic object data
7898         for the notify callback.
7899
7900         * glib/dbus-gparser.c (parse_node): parse child nodes
7901
7902         * tools/dbus-viewer.c: more hacking on the dbus-viewer
7903         
7904         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7905         contain functions shared between the convenience lib and the
7906         installed lib
7907
7908         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7909         -export-symbols-regex to the GLib library
7910
7911         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7912         fix the locking in here, and add a default handler for
7913         Introspect() that just returns sub-nodes.
7914
7915 2003-09-14  Havoc Pennington  <hp@pobox.com>
7916
7917         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7918         rather than gfoo consistent
7919
7920         * glib/dbus-gproxy.h: delete for now, move contents to
7921         dbus-glib.h, because the include files don't work right since we
7922         aren't in the dbus/ subdir.
7923         
7924         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7925         (dbus_gproxy_end_call): finish
7926         (dbus_gproxy_begin_call): finish
7927
7928         * glib/dbus-gmain.c (dbus_set_g_error): new
7929
7930         * glib/dbus-gobject.c (handle_introspect): include information
7931         about child nodes in the introspection
7932
7933         * dbus/dbus-connection.c (dbus_connection_list_registered): new
7934         function to help in implementation of introspection
7935
7936         * dbus/dbus-object-tree.c
7937         (_dbus_object_tree_list_registered_and_unlock): new function
7938
7939 2003-09-12  Havoc Pennington  <hp@pobox.com>
7940
7941         * glib/dbus-gidl.h: add common base class for all the foo_info
7942         types
7943
7944         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7945         similar to kdcop
7946
7947         * test/Makefile.am: try test srcdir -ef . in addition to test
7948         srcdir = ., one of them should work (yeah lame)
7949         
7950         * glib/Makefile.am: build the "idl" parser stuff as a convenience
7951         library
7952         
7953         * glib/dbus-gparser.h: make description_load routines return
7954         NodeInfo* not Parser*
7955
7956         * Makefile.am (SUBDIRS): build test dir after all library dirs
7957
7958         * configure.in: add GTK+ detection
7959
7960 2003-09-07  Havoc Pennington  <hp@pobox.com>
7961
7962         * Make Doxygen contented.
7963
7964 2003-09-07  Havoc Pennington  <hp@pobox.com>
7965
7966         * doc/dbus-specification.sgml: more updates
7967
7968 2003-09-06  Havoc Pennington  <hp@pobox.com>
7969
7970         * doc/dbus-specification.sgml: partial updates
7971
7972         * bus/dbus-daemon-1.1.in: fix the config file docs for the
7973         zillionth time; hopefully I edited the right file this time.
7974
7975         * bus/config-parser.c (append_rule_from_element): support
7976         send_type, send_path, receive_type, receive_path
7977
7978         * bus/policy.c: add message type and path to the list of things
7979         that can be "firewalled"
7980
7981 2003-09-06  Havoc Pennington  <hp@pobox.com>
7982
7983         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7984         (dbus_connection_register_object_path): make this not handle
7985         messages to paths below the given path
7986
7987 2003-09-03  Havoc Pennington  <hp@pobox.com>
7988
7989         * test/glib/Makefile.am: add this with random glib-linked test
7990         programs
7991
7992         * glib/Makefile.am: remove the random test programs from here,
7993         leave only the unit tests
7994
7995         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
7996         uscore/javacaps conversion, and fix     
7997         (get_object_property, set_object_property): change to .NET
7998         convention for mapping props to methods, set_FooBar/get_FooBar, 
7999         since one language has such a convention we may as well copy it. 
8000         Plus real methods in either getFooBar or get_foo_bar style won't 
8001         collide with this convention.
8002
8003 2003-09-01  Havoc Pennington  <hp@pobox.com>
8004
8005         * glib/dbus-gparser.c: implement
8006
8007         * glib/dbus-gobject.c: start implementing skeletons support
8008
8009         * configure.in: when disabling checks/assert, also define
8010         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8011
8012 2003-09-01  Havoc Pennington  <hp@pobox.com>
8013
8014         * glib/Makefile.am: rearrange a bunch of files and get "make
8015         check" framework set up
8016
8017 2003-08-31  Havoc Pennington  <hp@pobox.com>
8018
8019         * fix build with --disable-tests
8020
8021 2003-08-30  Havoc Pennington  <hp@pobox.com>
8022
8023         * dbus/dbus-connection.c: purge DBusMessageHandler
8024
8025         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8026         use callbacks everywhere
8027
8028 2003-08-30  Havoc Pennington  <hp@pobox.com>
8029
8030         * test/data/valid-config-files/system.d/test.conf: change to 
8031         root for the user so warnings don't get printed
8032
8033         * dbus/dbus-message.c: add dbus_message_get_path,
8034         dbus_message_set_path
8035         
8036         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8037         dispatching to a path
8038
8039         * dbus/dbus-string.c (_dbus_string_validate_path): add
8040
8041         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8042         (_dbus_marshal_object_path): implement
8043
8044         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8045         to contain the path to the target object
8046         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8047         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8048
8049 2003-08-30  Havoc Pennington  <hp@pobox.com>
8050
8051         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8052
8053 2003-08-29  Havoc Pennington  <hp@pobox.com>
8054
8055         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8056         registered
8057         (struct DBusObjectSubtree): shrink this
8058         a lot, since we may have a lot of them
8059         (_dbus_object_tree_free_all_unlocked): implement
8060         (_dbus_object_tree_dispatch_and_unlock): implement
8061
8062 2003-08-29  Havoc Pennington  <hp@pobox.com>
8063
8064         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8065
8066 2003-08-28  Havoc Pennington  <hp@pobox.com>
8067
8068         purge DBusObjectID
8069         
8070         * dbus/dbus-connection.c: port to no ObjectID, create a
8071         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8072
8073         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8074         everything except UnregisterFunction and MessageFunction
8075         
8076         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8077         add DBUS_TYPE_OBJECT_PATH
8078         
8079         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8080         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8081         path-based object IDs
8082
8083 2003-08-25  Havoc Pennington  <hp@pobox.com>
8084
8085         Just noticed that dbus_message_test is hosed, I wonder when I
8086         broke that. I thought make check was passing earlier...
8087         
8088         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8089         container tree, will replace most of dbus-object-registry
8090
8091         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8092         screwup
8093
8094 2003-08-19  Havoc Pennington  <hp@pobox.com>
8095
8096         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8097         (dbus_message_is_error): fix this function
8098
8099         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8100         match
8101
8102         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8103         reflect clarified man page
8104         (bus_client_policy_check_can_send): ditto
8105         
8106         * bus/session.conf.in: fixup
8107
8108         * bus/system.conf.in: fixup
8109
8110 2003-08-18  Havoc Pennington  <hp@redhat.com>
8111
8112         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8113
8114         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8115         dumb bug created earlier (wrong order of args to
8116         decode_header_data())
8117         
8118         * tools/dbus-send.c: port
8119
8120         * tools/dbus-print-message.c (print_message): port
8121
8122         * test/data/*messages: port all messages over
8123         
8124         * dbus/dbus-message-builder.c: support including 
8125         message type
8126         
8127         * bus/driver.c: port over
8128         
8129         * bus/dispatch.c: port over to new stuff
8130
8131         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8132         rename disconnect signal to "Disconnected"
8133
8134 2003-08-17  Havoc Pennington  <hp@pobox.com>
8135
8136         This doesn't compile yet, but syncing up so I can hack on it from
8137         work. What are branches for if not broken code? ;-)
8138         
8139         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8140         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8141         DBUS_HEADER_FIELD_ERROR_NAME
8142         
8143         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8144         for the interface+member pairs
8145         (string_hash): change to use g_str_hash algorithm
8146         (find_direct_function, find_string_function): refactor these to
8147         share most code.
8148         
8149         * dbus/dbus-message.c: port all of this over to support 
8150         interface/member fields instead of name field
8151
8152         * dbus/dbus-object-registry.c: port over
8153         
8154         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8155         from _dbus_string_validate_name
8156
8157         * bus/dbus-daemon-1.1: change file format for the 
8158         <deny>/<allow> stuff to match new message naming scheme
8159
8160         * bus/policy.c: port over
8161
8162         * bus/config-parser.c: parse new format
8163         
8164 2003-08-16  Havoc Pennington  <hp@pobox.com>
8165
8166         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8167         broken assertion
8168
8169         * glib/dbus-gproxy.c: some hacking
8170
8171 2003-08-15  Havoc Pennington  <hp@redhat.com>
8172
8173         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8174
8175         * dbus/dbus-connection.c
8176         (dbus_connection_send_with_reply_and_block): factor out internals;
8177         change to convert any error replies to DBusError instead of 
8178         returning them as a message
8179
8180 2003-08-15  Havoc Pennington  <hp@pobox.com>
8181
8182         * dbus/dbus-connection.c, 
8183         dbus/dbus-pending-call.c: Finish the pending call stuff
8184
8185 2003-08-14  Havoc Pennington  <hp@redhat.com>
8186
8187         * dbus/dbus-pending-call.c: start on new object that will replace
8188         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8189         replies
8190
8191         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8192         with remote interfaces
8193
8194         * dbus/dbus-gidl.c: do the boring boilerplate in here
8195         
8196 2003-08-12  Havoc Pennington  <hp@pobox.com>
8197
8198         * bus/dispatch.c (bus_dispatch): make this return proper 
8199         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8200
8201         * dbus/dbus-errors.c (dbus_set_error): use
8202         _dbus_string_append_printf_valist
8203
8204         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8205         (_dbus_string_append_printf): new
8206
8207         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8208         UNKNOWN_METHOD
8209
8210         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8211         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8212         message is unhandled.
8213
8214 2003-08-11  Havoc Pennington  <hp@pobox.com>
8215
8216         * bus/test.c (client_disconnect_handler): change to return
8217         HANDLED (would have been REMOVE_MESSAGE)
8218
8219         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8220         HANDLED/NOT_YET_HANDLED instead of
8221         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8222         should be used.
8223
8224 2003-08-10  Havoc Pennington  <hp@pobox.com>
8225
8226         * tools/dbus-send.c (main): add --type argument, for now
8227         supporting only method_call and signal types.
8228
8229         * tools/dbus-print-message.c: print message type
8230
8231         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8232         init connection->objects
8233
8234         * doc/dbus-specification.sgml: fix sgml
8235
8236         * bus/*.c: port over to object-instance API changes
8237
8238         * test/test-service.c: ditto
8239         
8240         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8241         name, we will have to fix up the rest of the code to also handle
8242         this
8243         (dbus_message_new): generic message-creation call
8244         (set_string_field): allow appending name field
8245
8246 2003-08-06  Havoc Pennington  <hp@pobox.com>
8247
8248         * dbus/dbus-object-registry.c: implement signal connection 
8249         and dispatch
8250
8251         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8252
8253         * dbus/dbus-internals.c (_dbus_memdup): new function
8254
8255 2003-08-02  Havoc Pennington  <hp@pobox.com>
8256
8257         * dbus/dbus-message.c (dbus_message_get_no_reply)
8258         (dbus_message_set_no_reply): add these and remove
8259         set_is_error/get_is_error
8260
8261         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8262         remove the ERROR flag, since there's now an ERROR type
8263
8264 2003-08-01  Havoc Pennington  <hp@pobox.com>
8265
8266         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8267         implement
8268
8269         * dbus/dbus-message.c (dbus_message_get_type): new function
8270
8271         * doc/dbus-specification.sgml: add "type" byte to messages
8272
8273 2003-08-01  Havoc Pennington  <hp@pobox.com>
8274
8275         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8276         a message type enum to distinguish kinds of message
8277         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8278         that need not be replied to
8279
8280 2003-08-01  Havoc Pennington  <hp@pobox.com>
8281
8282         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8283         (unpack_8_octets): fix no-64-bit-int bug
8284
8285         * dbus/dbus-object-registry.c (validate_id): validate the 
8286         connection ID bits, not just the instance ID.
8287
8288         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8289         the connection-global 33 bits of the object ID
8290
8291         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8292         object ID in the new way
8293
8294         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8295         define server/client/instance bits.
8296
8297 2003-07-30  Havoc Pennington  <hp@pobox.com>
8298
8299         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8300         build
8301
8302 2003-07-13  Havoc Pennington  <hp@pobox.com>
8303
8304         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8305         fields to DBusObjectVTable and DBusObjectInfo
8306
8307 2003-07-12  Havoc Pennington  <hp@pobox.com>
8308
8309         * dbus/dbus-object-registry.c: implement unit test,
8310         fix bugs discovered in process
8311
8312         * dbus/dbus-connection.c: remove handler_table and
8313         register_handler(), add DBusObjectRegistry usage
8314
8315         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8316         (dbus_object_id_set_null): new functions
8317
8318 2003-07-08  Havoc Pennington  <hp@pobox.com>
8319
8320         * dbus/dbus-object.c: implement some of this
8321
8322         * dbus/dbus-object-registry.c
8323         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8324         param
8325         (_dbus_object_registry_new): handle OOM
8326
8327 2003-07-08  Havoc Pennington  <hp@pobox.com>
8328
8329         * dbus/dbus-object.h: sketch out an API for registering objects
8330         with a connection, that allows us to use as little as 24 bytes
8331         per object and lets application code represent an object in 
8332         any conceivable way.
8333
8334         * dbus/dbus-object-registry.c: implement the hard bits of the
8335         DBusConnection aspect of object API. Not yet wired up.
8336         
8337 2003-07-06  Havoc Pennington  <hp@pobox.com>
8338
8339         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8340         (_dbus_marshal_object_id): new
8341         (_dbus_demarshal_object_id): new
8342         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8343         consolidate identical switch cases. Don't conditionalize handling
8344         of DBUS_TYPE_UINT64, need to handle the type always.
8345         (_dbus_marshal_validate_arg): consolidate identical cases, and
8346         handle DBUS_TYPE_OBJECT_ID
8347
8348         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8349
8350         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8351
8352 2003-09-28  Havoc Pennington  <hp@pobox.com>
8353
8354         * real 0.13 release
8355
8356 2003-09-28  Havoc Pennington  <hp@pobox.com>
8357
8358         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8359         to work with Debian db2html
8360
8361 2003-09-28  Havoc Pennington  <hp@pobox.com>
8362
8363         * configure.in: 0.13
8364
8365         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8366         stylesheet-images for benefit of Debian
8367         
8368         Change back to using filesystem-linked sockets for the system
8369         bus, so only root can create the default system bus address.
8370         
8371         * bus/system.conf.in: change to use
8372         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8373
8374         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8375         from here.
8376
8377         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8378         here, and AC_DEFINE DBUS_SYSTEM_PATH
8379
8380 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8381
8382         * doc/TODO:
8383         * doc/busconfig.dtd:
8384         Add busconfig DTD.
8385         
8386 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8387
8388         * doc/dbus-specification.sgml:
8389         Add activation reply values.
8390         
8391 2003-08-05  Havoc Pennington  <hp@redhat.com>
8392
8393         * configure.in: 0.12
8394
8395 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8396
8397         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8398         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8399         (add_watch), (remove_watch), (create_source):
8400         Refcount fds, fixes some reentrancy issues.
8401         
8402 2003-07-30  Havoc Pennington  <hp@redhat.com>
8403
8404         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8405         bus address to be abstract if we have abstract sockets
8406
8407         * NEWS: update
8408
8409 2003-07-28  Havoc Pennington  <hp@redhat.com>
8410
8411         * bus/messagebus.in: fix to avoid processname/servicename 
8412         confusion, from Michael Kearey
8413         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8414         
8415 2003-07-23  Havoc Pennington  <hp@pobox.com>
8416
8417         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8418         fix from Andy Hanton to remove broken "+1"
8419
8420 2003-07-16  Havoc Pennington  <hp@pobox.com>
8421
8422         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8423         babysitter process, as suggested by Thomas Leonard, so 
8424         an "eval `dbus-launch --exit-with-session`" will actually 
8425         return
8426
8427 2003-07-16  Havoc Pennington  <hp@pobox.com>
8428
8429         * configure.in: print out EXPANDED_* variables in the summary at
8430         the end; clean up the code that computes EXPANDED_ variables and
8431         get the ones using exec_prefix right. Should make things work
8432         when you build without --prefix
8433
8434 2003-06-29  Havoc Pennington  <hp@pobox.com>
8435
8436         * mono/Test.cs (class Test): fire up a main loop and run it
8437
8438         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8439         done once, the app has to do it
8440
8441 2003-06-26  Havoc Pennington  <hp@pobox.com>
8442
8443         * mono/Connection.cs: set up connection with the glib main loop
8444
8445 2003-07-01  Havoc Pennington  <hp@redhat.com>
8446
8447         * doc/dbus-specification.sgml: clarify the format of a type code,
8448         change suggested by Jim Blandy
8449
8450 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8451
8452         * doc/Makefile.am:
8453         * tools/Makefile.am: Don't assume srcdir == builddir.
8454
8455         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8456         the allocated block.
8457         (_dbus_memory_test): New function.
8458         * dbus/dbus-test.h: Add _dbus_memory_test ().
8459         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8460
8461         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8462         of %c%c%c%c.
8463         (dbus_message_new): Remove obsolete @todo.
8464
8465         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8466         (_dbus_marshal_set_uint64): Fix comment.
8467
8468         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8469         hardcode FIELD_REPLY_SERIAL.
8470
8471         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8472         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8473
8474         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8475         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8476
8477 2003-06-24  Havoc Pennington  <hp@pobox.com>
8478
8479         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8480
8481 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8482
8483         * configure.in:
8484         * gcj/.cvsignore:
8485         * gcj/Hello.java:
8486         * gcj/Makefile.am:
8487         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8488         * gcj/org/.cvsignore:
8489         * gcj/org/Makefile.am:
8490         * gcj/org/freedesktop/.cvsignore:
8491         * gcj/org/freedesktop/Makefile.am:
8492         * gcj/org/freedesktop/dbus/.cvsignore:
8493         * gcj/org/freedesktop/dbus/Makefile.am:
8494         * gcj/org/freedesktop/dbus/Message.java: (Message),
8495         (Message.Message):
8496         * gcj/org/freedesktop/dbus/natMessage.cc:
8497         Fix the build system.
8498
8499 2003-06-22  Havoc Pennington  <hp@pobox.com>
8500
8501         * mono/Connection.cs: add more bindings
8502
8503         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8504         more than once.
8505
8506 2003-06-22  Havoc Pennington  <hp@pobox.com>
8507
8508         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8509         Start wrapping more stuff.
8510
8511 2003-06-22  Havoc Pennington  <hp@pobox.com>
8512
8513         * mono/Message.cs: implement Message.Wrap() that ensures we only
8514         have a single C# wrapper per DBusMessage, assuming it works which
8515         it probably doesn't.
8516
8517         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8518         (dbus_message_free_data_slot): new
8519         (dbus_message_set_data): new
8520         (dbus_message_get_data): new
8521
8522 2003-06-22  Havoc Pennington  <hp@pobox.com>
8523
8524         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8525         (_dbus_data_slot_allocator_alloc): rework these to keep a
8526         reference count on each slot and automatically manage a global
8527         slot ID variable passed in by address
8528
8529         * bus/bus.c: convert to new dataslot API
8530
8531         * dbus/dbus-bus.c: convert to new dataslot API
8532
8533         * dbus/dbus-connection.c: convert to new dataslot API
8534
8535         * dbus/dbus-server.c: convert to new dataslot API
8536
8537         * glib/dbus-gmain.c: ditto
8538
8539         * bus/test.c: ditto
8540
8541         * bus/connection.c: ditto
8542
8543 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8544
8545         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8546         after the gcj checks so that the correct configuration tags
8547         will be added to libtool.
8548
8549         * dbus-glib-1.pc.in: No need to specify any includes since
8550         dbus-1.pc.in has those.
8551
8552 2003-06-22  Havoc Pennington  <hp@pobox.com>
8553
8554         * mono/*, gcj/*, configure.in, Makefile.am:
8555         Check in makefiles and subdirs for mono and gcj bindings.
8556         Neither binding actually exists, just trying to get through
8557         all the build and other boring bits.
8558
8559 2003-06-21  Philip Blundell  <philb@gnu.org>
8560
8561         * tools/dbus-monitor.1: Updated.
8562
8563         * tools/dbus-send.1: Likewise.
8564
8565 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8566
8567         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8568         for hangup and error after checking read so we won't discard
8569         pending data if both hangup and read are set.
8570
8571 2003-06-19  Philip Blundell  <philb@gnu.org>
8572
8573         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8574
8575         * tools/dbus-send.c: Accept both --system and --session.
8576
8577         * tools/dbus-monitor.c: Same here.
8578
8579 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8580
8581         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8582         from C++ (Patch by Miloslav Trmac).
8583
8584 2003-06-15  Joe Shaw  <joe@assbarn.com>
8585
8586         * configure.in: Check for socklen_t.
8587
8588         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8589
8590         * test/test-segfault.c: Add #include <sys/time.h>
8591
8592         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8593         dbus-launch needs it.
8594
8595 2003-06-09  Havoc Pennington  <hp@redhat.com>
8596
8597         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8598         SUN_LEN, it breaks abstract socket usage
8599
8600         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8601         starts of lines.
8602
8603 2003-06-04  Havoc Pennington  <hp@pobox.com>
8604
8605         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8606         using unix:abstract=/foo, and when listening in a tmpdir
8607         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8608
8609         * dbus/dbus-transport.c (_dbus_transport_open): support
8610         unix:abstract=/foo
8611
8612         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8613         support abstract sockets
8614
8615         * dbus/dbus-transport-unix.c
8616         (_dbus_transport_new_for_domain_socket): support abstract sockets
8617
8618         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8619         toggle as an argument, implement abstract namespace support
8620         (_dbus_listen_unix_socket): ditto
8621
8622         * configure.in: add --enable-abstract-sockets and implement
8623         a configure check for autodetection of the right value.
8624
8625 2003-06-01  Havoc Pennington  <hp@pobox.com>
8626
8627         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8628         in /tmp (though on Linux this will end up being useless,
8629         when we add abstract namespace support)
8630
8631         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8632         subst'ing it
8633
8634 2003-05-28  Colin Walters  <walters@verbum.org>
8635
8636         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8637
8638 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8639
8640         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8641
8642 2003-05-17  Colin Walters  <walters@gnu.org>
8643
8644         * tools/dbus-send.c: Don't exit with an error code if --help was
8645         passed.  Default to using the session bus instead of the system
8646         one.
8647
8648         * tools/dbus-launch.c: Ditto.
8649
8650         * tools/dbus-monitor.c: Ditto.
8651
8652         * tools/dbus-send.1: Update with new arguments.
8653
8654         * tools/dbus-launch.c: Emit code to export variables.  New
8655         arguments -s and -c to specify shell syntax, and a bit of code to
8656         autodetect syntax.  Also, allow specifying a program to run.
8657
8658         * tools/dbus-launch.1: Update with new arguments.
8659
8660         * tools/dbus-send.1: Ditto.
8661
8662         * tools/dbus-monitor.1: Ditto.
8663
8664 2003-05-17  Havoc Pennington  <hp@pobox.com>
8665
8666         * bus/config-parser.c (merge_included): merge in policies from
8667         child configuration file.
8668
8669         * bus/policy.c (bus_policy_merge): function to merge two policies
8670         together
8671
8672 2003-05-16  Havoc Pennington  <hp@redhat.com>
8673
8674         * dbus/dbus-connection.c: disable verbose lock spew
8675
8676         * tools/dbus-send.c: add --print-reply command line option
8677
8678         * tools/dbus-print-message.h (print_message): new util function
8679         shared by dbus-send and dbus-monitor
8680
8681         * tools/dbus-monitor.c (handler_func): exit on disconnect
8682
8683         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8684         disconnected, don't try to use the read_watch
8685
8686         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8687         so we can find this bug more easily
8688
8689 2003-05-16  Havoc Pennington  <hp@redhat.com>
8690
8691         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8692         NULL as DBusHashTable is annoyingly likely to do.
8693
8694 2003-05-16  Colin Walters  <walters@verbum.org>
8695
8696         * tools/dbus-monitor.c: Add --session argument and usage()
8697         function.
8698
8699         * tools/dbus-monitor.1: Update with new --session arg.
8700
8701         * bus/Makefile.am (install-data-hook): Create
8702         $(libdir)/dbus-1.0/services so that the session bus is happy.
8703
8704 2003-05-15  Havoc Pennington  <hp@redhat.com>
8705
8706         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8707         on non-x86. ifdef's are evil.
8708
8709 2003-05-15  Havoc Pennington  <hp@redhat.com>
8710
8711         * configure.in: 0.11
8712
8713         * NEWS: update
8714
8715         * bus/Makefile.am (initddir): apparently we are supposed to put
8716         init scripts in /etc/rc.d/init.d not /etc/init.d
8717
8718         * bus/Makefile.am: remove the "you must --enable-tests to make
8719         check" as it broke distcheck
8720
8721         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8722
8723 2003-05-13  James Willcox  <jwillcox@gnome.org>
8724
8725         * configure.in:
8726         * bus/activation.c: (bus_activation_service_created),
8727         (bus_activation_activate_service):
8728         * bus/driver.c: (bus_driver_send_service_deleted),
8729         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8730         (bus_driver_send_service_acquired),
8731         (bus_driver_send_welcome_message),
8732         (bus_driver_handle_list_services):
8733         * bus/session.conf.in:
8734         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8735         (dbus_bus_service_exists), (dbus_bus_activate_service):
8736         * dbus/dbus-bus.h:
8737
8738         Add some convenience API which lets you activate a service, and did a
8739         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8740         and dbus_message_get_args()
8741
8742 2003-05-11  Havoc Pennington  <hp@pobox.com>
8743
8744         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8745         calling _dbus_marshal_validate_arg() for every byte in a byte
8746         array, etc.
8747
8748         * dbus/dbus-message-handler.c: use atomic reference counting to
8749         reduce number of locks slightly; the global lock in here sucks
8750
8751         * dbus/dbus-connection.c
8752         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8753         update_dispatch_status that can be called with lock held; then use
8754         in a couple places to reduce locking/unlocking
8755         (dbus_connection_send): hold the lock over the whole function
8756         instead of acquiring it twice.
8757
8758         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8759
8760         * bus/connection.c (bus_connections_setup_connection): fix access
8761         to already-freed memory.
8762
8763         * dbus/dbus-connection.c: keep a little cache of linked list
8764         nodes, to avoid using the global linked list alloc lock in the
8765         normal send-message case. Instead we just use the connection lock
8766         that we already have to take.
8767
8768         * dbus/dbus-list.c (_dbus_list_find_last): new function
8769
8770         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8771         change to use a struct for the atomic type; fix docs,
8772         they return value before increment, not after increment.
8773
8774         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8775         (_dbus_string_append_8_aligned): new functions to try to
8776         microoptimize this operation.
8777         (reallocate_for_length): break this out of set_length(), to
8778         improve profile info, and also so we can consider inlining the
8779         set_length() part.
8780
8781         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8782         strings with some preallocation, cuts down on our calls to realloc
8783         a fair bit. Though if we can get the "move entire string to empty
8784         string" optimization below to kick in here, it would be better.
8785
8786         * dbus/dbus-string.c (_dbus_string_move): just call
8787         _dbus_string_move_len
8788         (_dbus_string_move_len): add a special case for moving
8789         an entire string into an empty string; we can just
8790         swap the string data instead of doing any reallocs.
8791         (_dbus_string_init_preallocated): new function
8792
8793 2003-05-11  Havoc Pennington  <hp@pobox.com>
8794
8795         Write a "test-profile" that does echo client-server with threads;
8796         profile reveals lock contention, memcpy/realloc of buffers, and
8797         UTF-8 validation as hot spots. 20% of lock contention eliminated
8798         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8799         contention is global mempool locks for GList and DBusList.
8800
8801         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8802         x86 implementation
8803
8804         * dbus/dbus-connection.c (struct DBusConnection): use
8805         dbus_atomic_t for the reference count
8806
8807         * dbus/dbus-message.c (struct DBusMessage): declare
8808         dbus_atomic_t values as volatile
8809
8810         * configure.in: code to detect ability to use atomic integer
8811         operations in assembly, from GLib patch
8812
8813         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8814         time, tired of it being wrong in threads and forked processes
8815
8816         * glib/test-profile.c: a little program to bounce messages back
8817         and forth between threads and eat CPU
8818
8819         * dbus/dbus-connection.c: add debug spew macros for debugging
8820         thread locks; include config.h at top; fix deadlock in
8821         dbus_connection_flush()
8822
8823 2003-05-08  Havoc Pennington  <hp@pobox.com>
8824
8825         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8826         data from getting written, and there wasn't a good reason to
8827         use _exit really.
8828
8829         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8830         dbus_verbose lines in test coverage
8831         (main): add list of functions sorted by # of untested blocks
8832         to the coverage report
8833
8834         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8835
8836         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8837
8838         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8839         extend test coverage
8840
8841         * test/data/auth/cancel.auth-script: test canceling an
8842         authentication
8843
8844         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8845         aren't used. in CVS history if we end up needing them.
8846
8847 2003-05-04  Havoc Pennington  <hp@pobox.com>
8848
8849         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8850         unit test
8851
8852         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8853         function, which assumed length was in # of strings, not bytes
8854
8855         * dbus/dbus-message.c (_dbus_message_test): add tests for some
8856         missing coverage
8857
8858         * dbus/dbus-connection.c
8859         (_dbus_connection_queue_received_message): disable function for
8860         now, we are only using it in test mode
8861
8862         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8863         remove a mistaken FIXME
8864
8865 2003-05-04  Havoc Pennington  <hp@pobox.com>
8866
8867         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8868         unlock mutex on successful return, patch from Anders Gustafsson
8869
8870 2003-05-04  Havoc Pennington  <hp@pobox.com>
8871
8872         * dbus-glib-1.pc.in (Requires): fix dependencies, from
8873         Anders Gustafsson
8874
8875 2003-05-04  Havoc Pennington  <hp@pobox.com>
8876
8877         * tools/dbus-launch.c: implement
8878
8879         * bus/main.c (main), bus/bus.c (bus_context_new):
8880         implement --print-pid and --fork
8881
8882 2003-05-03  Havoc Pennington  <hp@redhat.com>
8883
8884         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8885         the address had no value, and add to test suite. Fix and
8886         regression test from Miloslav Trmac
8887
8888 2003-05-03  Havoc Pennington  <hp@pobox.com>
8889
8890         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8891         watch is invalid when handled
8892
8893         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8894         dbus-launch utility to launch the bus from a shell script.  Didn't
8895         actually implement dbus-launch yet, it's just a placeholder still.
8896
8897 2003-05-03  Havoc Pennington  <hp@pobox.com>
8898
8899         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8900         daemon; also documents daemon config file, so replaces
8901         doc/config-file.txt. Corrected some stuff from config-file.txt in
8902         the process of moving it.
8903
8904 2003-05-03  Havoc Pennington  <hp@pobox.com>
8905
8906         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8907         add some man pages
8908
8909 2003-05-03  Colin Walters  <walters@verbum.org>
8910
8911         * dbus/dbus-sysdeps.c (fill_user_info): Test against
8912         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8913
8914         * Makefile.am: Update to use new .pc versioning scheme.
8915
8916 2003-05-02  Havoc Pennington  <hp@redhat.com>
8917
8918         * bus/system.conf.in: allow send/receive to/from message bus
8919         service
8920
8921 2003-04-30  Havoc Pennington  <hp@redhat.com>
8922
8923         * configure.in: print a note when building with unit tests and
8924         without assertions
8925
8926 2003-04-30  Havoc Pennington  <hp@redhat.com>
8927
8928         * Makefile.am: add a check-local that complains if you didn't
8929         configure with --enable-tests
8930
8931 2003-04-29  Havoc Pennington  <hp@redhat.com>
8932
8933         * glib/dbus-gmain.c: docs cleanups
8934
8935         * dbus/dbus-types.h: add docs on int64 types
8936
8937         * dbus/dbus-memory.c: fix docs to avoid putting private API in
8938         public API docs section
8939
8940 2003-04-29  Havoc Pennington  <hp@redhat.com>
8941
8942         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8943         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8944         parallel install API version, not with the D-BUS package version.
8945
8946         * HACKING: move some of README over here
8947
8948         * README: updates, and document API/ABI policy
8949
8950         * configure.in: reindentation
8951
8952 2003-04-29  Havoc Pennington  <hp@redhat.com>
8953
8954         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8955         to use this library" to be sure people have the right
8956         expectations.
8957
8958 2003-04-28  Havoc Pennington  <hp@redhat.com>
8959
8960         * configure.in: add --enable-docs which by default is auto yes if
8961         doxygen and db2html found, no otherwise; but can be forced on/off
8962
8963         * doc/Makefile.am: conditionalize whether to build docs on
8964         --enable-docs
8965
8966 2003-04-28  Havoc Pennington  <hp@redhat.com>
8967
8968         * configure.in: 0.10
8969
8970         * NEWS: update
8971
8972         * bus/system.conf.in: add <includedir>system.d</includedir>
8973
8974         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8975         username was provided but not uid
8976
8977         * bus/config-parser.c (struct BusConfigParser): keep track of
8978         whether the parser is toplevel or was included; change some
8979         of the error handling if it's included.
8980
8981 2003-04-27  Havoc Pennington  <hp@pobox.com>
8982
8983         Unbreak my code...
8984
8985         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8986         report correct status if we finish processing authentication
8987         inside this function.
8988
8989         * bus/activation.c (try_send_activation_failure): use
8990         bus_transaction_send_error_reply
8991
8992         * bus/connection.c (bus_connection_get_groups): return an error
8993         explaining the problem
8994
8995         * bus/bus.c (bus_context_check_security_policy): implement
8996         restriction here that inactive connections can only send the
8997         hello message. Also, allow bus driver to send anything to
8998         any recipient.
8999
9000         * bus/connection.c (bus_connection_complete): create the
9001         BusClientPolicy here instead of on-demand.
9002         (bus_connection_get_policy): don't return an error
9003
9004         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9005         sender field in message being replied to
9006
9007         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9008         causing it to return FALSE always
9009
9010         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9011         we checked sender rather than destination
9012
9013 2003-04-25  Havoc Pennington  <hp@redhat.com>
9014
9015         test suite is slightly hosed at the moment, will fix soon
9016
9017         * bus/connection.c (bus_connections_expire_incomplete): fix to
9018         properly disable the timeout when required
9019         (bus_connection_set_name): check whether we can remove incomplete
9020         connections timeout after we complete each connection.
9021
9022         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9023         probably still broken.
9024
9025         * bus/services.c (bus_registry_acquire_service): implement max
9026         number of services owned, and honor allow/deny rules on which
9027         services a connection can own.
9028
9029         * bus/connection.c (bus_connection_get_policy): report errors here
9030
9031         * bus/activation.c: implement limit on number of pending
9032         activations
9033
9034 2003-04-25  Havoc Pennington  <hp@redhat.com>
9035
9036         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9037         where we used >= 0 instead of != DBUS_UID_UNSET.
9038
9039 2003-04-25  Havoc Pennington  <hp@redhat.com>
9040
9041         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9042         were toggled without add/remove, fix from Anders Gustafsson
9043
9044 2003-04-24  Havoc Pennington  <hp@redhat.com>
9045
9046         * test/data/valid-config-files/basic.conf: add <limit> tags to
9047         this test
9048
9049         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9050         <limit> tag in configuration file.
9051
9052 2003-04-24  Havoc Pennington  <hp@redhat.com>
9053
9054         * bus/dispatch.c: somehow missed some name_is
9055
9056         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9057         (_dbus_timeout_set_interval): new
9058
9059         * bus/connection.c (bus_connections_setup_connection): record time
9060         when each connection is first set up, and expire them after the
9061         auth timeout passes.
9062
9063 2003-04-24  Havoc Pennington  <hp@redhat.com>
9064
9065         * dbus/dbus-message.c (dbus_message_name_is): rename
9066         (dbus_message_service_is): rename
9067         (dbus_message_sender_is): rename
9068         (dbus_message_get_service): rename
9069
9070 2003-04-24  Havoc Pennington  <hp@redhat.com>
9071
9072         * configure.in: add --enable-checks
9073
9074         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9075
9076         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9077         to use thread locks.
9078         (_dbus_connection_handler_destroyed_locked): move some private
9079         functions into proper docs group
9080
9081         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9082         _dbus_return_val_if_fail
9083
9084         Throughout: use dbus_return_if_fail
9085
9086 2003-04-23  James Willcox  <jwillcox@gnome.org>
9087
9088         * glib/dbus-glib.h:
9089         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9090         (dbus_connection_setup_with_g_main),
9091         (dbus_server_setup_with_g_main):
9092         * glib/test-dbus-glib.c: (main):
9093         * glib/test-thread-client.c: (main):
9094         * glib/test-thread-server.c: (new_connection_callback), (main):
9095         * tools/dbus-monitor.c: (main):
9096
9097         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9098         and dbus_server_setup_with_g_main().
9099
9100 2003-04-20  Havoc Pennington  <hp@pobox.com>
9101
9102         * doc/dbus-specification.sgml: document the restrictions on
9103         message and service names
9104
9105 2003-04-22  Havoc Pennington  <hp@redhat.com>
9106
9107         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9108         support, and do some code cleanups to share more code and
9109         speed up array marshal/demarshal.
9110
9111         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9112
9113         * configure.in: generate dbus-arch-deps.h
9114
9115         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9116         64-bit typecodes
9117
9118 2003-04-22  Havoc Pennington  <hp@redhat.com>
9119
9120         * test/data/valid-messages/opposite-endian.message: fix test
9121         to use proper type for rply field
9122
9123         * test/data/invalid-messages: add tests for below validation
9124
9125         * dbus/dbus-message.c (decode_header_data): validate field types,
9126         and validate that named fields are valid names
9127         (decode_name_field): consider messages in the
9128         org.freedesktop.Local. namespace to be invalid.
9129
9130         * dbus/dbus-string.c (_dbus_string_validate_name): new
9131
9132 2003-04-19  Havoc Pennington  <hp@pobox.com>
9133
9134         * bus/driver.c (bus_driver_handle_hello): check limits and
9135         return an error if they are exceeded.
9136
9137         * bus/connection.c: maintain separate lists of active and inactive
9138         connections, and a count of each. Maintain count of completed
9139         connections per user. Implement code to check connection limits.
9140
9141         * dbus/dbus-list.c (_dbus_list_unlink): export
9142
9143         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9144         number of bytes in the message queue for a connection
9145
9146 2003-04-18  Havoc Pennington  <hp@pobox.com>
9147
9148         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9149
9150         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9151         memleaks
9152
9153         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9154         on realloc be sure to update the pointer in the keyring
9155
9156         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9157         offset to avoid writing to unallocated memory
9158
9159         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9160         try the next mechanism, so we properly handle OOM
9161
9162         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9163         on OOM.
9164         (_dbus_keyring_new): fix OOM bug
9165         (_dbus_keyring_new_homedir): always set error; impose a maximum
9166         number of keys we'll load from the file, mostly to speed up the
9167         test suite and make its OOM checks more useful, but also for
9168         general sanity.
9169
9170         * dbus/dbus-auth.c (process_error_server): reject authentication
9171         if we get an error from the client
9172         (process_cancel): on cancel, send REJECTED, per the spec
9173         (process_error_client): send CANCEL if we get an error from the
9174         server.
9175
9176 2003-04-18  Havoc Pennington  <hp@pobox.com>
9177
9178         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9179         debug spew
9180
9181         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9182         handling problem
9183
9184         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9185         about DBUS_TEST_HOMEDIR once
9186
9187         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9188         the environment
9189
9190         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9191         config file so we test the right thing
9192
9193         Throughout: assorted docs improvements
9194
9195 2003-04-18  Havoc Pennington  <hp@pobox.com>
9196
9197         * glib/dbus-gmain.c: adapt to watch changes
9198
9199         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9200
9201         * dbus/dbus-server.h: remove dbus_server_handle_watch
9202
9203         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9204
9205         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9206         like DBusTimeout, so we don't need dbus_connection_handle_watch
9207         etc.
9208
9209 2003-04-17  Havoc Pennington  <hp@redhat.com>
9210
9211         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9212         database usage so it all goes via the DBusUserDatabase cache.
9213
9214 2003-04-17  Havoc Pennington  <hp@redhat.com>
9215
9216         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9217         there was an OOM watch we skipped, we always return TRUE so we
9218         iterate again to have a look at it again. Fixes test suite hang.
9219         Code rearrangement also lets us lose some memset and only iterate
9220         over callbacks once.
9221
9222         * bus/driver.c (bus_driver_handle_message): sense of test for
9223         reply was backward
9224
9225 2003-04-16  Havoc Pennington  <hp@pobox.com>
9226
9227         * doc/dbus-specification.sgml: make spec say serials are unsigned
9228
9229         * dbus/dbus-message.h: change message serials to unsigned
9230
9231         * dbus/dbus-connection.c: adapt to message serials being unsigned
9232
9233 2003-04-15  Havoc Pennington  <hp@pobox.com>
9234
9235         * bus/bus.c: create and keep around a shared DBusUserDatabase
9236         object.
9237
9238         * bus/connection.c (bus_connection_get_groups): don't cache
9239         groups for user in the connection object, since user database
9240         object now does that.
9241
9242 2003-04-16  Havoc Pennington  <hp@redhat.com>
9243
9244         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9245         list of size counters
9246         (_dbus_message_loader_putback_message_link): put back a popped link
9247
9248         * dbus/dbus-connection.c
9249         (dbus_connection_set_max_live_messages_size): rename
9250         max_received_size
9251         (dbus_connection_get_outgoing_size): get size of outgoing
9252         queue
9253         (_dbus_connection_set_connection_counter): remove this cruft
9254
9255 2003-04-14  Havoc Pennington  <hp@redhat.com>
9256
9257         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9258         caching, but at some point we might want to be able to use a
9259         different database.
9260
9261         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9262         SHA1 conf file to test the sha1 auth mechanism, since the regular
9263         test always uses EXTERNAL when available.
9264
9265         * configure.in,
9266         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9267         add conf file that requires use of sha1 auth
9268
9269 2003-04-13  Havoc Pennington  <hp@pobox.com>
9270
9271         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9272         from Philip Blundell to send messages and monitor them.
9273
9274 2003-04-13  Havoc Pennington  <hp@pobox.com>
9275
9276         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9277         callbacks
9278
9279         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9280         users
9281
9282         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9283         fix to only recover unused bytes if we're already authenticated
9284         (_dbus_transport_get_is_authenticated): fix to still mark us
9285         authenticated if there are unused bytes.
9286
9287         * bus/dispatch.c: implement security policy checking
9288
9289         * bus/connection.c (bus_transaction_send_from_driver): new
9290
9291         * bus/bus.c (bus_context_check_security_policy): new
9292
9293         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9294         now we just set the DBusError and it gets converted to an error
9295         reply.
9296
9297         * bus/connection.c (allow_user_function): enable code using actual
9298         data from the config file
9299
9300         * bus/policy.c (list_allows_user): handle wildcard rules for
9301         user/group connection perms
9302
9303 2003-04-13  Havoc Pennington  <hp@pobox.com>
9304
9305         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9306
9307         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9308
9309         * bus/policy.c (bus_policy_append_mandatory_rule)
9310         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9311         (bus_policy_append_group_rule): new functions
9312
9313 2003-04-12  Havoc Pennington  <hp@pobox.com>
9314
9315         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9316
9317         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9318         the pid/gid/uid, just for paranoia.
9319
9320         * test/break-loader.c (randomly_do_n_things): find a byte
9321         containing a type code, and randomly change it to a different
9322         type code.
9323
9324 2003-04-12  Havoc Pennington  <hp@pobox.com>
9325
9326         * bus/policy.h: change BusPolicy to be the thing from the config
9327         file, and rename old BusPolicy to BusClientPolicy
9328
9329         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9330         match change in how policy works
9331
9332         * dbus/dbus-internals.h: mark assert_not_reached as
9333         __attribute((noreturn))__
9334
9335 2003-04-11  Havoc Pennington  <hp@redhat.com>
9336
9337         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9338         the broadcast service. Use boolean return for ServiceExists.
9339
9340 2003-04-11  Havoc Pennington  <hp@redhat.com>
9341
9342         * configure.in: add another directory to look for qt in.
9343
9344 2003-04-11  Havoc Pennington  <hp@redhat.com>
9345
9346         * AUTHORS: add Colin Walters
9347
9348 2003-04-11  Havoc Pennington  <hp@redhat.com>
9349
9350         * NEWS: update
9351
9352         * configure.in: 0.9
9353
9354 2003-04-11  Havoc Pennington  <hp@redhat.com>
9355
9356         * bus/messagebus.in: remove pid file when stopping the
9357         message bus, since the bus won't have privileges to remove it
9358         itself.
9359
9360 2003-04-11  Havoc Pennington  <hp@redhat.com>
9361
9362         * bus/bus.c (bus_context_new): move credentials change after
9363         creating pidfile
9364
9365 2003-04-11  Havoc Pennington  <hp@pobox.com>
9366
9367         * test/decode-gcov.c: add "below average functions" to the
9368         coverage report, and change how some of the code works.
9369
9370         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9371         not in the coverage stats.
9372
9373         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9374         couple places so running the test suite doesn't result in megaspam.
9375
9376 2003-04-11  Havoc Pennington  <hp@pobox.com>
9377
9378         * bus/dispatch.c (check_existent_service_activation): accept a no
9379         memory error in a place we didn't before
9380
9381         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9382         in case the first one failed," since the test suite is less
9383         broken now.
9384
9385 2003-04-10  Havoc Pennington  <hp@pobox.com>
9386
9387         * bus/dispatch.c (check_segfault_service_activation): add test
9388         for launching an executable that just crashes.
9389
9390         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9391         don't leave a million cores. We'll see how portable this is.
9392
9393 2003-04-10  Havoc Pennington  <hp@pobox.com>
9394
9395         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9396         the possible parent failures before we fork, so that we don't
9397         fail to create a babysitter after creating the child.
9398
9399         * bus/activation.c (bus_activation_activate_service): kill child
9400         if we don't successfully complete the activation.
9401
9402 2003-04-10  Havoc Pennington  <hp@redhat.com>
9403
9404         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9405         the connection if it's disconnected
9406
9407         * bus/activation.c (bus_activation_service_created): use new
9408         transaction features to roll back removal of pending activation if
9409         we don't successfully create the service after all. Don't remove
9410         pending activation if the function fails.
9411
9412         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9413         (_dbus_list_insert_after_link): new code to facilitate
9414         services.c fixes
9415
9416         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9417         new functionality, so we can preallocate the ability to insert
9418         into a hash table.
9419
9420         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9421         allowing us to put custom hooks in a transaction to be used for
9422         cancelling said transaction
9423
9424         * doc/dbus-specification.sgml: add some discussion of secondary
9425         service owners, and disallow zero-length service names
9426
9427         * bus/services.c (bus_registry_acquire_service): new function,
9428         splits out part of bus_driver_handle_acquire_service() and fixes
9429         a bug where we didn't remove the service doing the acquiring
9430         from the secondary queue if we failed to remove the current owner
9431         from the front of the queue.
9432
9433 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9434
9435         * doc/dbus-specification.sgml:
9436         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9437
9438 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9439
9440         * bus/.cvsignore:
9441         * glib/.cvsignore:
9442         * test/.cvsignore:
9443         Added files to cvsignore
9444
9445         * dbus/dbus-message.h:
9446         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9447         Make get_named() take two out argument and return a boolean.
9448         (dbus_message_iter_get_args_valist):
9449         Update usage of get_named().
9450         (dbus_message_iter_append_byte):
9451         Fix typo
9452         (dbus_message_iter_append_named)
9453         Fix typo
9454         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9455         More tests.
9456
9457 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9458
9459         * dbus/dbus-marshal.[ch]:
9460         Add array_type_pos argument to _dbus_marshal_validate_arg.
9461         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9462
9463         * dbus/dbus-message.[ch]:
9464         Multi-dimensional arrays have full type specification in the
9465         outermost array. Iter code re-arranged to handle this.
9466         Added some more iter tests.
9467
9468         * doc/dbus-specification.sgml:
9469         Add me to authors.
9470         Remove old FIXME.
9471         Update new array encoding description.
9472         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9473
9474         * test/data/invalid-messages/array-with-mixed-types.message:
9475         * test/data/valid-messages/array-of-array-of-uint32.message:
9476         Change to the new array format.
9477
9478         * test/data/invalid-messages/too-short-dict.message:
9479         Fix bug in test.
9480
9481         * test/data/valid-messages/recursive-types.message:
9482         Fix up and extend test.
9483
9484 2003-04-10  Havoc Pennington  <hp@pobox.com>
9485
9486         * bus/dispatch.c: lots of fixes
9487
9488         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9489         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9490         that was crack, broke the test service.
9491
9492         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9493         handling to avoid piling up errors if we get a failure on the
9494         first address.
9495
9496         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9497         pid in assertion failures.
9498
9499         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9500         to some fixed size of file descriptor array. Don't return TRUE
9501         anytime a timeout exists, that led to lots of busy loop silliness
9502         in the tests.
9503
9504 2003-04-09  Havoc Pennington  <hp@redhat.com>
9505
9506         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9507         I'd checked this in earlier but hadn't.
9508
9509 2003-04-09  Havoc Pennington  <hp@redhat.com>
9510
9511         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9512         the activation test (man this is getting old!)
9513
9514 2003-04-09  Havoc Pennington  <hp@redhat.com>
9515
9516         * test/test-utils.c: use dispatch status function to fix this up
9517
9518         * bus/connection.c (connection_watch_callback): don't dispatch
9519         from here
9520         (connection_timeout_callback): don't dispatch from here
9521         (bus_connections_setup_connection): set the dispatch status function
9522         (bus_connection_disconnected): unset it
9523
9524         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9525         used to add a connection to be dispatched
9526         (_dbus_loop_iterate): do the dispatching at the end of each
9527         iteration
9528
9529         * dbus/dbus-connection.c
9530         (dbus_connection_set_dispatch_status_function): new function
9531         allowing us to fix up main loop usage
9532         (_dbus_connection_last_unref): free all the various function
9533         user data
9534         (dbus_connection_dispatch): call the DispatchStatusFunction
9535         whenever this function returns
9536         (dbus_connection_handle_watch): call DispatchStatusFunction
9537         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9538         (reply_handler_timeout): call DispatchStatusFunction
9539         (dbus_connection_flush): call DispatchStatusFunction
9540
9541 2003-04-09  Havoc Pennington  <hp@redhat.com>
9542
9543         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9544         a memory leak
9545
9546         * bus/dispatch.c (check_service_activated): fix bug in test
9547
9548         * dbus/dbus-mainloop.c (check_timeout): fix this up
9549
9550         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9551         verbose output so we can sort out output from different processes,
9552         e.g. in the activation case.
9553
9554 2003-04-08  Colin Walters  <walters@gnu.org>
9555
9556         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9557         the pid file.
9558         (bus_context_new): Set it.
9559         (bus_context_unref): Use it to delete the pid file.
9560
9561 2003-04-08  Havoc Pennington  <hp@redhat.com>
9562
9563         * test/data/invalid-messages/array-with-mixed-types.message:
9564         regression test that fails for the moment
9565
9566         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9567         tests for convenience
9568
9569         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9570         array of nil, it broke things.
9571
9572         * test/data/invalid-messages/array-of-nil.message: regression test
9573
9574         * test/data/valid-messages/array-of-array-of-uint32.message:
9575         happened to write this so added it to suite
9576
9577 2003-04-08  Havoc Pennington  <hp@redhat.com>
9578
9579         * bus/driver.c (bus_driver_handle_acquire_service): init
9580         retval/reply before checking name
9581
9582         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9583         recursion depth argument
9584
9585         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9586         in the public struct for future extension
9587
9588         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9589         typo
9590
9591         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9592         message
9593
9594         * doc/dbus-specification.sgml: fix typo
9595
9596 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9597
9598         Implemented recursive types, named types and new-style iters
9599
9600         * bus/driver.c:
9601         * glib/test-thread-client.c: (thread_func):
9602         * glib/test-thread-server.c: (handle_test_message):
9603         * test/test-service.c: (handle_echo):
9604         Update to new api
9605
9606         * dbus/Makefile.am:
9607         * dbus/dbus-dict.c:
9608         * dbus/dbus-dict.h:
9609         * dbus/dbus.h
9610         Remove DBusDict
9611
9612         * dbus/dbus-internals.c: (_dbus_type_to_string):
9613         Update for new types.
9614
9615         * dbus/dbus-marshal.[ch]:
9616         Implement recursive types and the new marshalling format.
9617         Remove hardcoded dict marshalling.
9618         Marshal named types.
9619
9620         * dbus/dbus-message-builder.c:
9621         Add BYTE_ARRAY.
9622         Remove references to old types
9623
9624         * dbus/dbus-message.[ch]:
9625         New non-refcounted iter API that supports recursive iters.
9626         Use iters for appending, including support for recursive
9627         iters.
9628         Add byte and named type support.
9629         Update everything to new marshalling formats.
9630         Add tests for new API.
9631
9632         * dbus/dbus-protocol.h:
9633         Remove old array types.
9634         Add types: BYTE, ARRAY, DICT, NAMED
9635
9636         * dbus/dbus-string.c:
9637         * dbus/dbus-sysdeps.c:
9638         Make parse_double locale safe.
9639
9640         * dbus/dbus-test-main.c:
9641         Call setlocale.
9642
9643         * dbus/dbus-test.c:
9644         Kill dict test
9645
9646         * doc/dbus-specification.sgml:
9647         Update spec
9648
9649         * test/data/incomplete-messages/missing-body.message:
9650         * test/data/invalid-messages/bad-boolean.message:
9651         * test/data/invalid-messages/bad-boolean-array.message:
9652         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9653         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9654         * test/data/invalid-messages/too-short-dict.message:
9655         * test/data/valid-messages/dict-simple.message:
9656         * test/data/valid-messages/dict.message:
9657         * test/data/valid-messages/emptiness.message:
9658         * test/data/valid-messages/lots-of-arguments.message:
9659         * test/data/valid-messages/no-padding.message:
9660         * test/data/valid-messages/recursive-types.message:
9661         Add missing NAME fields
9662         Fix up dicts & arrays
9663
9664         * test/data/invalid-messages/dict-with-nil-value.message:
9665         Removed, this is not invalid anymore.
9666
9667         * test/data/valid-messages/recursive-types.message:
9668         Add new test for deeply recursive types.
9669
9670 2003-04-07  Havoc Pennington  <hp@pobox.com>
9671
9672         * bus/driver.c (bus_driver_handle_acquire_service): return an
9673         error if you try to acquire a service that starts with ':'
9674
9675 2003-04-07  Havoc Pennington  <hp@redhat.com>
9676
9677         * doc/dbus-specification.sgml: require that base service names
9678         start with ':' and that the base service is created/deleted
9679         as first and last things a connection does on the bus
9680
9681         * bus/dispatch.c (check_existent_service_activation): lots more
9682         work on the activation test; it doesn't fully pass yet...
9683
9684         * test/test-service.c (main): fix so we don't memleak the
9685         connection to the message bus
9686         (filter_func): accept a message asking us to exit
9687
9688 2003-04-06  Havoc Pennington  <hp@pobox.com>
9689
9690         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9691         from Colin Walters
9692
9693         * configure.in: fixes to Qt detection from Colin Walters
9694
9695         * doc/Makefile.am: Only remove generated docbook dirs if they
9696         exist, from Colin Walters
9697
9698         * dbus/dbus-bus.c: change how we set well-known connections to
9699         NULL, so that it works if a single connection is stored in
9700         two well-known array slots.
9701
9702         * test/Makefile.am: remove a lot of stuff that isn't immediately
9703         useful, it's in CVS history if we want it.
9704
9705         * test/test-service.c: use dbus-mainloop instead of that
9706         watch.[hc] crack
9707
9708 2003-04-06  Havoc Pennington  <hp@pobox.com>
9709
9710         * dbus/Makefile.am: split lists of sources into stuff that goes in
9711         the library, util functions that go in the lib and are also used
9712         elsewhere, and util functions that are used in tests/daemon but
9713         don't go in the lib.
9714
9715         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9716         here so it can be used in test binaries also
9717
9718 2003-04-06  Havoc Pennington  <hp@pobox.com>
9719
9720         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9721         here in the parent process, so we can return an error if it
9722         fails. Also, move some of the code into the child so the parent
9723         is less hosed if we fail midway through.
9724
9725         * bus/bus.c (bus_context_new): move pidfile detection further up
9726         in the function, before we start overwriting sockets and such.
9727
9728         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9729
9730         * configure.in: add --with-system-pid-file and --with-system-socket
9731
9732 2003-04-06  Colin Walters  <walters@verbum.org>
9733
9734         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9735
9736         * bus/system.conf.in: Declare a pidfile.
9737
9738         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9739         create one (if appropriate).
9740
9741         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9742         (struct BusConfigParser) [pidfile]: New.
9743         (element_type_to_name, merge_included, start_busconfig_child)
9744         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9745         (bus_config_parser_unref): Free it.
9746         (bus_config_parser_get_pidfile): New function.
9747
9748         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9749
9750         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9751
9752         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9753
9754         * dbus/dbus-sysdeps.h: Prototype it.
9755
9756 2003-04-06  Havoc Pennington  <hp@pobox.com>
9757
9758         * bus/bus.c (bus_context_new): print the address in here, rather
9759         than in main(), because we need to do it before forking the daemon
9760
9761         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9762         on the service nonexistent error
9763
9764         * bus/driver.c (bus_driver_handle_acquire_service): set the
9765         sender on the AcquireService reply
9766
9767         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9768         server also listen on a UNIX socket so services can connect to it.
9769
9770 2003-04-06  Havoc Pennington  <hp@pobox.com>
9771
9772         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9773         so it detects deadlocks and also we actually init threads when
9774         debugging.
9775
9776 2003-04-06  Havoc Pennington  <hp@pobox.com>
9777
9778         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9779         save the domain socket name, and unlink it when we disconnect the
9780         server. Means that at least when we exit normally, we won't leave
9781         a bunch of junk in /tmp
9782
9783         * dbus/dbus-transport-unix.c
9784         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9785         memory management). (I was making a real change here but then
9786         didn't)
9787
9788 2003-04-06  Havoc Pennington  <hp@pobox.com>
9789
9790         * bus/bus.c (bus_context_new): fix wrong handling of
9791         server_data_slot_unref() in the error case.
9792
9793         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9794         "(condition) != 0" to _dbus_real_assert so that
9795         "_dbus_assert (pointer)" doesn't cause a warning
9796
9797         * bus/main.c (main): accept --print-address option to print out
9798         the message bus address
9799
9800         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9801
9802         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9803         "tmpdir" option to unix: address on client side
9804
9805         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9806         to unix: address
9807
9808         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9809         we can use to create sockets in the test suite.
9810
9811         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9812         cleanly. To be used for testing.
9813
9814         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9815
9816         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9817
9818         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9819         handle trying to call this when there's no servers active
9820
9821 2003-04-05  Havoc Pennington  <hp@pobox.com>
9822
9823         * NEWS: update
9824
9825         * configure.in: 0.8
9826
9827 2003-04-05  Havoc Pennington  <hp@pobox.com>
9828
9829         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9830         crash on startup. Need to get "try starting the daemon"
9831         in the test suite I guess. ;-)
9832
9833         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9834         tracked the number of open connections; it's better done in
9835         application-specific code as you want it to span all servers etc.
9836
9837 2003-04-05  Havoc Pennington  <hp@pobox.com>
9838
9839         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9840         patch from Colin Walters
9841
9842 2003-04-05  Havoc Pennington  <hp@pobox.com>
9843
9844         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9845         reality; in fact multiple mechanisms are allowed.
9846
9847         * dbus/dbus-internals.c (_dbus_real_assert)
9848         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9849         _dbus_assert_not_reached() into functions, so that they don't show
9850         up in basic block counts for test coverage, and don't use up as
9851         much disk space. Does mean slower execution speed though, so
9852         assumes --disable-asserts is the normal production case.
9853
9854 2003-04-05  Havoc Pennington  <hp@pobox.com>
9855
9856         * test/Makefile.am (dist-hook): also dist *.in files
9857
9858         * NEWS: update
9859
9860         * configure.in: 0.7
9861
9862 2003-04-05  Havoc Pennington  <hp@pobox.com>
9863
9864         * dbus/dbus-string.c: docs warning
9865
9866         * dbus/dbus-spawn.c: missing docs
9867
9868         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9869
9870 2003-04-05  Havoc Pennington  <hp@pobox.com>
9871
9872         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9873         magic from GLib
9874
9875         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9876         to -1 once we've reaped the babysitter
9877         (_dbus_babysitter_handle_watch): do as much work as we can, not
9878         just one go of it
9879
9880         * bus/activation.c: add code using DBusBabysitter so that we
9881         handle it when a service fails to start up properly.
9882         (bus_activation_service_created): don't remove the activation
9883         entries as we go, just let them get removed when we free the pending
9884         activation. Unref reply messages after sending them.
9885
9886 2003-04-05  Havoc Pennington  <hp@pobox.com>
9887
9888         * test/decode-gcov.c (main): print per-directory stats in the report
9889
9890         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9891
9892 2003-04-05  Havoc Pennington  <hp@pobox.com>
9893
9894         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9895
9896         * test/decode-gcov.c: hack up a little program to suck data
9897         out of gcov files. Yes this is sort of silly.
9898
9899         * configure.in: define something in config.h and do an
9900         AM_CONDITIONAL when gcov is enabled
9901
9902 2003-04-04  Havoc Pennington  <hp@redhat.com>
9903
9904         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9905         return a "babysitter" object that is used to monitor the status of
9906         the spawned process and reap it when required.
9907
9908         * test/test-segfault.c, test/test-exit.c,
9909         test/test-sleep-forever.c: binaries that do various lame things,
9910         used in the test suite.
9911
9912         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9913
9914 2003-04-03  Havoc Pennington  <hp@pobox.com>
9915
9916         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9917         in preparation for modifying it, dbus-sysdeps is getting
9918         a bit unmanageable.
9919
9920 2003-04-03  Havoc Pennington  <hp@redhat.com>
9921
9922         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9923         have multiple ones
9924
9925         * bus/*.[hc]: adapt to mainloop change
9926
9927 2003-04-03  Havoc Pennington  <hp@redhat.com>
9928
9929         * bus/activation.c (load_directory): fix up memleaks
9930         (bus_activation_entry_free): free the entry
9931
9932         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9933         we get one from the message bus; fix memleaks.
9934
9935         * dbus/dbus-message.c (dbus_set_error_from_message): new function
9936
9937 2003-04-03  Havoc Pennington  <hp@pobox.com>
9938
9939         * bus/config-parser.c (bus_config_parser_unref): free
9940         list of mechanisms, bug discovered by test suite enhancements
9941         (putting system.conf and session.conf into suite)
9942
9943         * test/Makefile.am, test/test-service.c: add placeholder for a
9944         test service that we'll activate as part of test suite. Doesn't
9945         do anything yet.
9946
9947         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9948         setting NULL value, and use system malloc not dbus_malloc()
9949         when we have unavoidable memleakage.
9950
9951         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9952         didn't work, and support DBUS_BUS_ACTIVATION.
9953
9954         * bus/activation.c (child_setup): pass our well-known bus type to
9955         the child
9956
9957         * bus/config-parser.c: support <type> to specify well-known type
9958
9959         * doc/dbus-specification.sgml: document the env variables to
9960         locate well-known buses and find service activator
9961
9962 2003-04-02  Havoc Pennington  <hp@redhat.com>
9963
9964         * test/Makefile.am (all-local): add a rule to copy tests to
9965         builddir, so we can have generated tests. Use this to remove the
9966         silly hack for testing system.conf and session.conf. Will use this
9967         shortly to generate .service files pointing to test binaries.
9968
9969 2003-04-02  Havoc Pennington  <hp@redhat.com>
9970
9971         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9972         current alloc and needed new length, not max of the doubled
9973         allocation and needed new length. Also, when building tests,
9974         don't do the double-allocation stuff, just realloc every time.
9975
9976 2003-04-02  Havoc Pennington  <hp@redhat.com>
9977
9978         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9979         in error messages
9980         (_dbus_string_get_dirname): new
9981         (_dbus_sysdeps_test): new
9982         (_dbus_directory_open): include dirnames in error messages
9983
9984         * bus/config-parser.c: interpret <include> and <includedir> and
9985         <servicedir> relative to config file location if the given
9986         filename is not absolute.
9987
9988         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9989
9990 2003-04-02  Havoc Pennington  <hp@redhat.com>
9991
9992         * bus/connection.c (bus_transaction_send_error_reply): set sender
9993         service for the error, and unref the reply on success
9994
9995         * bus/activation.c: convert to use BusTransaction so OOM can be
9996         handled correctly
9997         (bus_activation_service_created): set sender of the message
9998
9999 2003-04-01  Havoc Pennington  <hp@redhat.com>
10000
10001         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10002         <includedir> (at least mostly)
10003
10004         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10005         first, then the user ID
10006
10007 2003-04-01  Havoc Pennington  <hp@pobox.com>
10008
10009         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10010         function
10011
10012         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10013
10014         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10015
10016         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10017         socket 0777, and unlink any existing socket.
10018
10019         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10020         the configuration file so specifies; set up auth mechanism
10021         restrictions
10022
10023         * bus/config-parser.c (bus_config_parser_content): add support
10024         for <fork> option and fill in code for <auth>
10025
10026         * bus/system.conf.in: add <fork/> to default configuration,
10027         and limit auth mechanisms to EXTERNAL
10028
10029         * doc/config-file.txt (Elements): add <fork>
10030
10031         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10032         (_dbus_change_identity): new function
10033
10034 2003-03-31  Havoc Pennington  <hp@redhat.com>
10035
10036         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10037         (_dbus_listen_unix_socket): fix off-by-one error in null
10038         termination spotted by Nalin
10039
10040 2003-03-31  Havoc Pennington  <hp@redhat.com>
10041
10042         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10043         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10044         having a real home directory available.
10045
10046 2003-03-31  Havoc Pennington  <hp@redhat.com>
10047
10048         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10049
10050         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10051
10052         * configure.in: add support for specifying a style of init script
10053         to install
10054
10055 2003-03-31  Havoc Pennington  <hp@redhat.com>
10056
10057         Fix some annoying DBusString API and fix all affected code.
10058
10059         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10060         max_length argument
10061         (_dbus_string_get_data): change to return string instead of using
10062         an out param
10063         (_dbus_string_get_const_data): ditto
10064         (_dbus_string_get_data_len): ditto
10065         (_dbus_string_get_const_data_len): ditto
10066
10067 2003-03-31  Havoc Pennington  <hp@redhat.com>
10068
10069         * bus/main.c (main): fix up the command line arguments to be nicer
10070
10071 2003-03-31  Havoc Pennington  <hp@redhat.com>
10072
10073         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10074         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10075         final location that lands in the config file
10076
10077         * bus/config-loader-expat.c (bus_config_load): fix type of
10078         XML_Parser variable
10079
10080         * doc/TODO: remove TODO item for dbus_bus_get()
10081
10082         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10083
10084 2003-03-31  Havoc Pennington  <hp@pobox.com>
10085
10086         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10087         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10088         argument since they are always client side
10089
10090         * dbus/dbus-server.c (dbus_server_get_address): new function
10091
10092         * bus/main.c (main): take the configuration file as an argument.
10093
10094         * test/data/valid-config-files/debug-allow-all.conf: new file to
10095         use with dispatch.c tests for example
10096
10097         * bus/test-main.c (main): require test data dir
10098
10099         * bus/bus.c (bus_context_new): change this to take a
10100         configuration file name as argument
10101
10102         * doc/config-file.txt (Elements): add <servicedir>
10103
10104         * bus/system.conf, bus/session.conf: new files
10105
10106         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10107         well-known socket if none set
10108
10109         * configure.in: create system.conf and session.conf
10110
10111 2003-03-30  Havoc Pennington  <hp@pobox.com>
10112
10113         * bus/config-parser.c: hacking
10114
10115         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10116         to shut down, since it could cause weirdness with the DBusList
10117         lock
10118
10119         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10120         link-oriented stack routines
10121         (alloc_link): free the mempool if the first alloc from it fails
10122
10123         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10124
10125         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10126         from GLib
10127         (_dbus_string_skip_white): new
10128
10129         * doc/config-file.txt (Elements): add <includedir>
10130
10131 2003-03-28  Havoc Pennington  <hp@pobox.com>
10132
10133         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10134         (_dbus_string_copy_data): new functions
10135
10136 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10137
10138         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10139         * dbus/dbus-bus.h:
10140         Add dbus_bus_get.
10141
10142         * dbus/dbus-memory.c:
10143         Fix a doc comment.
10144
10145 2003-03-28  Havoc Pennington  <hp@pobox.com>
10146
10147         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10148         I think it may have just been superstition. Not sure.
10149
10150         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10151         failures that were not being handled.
10152
10153         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10154
10155         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10156         row that will fail on out-of-memory.
10157
10158         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10159         function for testing out-of-memory handling.
10160
10161         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10162         allocation functions, they do map exactly to the expat ones.
10163
10164 2003-03-27  Havoc Pennington  <hp@redhat.com>
10165
10166         * bus/config-loader-libxml.c (bus_config_load): add another error
10167         check
10168
10169 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10170
10171         * doc/TODO:
10172         Add note about automatic service activation.
10173
10174         * doc/dbus-specification.sgml:
10175         Rename the specification and clarify a few things.
10176
10177 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10178
10179         * Doxyfile.in:
10180         * dbus/dbus-address.c:
10181         * dbus/dbus-dict.c:
10182         * dbus/dbus-marshal.c:
10183         * dbus/dbus-server-debug-pipe.c:
10184         * dbus/dbus-transport-unix.c:
10185         Fix documentation warnings.
10186
10187 2003-03-26  Havoc Pennington  <hp@pobox.com>
10188
10189         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10190         after every test so it's quick and easy to see which leaked, and
10191         so we test multiple dbus_shutdown() calls
10192
10193         * configure.in: change configure.in XML stuff to also support
10194         expat
10195
10196         * config-loader-libxml.c: some hacking
10197
10198         * config-loader-expat.c: some hacking
10199
10200         * config-parser.c: some hacking, plus tests
10201
10202 2003-03-25  Havoc Pennington  <hp@redhat.com>
10203
10204         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10205
10206         * configure.in: add --with-xml option to specify XML library,
10207         right now only libxml is supported.
10208
10209         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10210         nonworking code between home and work, still just stubs
10211
10212 2003-03-24  Havoc Pennington  <hp@redhat.com>
10213
10214         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10215         file
10216
10217         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10218         NULL argument for "message" if the error is a well-known one,
10219         fill in a generic message in this case.
10220
10221         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10222         favor of DBusError
10223
10224         * bus/test.c (bus_test_flush_bus): add
10225
10226         * bus/policy.c (bus_policy_test): test code stub
10227
10228 2003-03-24  Havoc Pennington  <hp@pobox.com>
10229
10230         * bus/connection.c (bus_connections_setup_connection): set up
10231         the "can this user connect" function, but it always returns
10232         TRUE until we have a config file parser so we can have a config
10233         file that allows connections.
10234
10235 2003-03-23  Havoc Pennington  <hp@pobox.com>
10236
10237         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10238         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10239         the mutex, so we can check for proper memory management
10240         and OOM handling.
10241
10242         * dbus/dbus-dataslot.c: remove the mutex from
10243         DBusDataSlotAllocator and lock it manually when using it,
10244         to simplify fitting it into the global slots framework.
10245
10246         * dbus/dbus-threads.c (init_static_locks): rework how we're
10247         handling global locks so they are easily shut down.
10248
10249         * bus/policy.c (bus_policy_append_rule): fix
10250
10251         * bus/test-main.c (main): check for memleaks
10252
10253         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10254         test suite check for memleaks
10255
10256         * dbus/dbus-memory.c: add support in test mode for tracking
10257         number of outstanding blocks
10258
10259 2003-03-23  Havoc Pennington  <hp@pobox.com>
10260
10261         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10262         policies code
10263
10264         * dbus/dbus-hash.h: add ULONG hash keys
10265
10266         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10267         (_dbus_get_group_id): new function
10268
10269 2003-03-20  Havoc Pennington  <hp@redhat.com>
10270
10271         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10272         new function
10273         (dbus_connection_get_unix_user): new function
10274
10275 2003-03-20  Havoc Pennington  <hp@pobox.com>
10276
10277         * bus/connection.c (bus_connection_send_oom_error): assert that
10278         message has a sender
10279         (connection_execute_transaction): ditto
10280         (bus_connection_preallocate_oom_error): fix to set the sender, and
10281         set recipient to the destination service, not the bus driver
10282
10283         * bus/policy.c: hacking
10284
10285         * dbus/dbus-message.c (dbus_message_service_is): new function
10286         (dbus_message_sender_is): new
10287
10288 2003-03-19  Havoc Pennington  <hp@redhat.com>
10289
10290         * bus/policy.c: start sketching code for policy restrictions on
10291         what connections can do.
10292
10293 2003-03-18  Havoc Pennington  <hp@redhat.com>
10294
10295         * doc/TODO: some notes on high-level todo items. Little nitpick
10296         stuff is all in @todo, so no need to add it here.
10297
10298         * doc/config-file.txt: some notes on how config file might look
10299
10300 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10301
10302         * configure.in: 0.6
10303
10304         * NEWS: Update.
10305
10306 2003-03-17  Havoc Pennington  <hp@redhat.com>
10307
10308         * dbus/dbus-internals.h: add gcc attributes so that
10309         our printf-style functions warn on bad arguments to
10310         format
10311
10312         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10313         format bug
10314
10315         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10316         printf format bug
10317
10318 2003-03-17  Havoc Pennington  <hp@redhat.com>
10319
10320         * bus/test-main.c (main): make it print something as it runs
10321         so make check doesn't look stuck
10322
10323         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10324         from CVS, now obsolete
10325
10326 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10327
10328         * bus/dispatch.c: (bus_dispatch):
10329         Refetch the service name since it may have been reallocated
10330         when dbus_message_set_sender was called.
10331
10332         * dbus/dbus-sysdeps.c: (_dbus_accept):
10333         Add address and address length variables and use them to stop
10334         valgrind from complaining.
10335
10336 2003-03-17  Havoc Pennington  <hp@pobox.com>
10337
10338         All tests pass, no memleaks, no valgrind complaints.
10339
10340         * bus/test.c: refcount handler_slot
10341
10342         * bus/connection.c (bus_connections_new): refcount
10343         connection_data_slot
10344
10345         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10346         bytes so that auth scripts pass.
10347
10348         * bus/dispatch.c: init message_handler_slot so it gets allocated
10349         properly
10350
10351         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10352
10353         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10354         dealloc server_pipe_hash when no longer used for benefit of
10355         leak checking
10356
10357         * dbus/dbus-auth.c (process_command): memleak fix
10358
10359         * bus/dispatch.c (check_hello_message): memleak fix
10360
10361 2003-03-16  Havoc Pennington  <hp@pobox.com>
10362
10363         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10364
10365 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10366
10367         * bus/activation.c (bus_activation_activate_service): Append
10368         the pending activation entry to the list of pending activations.
10369
10370 2003-03-16  Havoc Pennington  <hp@pobox.com>
10371
10372         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10373         connections
10374
10375         * dbus/dbus-address.c (create_entry): fix OOM handling when
10376         failing to alloc entry->method
10377
10378 2003-03-16  Havoc Pennington  <hp@pobox.com>
10379
10380         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10381         the watch
10382
10383         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10384         add some missing dbus_set_result
10385
10386         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10387         alloc the DBusMessageHandler
10388
10389         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10390         the transport here, since we call this from the finalizer; it
10391         resulted in a double-finalize.
10392
10393         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10394         where we tried to use transport->connection that was NULL,
10395         happened when transport was disconnected early on due to OOM
10396
10397         * bus/*.c: adapt to handle OOM for watches/timeouts
10398
10399         * dbus/dbus-transport-unix.c: port to handle OOM during
10400         watch handling
10401
10402         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10403         reference to unused bytes instead of a copy
10404
10405         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10406         out of memory
10407
10408         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10409         FALSE on OOM
10410
10411         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10412         of memory
10413
10414 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10415
10416         * doc/dbus-specification.sgml:
10417         Document reply message for ActivateService.
10418
10419 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10420
10421         * bus/activation.c: (bus_pending_activation_entry_free),
10422         (bus_pending_activation_free), (bus_activation_new),
10423         (bus_activation_unref), (bus_activation_service_created),
10424         (bus_activation_activate_service):
10425         * bus/activation.h:
10426         * bus/bus.c: (bus_context_new):
10427         * bus/desktop-file.c: (new_section):
10428         * bus/driver.c: (bus_driver_send_service_deleted),
10429         (bus_driver_handle_activate_service):
10430         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10431         * bus/services.h:
10432         * dbus/dbus-connection.c:
10433         (dbus_connection_send_with_reply_and_block):
10434         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10435         * dbus/dbus-protocol.h:
10436         Make activation work better. Now pending activations will be queued
10437         and the daemon won't try to activate services that are already registered.
10438
10439 2003-03-16  Havoc Pennington  <hp@pobox.com>
10440
10441         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10442         connection data
10443
10444         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10445         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10446
10447 2003-03-16  Havoc Pennington  <hp@pobox.com>
10448
10449         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10450         this. always run the test suite before commit...
10451
10452         * bus/*: adapt to DBusConnection API changes
10453
10454         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10455         requires renaming stuff to avoid dbus_connection_dispatch name
10456         conflict.
10457
10458         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10459         function
10460
10461         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10462         separate from _dbus_message_loader_return_buffer()
10463
10464         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10465         this, because it's now always broken to use; the number of
10466         messages in queue vs. the number still buffered by the message
10467         loader is undefined/meaningless. Should use
10468         dbus_connection_get_dispatch_state().
10469         (dbus_connection_dispatch): rename from
10470         dbus_connection_dispatch_message
10471
10472 2003-03-16  Havoc Pennington  <hp@pobox.com>
10473
10474         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10475         implementation
10476
10477 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10478
10479         * dbus/dbus-connection.c:
10480         (dbus_connection_send_with_reply_and_block):
10481         Decrease connection->n_incoming when removing an entry
10482         from the list.
10483         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10484         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10485         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10486         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10487         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10488         (dbus_dict_get_byte_array):
10489         Handle NULL arrays and strings. Also add support for byte arrays.
10490
10491         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10492         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10493         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10494         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10495         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10496         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10497         * dbus/dbus-marshal.h:
10498         Add support for marshalling and demarshalling empty arrays and strings.
10499
10500         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10501         (dbus_message_append_string_array),
10502         (dbus_message_iter_get_boolean),
10503         (dbus_message_iter_get_boolean_array),
10504         (dbus_message_iter_get_int32_array),
10505         (dbus_message_iter_get_uint32_array),
10506         (dbus_message_iter_get_double_array),
10507         (dbus_message_iter_get_byte_array),
10508         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10509         (check_message_handling):
10510         Add support for getting empty arrays and dicts.
10511
10512         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10513         Don't do any validation at all for now, that's better than just checking
10514         for ASCII.
10515
10516         * test/data/valid-messages/emptiness.message:
10517         New test message with lots of empty arrays.
10518
10519 2003-03-16  Havoc Pennington  <hp@pobox.com>
10520
10521         * dbus/dbus-connection.c
10522         (_dbus_connection_queue_received_message_link): new function that
10523         can't fail due to OOM
10524
10525         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10526         new function pops a message together with a list link
10527         containing it.
10528
10529         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10530         message queuing functions to avoid needing to alloc memory
10531
10532 2003-03-16  Havoc Pennington  <hp@pobox.com>
10533
10534         Oops - test code was only testing failure of around 30 of the
10535         mallocs in the test path, but it turns out there are 500+
10536         mallocs. I believe this was due to misguided linking setup such
10537         that there was one copy of dbus_malloc etc. in the daemon and one
10538         in the shared lib, and only daemon mallocs were tested. In any
10539         case, the test case now tests all 500+ mallocs, and doesn't pass
10540         yet, though there are lots of fixes in this patch.
10541
10542         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10543         this so that it doesn't need to allocate memory, since it
10544         has no way of indicating failure due to OOM (and would be
10545         annoying if it did).
10546
10547         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10548
10549         * bus/Makefile.am: rearrange to create two self-contained
10550         libraries, to avoid having libraries with overlapping symbols.
10551         that was resulting in weirdness, e.g. I'm pretty sure there
10552         were two copies of global static variables.
10553
10554         * dbus/dbus-internals.c: move the malloc debug stuff to
10555         dbus-memory.c
10556
10557         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10558         empty.
10559
10560         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10561
10562         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10563         on failure.
10564
10565         * bus/dispatch.c (bus_dispatch_add_connection): free
10566         message_handler_slot when no longer using it, so
10567         memory leak checkers are happy for the test suite.
10568
10569         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10570
10571         * bus/bus.c (new_connection_callback): disconnect in here if
10572         bus_connections_setup_connection fails.
10573
10574         * bus/connection.c (bus_connections_unref): fix to free the
10575         connections
10576         (bus_connections_setup_connection): if this fails, don't
10577         disconnect the connection, just be sure there are no side
10578         effects.
10579
10580         * dbus/dbus-string.c (undo_alignment): unbreak this
10581
10582         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10583         leaking
10584         (_dbus_auth_new): fix the order in which we free strings
10585         on OOM failure
10586
10587         * bus/connection.c (bus_connection_disconnected): fix to
10588         not send ServiceDeleted multiple times in case of memory
10589         allocation failure
10590
10591         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10592         get the base service name
10593         (dbus_bus_register_client): don't return base service name,
10594         instead store it on the DBusConnection and have an accessor
10595         function for it.
10596         (dbus_bus_register_client): rename dbus_bus_register()
10597
10598         * bus/dispatch.c (check_hello_message): verify that other
10599         connections on the bus also got the correct results, not
10600         just the one sending hello
10601
10602 2003-03-15  Havoc Pennington  <hp@pobox.com>
10603
10604         Make it pass the Hello handling test including all OOM codepaths.
10605         Now to do other messages...
10606
10607         * bus/services.c (bus_service_remove_owner): fix crash when
10608         removing owner from an empty list of owners
10609         (bus_registry_ensure): don't leave service in the list of
10610         a connection's owned services if we fail to put the service
10611         in the hash table.
10612
10613         * bus/connection.c (bus_connection_preallocate_oom_error): set
10614         error flag on the OOM error.
10615
10616         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10617         handle _dbus_transport_set_connection failure
10618
10619         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10620         to create watches up front and simply enable/disable them as
10621         needed.
10622         (unix_connection_set): this can now fail on OOM
10623
10624         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10625         of enabling/disabling a watch or timeout.
10626
10627         * bus/loop.c (bus_loop_iterate): don't touch disabled
10628         watches/timeouts
10629
10630         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10631
10632 2003-03-15  Havoc Pennington  <hp@pobox.com>
10633
10634         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10635         write useful test code, after all that futzing around ;-)
10636
10637         Test does not yet pass because we can't handle OOM in
10638         _dbus_transport_messages_pending (basically,
10639         dbus_connection_preallocate_send() does not prealloc the write
10640         watch). To fix this, I think we need to add new stuff to
10641         set_watch_functions, namely a SetEnabled function so we can alloc
10642         the watch earlier, then enable it later.
10643
10644         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10645         dbus-memory.c to the convenience lib
10646
10647         * bus/test.c: rename some static functions to keep them clearly
10648         distinct from stuff in connection.c. Handle client disconnection.
10649
10650 2003-03-14  Havoc Pennington  <hp@pobox.com>
10651
10652         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10653         transport, tests more of the real codepath. Set up clients
10654         with bus_setup_debug_client.
10655
10656         * bus/test.c (bus_setup_debug_client): function to set up debug
10657         "clients" on the main loop
10658
10659         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10660         support
10661
10662         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10663         server type
10664
10665         * dbus/dbus-server-debug.c: support a debug server based on pipes
10666
10667         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10668         (_dbus_close): new function
10669
10670         * configure.in: check for socketpair
10671
10672 2003-03-14  Havoc Pennington  <hp@redhat.com>
10673
10674         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10675         cheesy hack
10676
10677         * dbus/dbus-transport-debug.c: rework this a good bit to be
10678         less complicated. hopefully still works.
10679
10680         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10681         manually
10682
10683         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10684         after running it
10685
10686         * dbus/dbus-message.c (dbus_message_copy): rename from
10687         dbus_message_new_from_message, fix it up to copy
10688         all the message fields, add test case
10689
10690         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10691         not quite passing yet
10692
10693 2003-03-14  Havoc Pennington  <hp@pobox.com>
10694
10695         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10696         until no work remains" in test code. (the large diff here
10697         is just code movement, no actual changes)
10698
10699         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10700         1, no point waiting around for test code.
10701         (_dbus_server_debug_accept_transport): unref the timeout
10702         after adding it (right?)
10703
10704         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10705
10706 2003-03-13  Havoc Pennington  <hp@redhat.com>
10707
10708         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10709         out of memory
10710
10711         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10712         of memory
10713
10714         * dbus/dbus-connection.h: Make AddWatchFunction and
10715         AddTimeoutFunction return a bool so they can fail on out-of-memory
10716
10717         * bus/bus.c (bus_context_new): set up timeout handlers
10718
10719         * bus/connection.c (bus_connections_setup_connection): set up
10720         timeout handlers
10721
10722         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10723         can fail
10724
10725         * bus/bus.c (bus_context_new): adapt to changes
10726
10727         * bus/connection.c: adapt to changes
10728
10729         * test/watch.c: adapt to DBusWatch changes
10730
10731         * bus/dispatch.c (bus_dispatch_test): started adding this but
10732         didn't finish
10733
10734 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10735
10736         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10737
10738 2003-03-13  Havoc Pennington  <hp@pobox.com>
10739
10740         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10741         set up a test framework as for the library
10742
10743 2003-03-12  Havoc Pennington  <hp@pobox.com>
10744
10745         Throughout: purge global variables, introduce BusActivation,
10746         BusConnections, BusRegistry, etc. objects instead.
10747
10748         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10749         message bus object
10750
10751         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10752         going to redo this a bit differently I think
10753
10754 2003-03-12  Havoc Pennington  <hp@redhat.com>
10755
10756         Mega-patch that gets the message bus daemon initially handling
10757         out-of-memory. Work still needed. Also lots of random
10758         moving stuff to DBusError instead of ResultCode.
10759
10760         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10761
10762         * dbus/dbus-connection.c
10763         (dbus_connection_send_with_reply_and_block): use DBusError
10764
10765         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10766         DBusResultCode
10767
10768         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10769         code here, as the only failure possible is OOM.
10770
10771         * bus/connection.c (bus_connection_disconnect):
10772         rename bus_connection_disconnected as it's a notification only
10773
10774         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10775         "name" on get_args failure, should be done by get_args;
10776         don't disconnect client for bad args, just return an error.
10777         (bus_driver_handle_service_exists): ditto
10778
10779         * bus/services.c (bus_services_list): NULL-terminate returned array
10780
10781         * bus/driver.c (bus_driver_send_service_lost)
10782         (bus_driver_send_service_acquired): send messages from driver to a
10783         specific client to the client's unique name, not to the broadcast
10784         service.
10785
10786         * dbus/dbus-message.c (decode_header_data): reject messages that
10787         contain no name field
10788         (_dbus_message_get_client_serial): rename to
10789         dbus_message_get_serial and make public
10790         (_dbus_message_set_serial): rename from set_client_serial
10791         (_dbus_message_set_reply_serial): make public
10792         (_dbus_message_get_reply_serial): make public
10793
10794         * bus/connection.c (bus_connection_foreach): allow stopping
10795         iteration by returning FALSE from foreach function.
10796
10797         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10798         (dbus_connection_free_preallocated_send)
10799         (dbus_connection_preallocate_send): new API for sending a message
10800         without possibility of malloc failure.
10801         (dbus_connection_send_message): rename to just
10802         dbus_connection_send (and same for whole function family)
10803
10804         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10805
10806         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10807
10808         * bus/activation.c: handle/return errors
10809
10810         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10811
10812         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10813         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10814         (_dbus_result_from_errno): move to this file
10815
10816 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10817
10818         * dbus/dbus-marshal.c:
10819         (_dbus_marshal_set_string):
10820         Take a length argument so we can marshal the correct string
10821         length.
10822
10823         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10824         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10825         (_dbus_marshal_test):
10826         * dbus/dbus-marshal.h:
10827         Add support for marshalling and demarshalling dicts.
10828
10829         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10830         Add support for TYPE DICT.
10831
10832         * dbus/dbus-message.c: (set_string_field):
10833         Adjust header padding.
10834
10835         (dbus_message_append_args_valist), (dbus_message_append_dict),
10836         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10837         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10838         (check_message_handling), (check_have_valid_message):
10839         * dbus/dbus-message.h:
10840         Add functions for setting and getting dicts.
10841
10842         * dbus/dbus-protocol.h:
10843         Add DBUS_TYPE_DICT.
10844
10845         * dbus/dbus.h:
10846         Add dbus-dict.h
10847
10848         * doc/dbus-specification.sgml:
10849         Add information about how dicts are marshalled.
10850
10851         * test/data/invalid-messages/dict-with-nil-value.message:
10852         * test/data/invalid-messages/too-short-dict.message:
10853         * test/data/valid-messages/dict-simple.message:
10854         * test/data/valid-messages/dict.message:
10855         Add sample messages containing dicts.
10856
10857 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
10858
10859         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10860
10861 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10862
10863         * dbus/Makefile.am:
10864         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10865         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10866         (dbus_dict_set_int32), (dbus_dict_set_uint32),
10867         (dbus_dict_set_double), (dbus_dict_set_string),
10868         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10869         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10870         (dbus_dict_set_string_array), (_dbus_dict_test):
10871         * dbus/dbus-dict.h:
10872         Fix according to comments from Havoc.
10873
10874 2003-03-06  Michael Meeks  <michael@server.home>
10875
10876         * configure.in: if we don't have kde-config, disable have_qt.
10877
10878 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10879
10880         * dbus/Makefile.am:
10881         Add dbus-dict.[ch]
10882
10883         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10884         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10885         (dbus_dict_remove), (dbus_dict_get_value_type),
10886         (dbus_dict_get_keys), (dbus_dict_put_boolean),
10887         (dbus_dict_put_int32), (dbus_dict_put_uint32),
10888         (dbus_dict_put_double), (dbus_dict_put_string),
10889         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10890         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10891         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10892         (dbus_dict_get_int32), (dbus_dict_get_uint32),
10893         (dbus_dict_get_double), (dbus_dict_get_string),
10894         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10895         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10896         (dbus_dict_get_string_array), (_dbus_dict_test):
10897         * dbus/dbus-dict.h:
10898         Add DBusDict implementation
10899
10900         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10901         * dbus/dbus-test.h:
10902         Add _dbus_dict_test
10903
10904 2003-03-04  Havoc Pennington  <hp@pobox.com>
10905
10906         * test/data/auth/*: adapt to changes
10907
10908         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10909         USERID_BASE64 and change USERNAME_BASE64 to put in username not
10910         userid
10911
10912         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10913         more stuff from being in a context name, to make the protocol
10914         simpler to deal with
10915
10916         * dbus/dbus-errors.c (dbus_error_has_name): new function
10917         (dbus_error_is_set): new function
10918
10919         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10920         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10921
10922         * dbus/dbus-connection.c (dbus_connection_flush): also read
10923         messages during a flush operation
10924
10925         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10926
10927 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10928
10929         * configure.in: Check for gethostbyname on Solaris.
10930
10931         * dbus/dbus-transport.c: (_dbus_transport_open):
10932         Remove duplicate "tcp" entry.
10933
10934         * doc/dbus-specification.sgml:
10935         Clarify some things.
10936
10937 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10938
10939         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10940         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10941         (_dbus_keyring_test):
10942         * dbus/dbus-md5.c: (_dbus_md5_compute):
10943         * dbus/dbus-sha.c: (_dbus_sha_compute):
10944         Plug memory leaks.
10945
10946 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10947
10948         * README: Add some things.
10949
10950 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
10951
10952         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10953         after case DBUS_TYPE_BOOELAN.
10954
10955 2003-03-02  Havoc Pennington  <hp@pobox.com>
10956
10957         * test/break-loader.c (randomly_set_extreme_ints): add test that
10958         sets really huge and small integers
10959
10960         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10961         that length of boolean array fits in the string, and that
10962         string has room for boolean value in single-bool case.
10963
10964         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10965         optional value to "ALIGN" command which is what to fill the
10966         alignment with.
10967
10968         * test/data/valid-messages/no-padding.message: add regression
10969         test for the message padding problem
10970
10971 2003-03-02  Havoc Pennington  <hp@pobox.com>
10972
10973         * dbus/dbus-message.c (decode_header_data): fix to always init
10974         message_padding, from Benjamin Dauvergne
10975
10976 2003-03-02  Havoc Pennington  <hp@pobox.com>
10977
10978         * configure.in: 0.5
10979
10980         * NEWS: Update.
10981
10982 2003-03-01  Joe Shaw  <joe@assbarn.com>
10983
10984         * configure.in: Check for "struct cmsgcred" and try to access its
10985         members for BSD-like unices.
10986
10987         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10988         _dbus_read_credentials_unix_socket().
10989         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10990         read() for reading the credential byte off the unix socket.  Use
10991         struct cmsgcred on systems that support it.
10992
10993 2003-02-27  Alexander Larsson  <alexl@redhat.com>
10994
10995         * glib/Makefile.am:
10996         * configure.in:
10997         Make gthreads-2.0 dependency optional. Don't build thread test if
10998         its not found.
10999
11000 2003-02-27  Havoc Pennington  <hp@pobox.com>
11001
11002         * dbus/dbus-connection.c
11003         (dbus_connection_send_message_with_reply_and_block): fix doh!
11004         doh! doh! bug that resulted in never removing a reply from the
11005         queue, no wonder we called get_reply_serial so much ;-)
11006
11007         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11008         and client serial instead of demarshaling them every time
11009
11010 2003-02-27  Havoc Pennington  <hp@pobox.com>
11011
11012         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11013         more inlined, using dbus-string-private.h, speeds things up
11014         substantially
11015
11016         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11017         when freeing the string
11018         (_dbus_string_steal_data): fix for align offset
11019         (undo_alignment): new function
11020
11021 2003-02-26  Havoc Pennington  <hp@redhat.com>
11022
11023         All kinds of audit fixes from Owen, plus initial attempt to
11024         handle unaligned memory returned from malloc.
11025
11026         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11027         leave room for align_offset and nul byte
11028         (fixup_alignment): function to track an align_offset and
11029         ensure real->str is aligned
11030         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11031         to allow a nul byte plus align offset
11032         (_dbus_string_lock): fix overflow issue
11033         (_dbus_string_init_const_len): add assertions on sanity of len,
11034         assign allocated to be ALLOCATION_PADDING larger than len
11035         (set_length): fixup the overflow handling
11036         (_dbus_string_get_data_len): fix overflow in assertion
11037         (open_gap): detect overflow in size of gap to be opened
11038         (_dbus_string_lengthen): add overflow check
11039         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11040         (_dbus_string_append): add overflow check
11041         (_dbus_string_append_unichar): overflow
11042         (_dbus_string_delete): fix overflow in assertion
11043         (_dbus_string_copy_len): overflow in assertion
11044         (_dbus_string_replace_len): overflows in assertions
11045         (_dbus_string_find): change to implement in terms of
11046         _dbus_string_find_to
11047         (_dbus_string_find_to): assorted fixage
11048         (_dbus_string_equal_c_str): assert c_str != NULL,
11049         fix logic so the function works
11050         (_dbus_string_ends_with_c_str): fix overflow thingy
11051         (_dbus_string_base64_encode): overflow fix
11052         (_dbus_string_validate_ascii): overflow
11053         (_dbus_string_validate_nul): overflow
11054
11055 2003-02-26  Havoc Pennington  <hp@redhat.com>
11056
11057         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11058
11059 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11060
11061         * configure.in:
11062         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11063
11064         * dbus/dbus-connection.c:
11065         * dbus/dbus-connection.h:
11066         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11067         Add dbus_connection_set_wakeup_main_function and use it when queueing
11068         incoming and outgoing messages.
11069
11070
11071         * dbus/dbus-dataslot.c:
11072         Threadsafe usage of DBusDataSlotAllocator
11073
11074         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11075         dbus_new can fail.
11076
11077         * dbus/dbus-server-unix.c:
11078         Add todo comment
11079
11080         * glib/dbus-gmain.c:
11081         Implement the new wakeup functions for glib.
11082
11083         * glib/Makefile.am:
11084         * glib/test-thread-client.c:
11085         * glib/test-thread-server.c:
11086         * glib/test-thread.h:
11087         Initial cut at some thread test code. Not really done yet.
11088
11089 2003-02-26  Havoc Pennington  <hp@pobox.com>
11090
11091         * dbus/dbus-connection.c
11092         (dbus_connection_send_message_with_reply_and_block): fix crash
11093         where we ref'd the outgoing message instead of the returned reply
11094
11095         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11096         at the end of this function, so if we didn't need to read for
11097         authentication, we reinstall it for receiving messages
11098
11099         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11100         a NULL sender for peer-to-peer case
11101
11102         * dbus/dbus-transport-unix.c (check_read_watch): handle
11103         !authenticated case correctly
11104
11105         * glib/dbus-gmain.c: add support for DBusServer
11106
11107         * dbus/dbus-server.c: add data slot support
11108
11109         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11110         return values and handle errors
11111
11112         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11113         DBusConnection
11114
11115         * Doxyfile.in (INPUT): add glib subdir
11116
11117         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11118         setup_with_g_main instead of hookup_with_g_main; write docs
11119
11120 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11121
11122         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11123         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11124         * dbus/dbus-message.c: (dbus_message_append_boolean),
11125         (dbus_message_append_boolean_array),
11126         (dbus_message_get_args_valist), (_dbus_message_test):
11127         * dbus/dbus-message.h:
11128         * doc/dbus-specification.sgml:
11129         Various fixes as pointed out by Havoc.
11130
11131         * test/data/invalid-messages/bad-boolean-array.message:
11132         * test/data/invalid-messages/bad-boolean.message:
11133         Add invalid boolean value test cases.
11134
11135 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11136
11137         * dbus/dbus-internals.c: (_dbus_type_to_string):
11138         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11139         (_dbus_marshal_validate_arg):
11140         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11141         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11142         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11143         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11144         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11145         (dbus_message_iter_get_double),
11146         (dbus_message_iter_get_boolean_array), (message_iter_test):
11147         * dbus/dbus-message.h:
11148         * dbus/dbus-protocol.h:
11149         * doc/dbus-specification.sgml:
11150         * test/data/valid-messages/lots-of-arguments.message:
11151         Add support for boolean and boolean array types.
11152
11153 2003-02-23  Havoc Pennington  <hp@pobox.com>
11154
11155         * dbus/dbus-keyring.c: finish most of this implementation and
11156         simple unit test
11157
11158         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11159         these barf if the error isn't cleared to NULL
11160
11161         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11162         (_dbus_create_directory): new function
11163
11164         * dbus/dbus-errors.c (dbus_set_error): fix warning
11165
11166         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11167         (_dbus_string_hex_decode): new function
11168         (test_hex_roundtrip): test code
11169
11170         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11171
11172         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11173
11174         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11175         the save-to-temp/rename trick to atomically write the new file
11176         (_dbus_string_parse_uint): new function
11177
11178 2003-02-22  Havoc Pennington  <hp@pobox.com>
11179
11180         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11181
11182 2003-02-22  Havoc Pennington  <hp@pobox.com>
11183
11184         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11185         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11186
11187         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11188
11189         * dbus/test/data/sha-1: add US government test suite for SHA-1
11190
11191 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11192
11193         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11194         Make string arrays NULL-terminated.
11195
11196         * dbus/dbus-memory.c: (dbus_free_string_array):
11197         * dbus/dbus-memory.h:
11198         New function for freeing NULL-terminated string arrays.
11199
11200         * dbus/dbus-message-builder.c: (append_quoted_string),
11201         (_dbus_message_data_load):
11202         Add support for array types.
11203
11204         * dbus/dbus-message.c: (check_message_handling):
11205         Add more types as test cases.
11206
11207         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11208         (_dbus_string_parse_double):
11209         Add the start offset to the end offset.
11210
11211         * test/data/valid-messages/lots-of-arguments.message:
11212         New test message with lots of arguments.
11213
11214 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11215
11216         * dbus/dbus-message.c: (dbus_message_append_nil),
11217         (dbus_message_append_int32), (dbus_message_append_uint32),
11218         (dbus_message_append_double), (dbus_message_append_string),
11219         (dbus_message_append_int32_array),
11220         (dbus_message_append_uint32_array),
11221         (dbus_message_append_double_array),
11222         (dbus_message_append_byte_array),
11223         (dbus_message_append_string_array):
11224         Fix all out-of-memory handling in these functions.
11225
11226 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11227
11228         * dbus/dbus-message.c: (dbus_message_append_nil):
11229         Fix a silly.
11230
11231 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11232
11233         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11234         (dbus_message_append_nil), (dbus_message_append_int32_array),
11235         (dbus_message_append_uint32_array),
11236         (dbus_message_append_double_array),
11237         (dbus_message_append_byte_array),
11238         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11239         (dbus_message_iter_get_int32_array),
11240         (dbus_message_iter_get_uint32_array),
11241         (dbus_message_iter_get_double_array),
11242         (dbus_message_iter_get_byte_array),
11243         (dbus_message_iter_get_string_array):
11244
11245         * dbus/dbus-message.h:
11246         Add functions for appending and getting arrays.
11247
11248 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11249
11250         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11251         element size at least 8 bytes, fixes mempool tests on
11252         64-bit machines.
11253
11254 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11255
11256         * dbus/dbus-transport-unix.c (unix_do_iteration):
11257         Unlock the connection mutex during a blocking select call.
11258         Add todo about how we need a way to wake up the select.
11259
11260         * dbus/dbus-connection-internal.h:
11261         * dbus/dbus-connection.c:
11262         Add _dbus_connection_lock and _dbus_connection_unlock.
11263
11264 2003-02-19  Havoc Pennington  <hp@pobox.com>
11265
11266         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11267         Doxyfile.in, not Doxyfile
11268
11269         * dbus/dbus-keyring.c: do some hacking on this
11270
11271         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11272
11273         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11274         dbus_error_init
11275         (dbus_set_error): remove dbus_error_init, check for message ==
11276         NULL *before* we sprintf into it, and add @todo about including
11277         system headers in this file
11278
11279         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11280
11281         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11282
11283         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11284         get various bits of user information based on either username
11285         or user ID
11286         (_dbus_homedir_from_username): new function
11287
11288 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11289
11290         * configure.in:
11291         Add check for nonposix getpwnam_r
11292
11293         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11294         Align the pool element size to a sizeof (void *) boundary.
11295
11296         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11297         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11298         General Solaris fixes.
11299
11300         * test/data/valid-messages/simplest-manual.message:
11301         Explicitly state that we want little-endian packing.
11302
11303 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11304
11305         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11306
11307         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11308         Added to create a transport connecting using a tcp/ip socket.
11309
11310         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11311         to a tcp socket at given host and port.
11312         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11313         hostname and port.
11314
11315         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11316
11317         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11318         Added to create a server listening on a TCP/IP socket.
11319
11320 2003-02-19  Havoc Pennington  <hp@pobox.com>
11321
11322         Throughout: mop up all the Doxygen warnings and undocumented
11323         stuff.
11324
11325         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11326         to search any paths.
11327
11328         * dbus/dbus-threads.c: move global mutex initializers to
11329         dbus-internals.h, multiple prototypes was confusing doxygen
11330         besides being kind of ugly
11331
11332         * Doxyfile (PREDEFINED): have Doxygen define
11333         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11334         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11335         (do not abuse the feature! it's for stuff like the autogenerated
11336         macros in dbus-md5.c, not just for things you don't feel like
11337         documenting...)
11338
11339 2003-02-18  Havoc Pennington  <hp@pobox.com>
11340
11341         * dbus/dbus-string.c (_dbus_string_zero): new function
11342
11343         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11344         wrap it in some dbus-friendly API
11345
11346         * dbus/dbus-types.h: add 16-bit types
11347
11348 2003-02-18  Joe Shaw  <joe@assbarn.com>
11349
11350         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11351         credentials from our currently running process.
11352         (get_word): Fix a buglet where we were copying the entire length
11353         instead of relative to our position.
11354
11355         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11356         keys on the stack... it's 640k of data.
11357
11358         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11359         read the credentials byte off the socket, even if we don't have
11360         SO_PEERCRED.
11361         (_dbus_poll): Implement poll() using select() for systems which
11362         don't have it.
11363
11364         * glib/test-dbus-glib.c (main): Print out an error if no
11365         parameters are given.
11366
11367         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11368         can fallback to a secondary auth mechanism if the first fails.
11369
11370 2003-02-18  Havoc Pennington  <hp@pobox.com>
11371
11372         * AUTHORS: add Alex
11373
11374 2003-02-17  Havoc Pennington  <hp@pobox.com>
11375
11376         * doc/dbus-specification.sgml: lots of cosmetic
11377         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11378         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11379         s/server/bus/ (except in authentication section). Add a section
11380         "Message Bus Message Routing"
11381
11382 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11383
11384         Release 0.4
11385
11386         * NEWS: Update
11387
11388 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11389
11390         * doc/dbus-specification.sgml:
11391         Specification updates.
11392
11393 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11394
11395         * bus/activation.c: (bus_activation_init), (child_setup),
11396         (bus_activation_activate_service):
11397         * bus/activation.h:
11398         * bus/main.c: (main):
11399         Set DBUS_ADDRESS environment variable.
11400
11401         * dbus/dbus-errors.c: (dbus_set_error):
11402         Don't use va_copy since that's a C99 feature.
11403
11404         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11405         (_dbus_spawn_async):
11406         * dbus/dbus-sysdeps.h:
11407         Add child_setup_func to _dbus_spawn_async.
11408
11409         * doc/dbus-specification.sgml:
11410         Update specification.
11411
11412         * test/spawn-test.c: (setup_func), (main):
11413         Fix test.
11414
11415 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11416
11417         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11418         Added todo.
11419
11420 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11421
11422         * doc/.cvsignore:
11423         * doc/Makefile.am:
11424         * doc/dbus-test-plan.sgml:
11425         Add test plan document.
11426
11427         * test/Makefile.am:
11428         Fix distcheck.
11429
11430 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11431
11432         * dbus/dbus-message.c: (decode_header_data),
11433         (_dbus_message_loader_return_buffer):
11434         Set the header padding amount when loading a message.
11435
11436 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11437
11438         * bus/dispatch.c: (send_one_message):
11439         Only send broadcast messages to registered connections.
11440
11441         * dbus/dbus-message.c: (dbus_message_name_is):
11442         * dbus/dbus-message.h:
11443         New convenience function.
11444
11445         * dbus/dbus-transport-debug.c: (do_reading):
11446         Only dispatch one message per run.
11447
11448         * test/Makefile.am:
11449         * test/bus-test.c: (new_connection_callback), (die),
11450         (test_hello_client1_handler), (test_hello_client2_handler),
11451         (test_hello_replies), (main):
11452
11453         * test/bus-test-loop.[ch]:
11454         Add these.
11455
11456 2003-02-16  Havoc Pennington  <hp@pobox.com>
11457
11458         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11459         backward conditional
11460
11461 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11462
11463         * dbus/dbus-connection.c:
11464         Implement sent_message_with_reply. (with_reply_and block is still
11465         busted).
11466         Made dispatch_message not lose message if OOM.
11467
11468         * dbus/dbus-errors.h:
11469         Add NoReply error (for reply timeouts).
11470
11471 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11472
11473         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11474         Actually free keys and values when destroying hashtable.
11475
11476 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11477
11478         * dbus/dbus-auth.c: (client_try_next_mechanism):
11479         Plug a leak.
11480
11481         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11482         Return TRUE if there's no thread implementation around.
11483
11484         * glib/dbus-gmain.c: (free_source),
11485         (dbus_connection_hookup_with_g_main):
11486         Make sure to remove the GSource when the connection is finalized.
11487
11488 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11489
11490         * bus/dispatch.c: (bus_dispatch_message_handler):
11491         * dbus/dbus-errors.h:
11492         Return an error if someone tries to send a message to a service
11493         that doesn't exist.
11494
11495 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11496
11497         * bus/activation.c: (load_directory), (bus_activation_init),
11498         (bus_activation_activate_service):
11499         * bus/activation.h:
11500         * bus/driver.c:
11501         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11502         More work on the activation handling.
11503
11504         * dbus/dbus-errors.h:
11505         Add some error messages
11506
11507         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11508         * dbus/dbus-message.h:
11509         New function that creates an error message.
11510
11511         * dbus/dbus-protocol.h:
11512         Add ACTIVATE_SERVER message.
11513
11514         * dbus/dbus-server-unix.c: (unix_handle_watch),
11515         (_dbus_server_new_for_domain_socket):
11516         Call _dbus_fd_set_close_on_exec.
11517
11518         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11519         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11520         (_dbus_fd_set_close_on_exec):
11521         * dbus/dbus-sysdeps.h:
11522         Add _dbus_fd_set_close_on exec function. Also add function that checks
11523         that all open fds are set to close-on-exec and warns otherwise.
11524
11525         * dbus/dbus-transport-unix.c:
11526         (_dbus_transport_new_for_domain_socket):
11527         Call _dbus_fd_set_close_on_exec.
11528
11529 2003-02-16  Havoc Pennington  <hp@pobox.com>
11530
11531         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11532         allow people to avoid setting SIGPIPE to SIG_IGN
11533         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11534         we've been asked not to
11535
11536 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11537
11538         * dbus/dbus-list.c: (_dbus_list_append_link),
11539         (_dbus_list_prepend_link):
11540         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11541         (dbus_realloc):
11542         Warning fixes.
11543
11544 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11545
11546         * bus/Makefile.am:
11547         * bus/activation.c: (bus_activation_entry_free),
11548         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11549         * bus/activation.h:
11550         * bus/main.c: (main):
11551         Add simple activation support, doesn't work yet though.
11552
11553 2003-02-15   Zack Rusin  <zack@kde.org>
11554
11555         * qt/dbus-qthread.cpp:  small casting fix
11556
11557 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11558
11559         * dbus/dbus-errors.c: (dbus_set_error):
11560         * dbus/dbus-errors.h:
11561         Add a few errors and make dbus_set_error void.
11562
11563         * dbus/dbus-sysdeps.c:
11564         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11565         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11566         * dbus/dbus-sysdeps.h:
11567         Add _dbus_spawn_async.
11568
11569         * test/spawn-test.c: (main):
11570         Test for _dbus_spawn_async.
11571
11572 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11573
11574         * dbus/dbus-internals.h:
11575         Fix build without tests.
11576
11577         * dbus/dbus-list.c: (alloc_link):
11578         Fix a segfault when a malloc fails.
11579
11580         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11581         (dbus_malloc0), (dbus_realloc):
11582         Add support for malloc debugging.
11583
11584 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11585
11586         * dbus/dbus-threads.c:
11587         * dbus/dbus-threads.h:
11588         Add condvars. Remove static mutext from API.
11589         Implement static mutexes by initializing them from threads_init.
11590
11591         * glib/dbus-gthread.c:
11592         * qt/dbus-qthread.cpp:
11593         Update with the thread api changes.
11594
11595
11596         * dbus/dbus-list.c:
11597         * dbus/dbus-list.h:
11598         Turn StaticMutex into normal mutex + init function.
11599         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11600         _dbus_list_append_link, _dbus_list_prepend_link
11601
11602
11603         * dbus/dbus-sysdeps.c:
11604         * dbus/dbus-sysdeps.h:
11605         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11606         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11607
11608         * dbus/dbus-protocol.h:
11609         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11610
11611         * dbus/dbus-message.c:
11612         Make ref/unref atomic.
11613         Fix some docs.
11614
11615         * dbus/dbus-connection-internal.h:
11616         * dbus/dbus-connection.c:
11617         * dbus/dbus-connection.h:
11618         Make threadsafe.
11619         Change _peek to _borrow,_return & _steal_borrowed.
11620         Change disconnect callback to event.
11621         Make dbus_connection_dispatch_messages reentrant.
11622
11623         * dbus/dbus-transport.c:
11624         Don't ref the connection on calls to the transport
11625         implementation.
11626
11627         * dbus/dbus-message-handler.c:
11628         Make threadsafe.
11629
11630         * glib/dbus-gmain.c:
11631         Don't use peek_message anymore
11632
11633         * test/Makefile.am:
11634         * test/debug-thread.c:
11635         * test/debug-thread.h:
11636         Simple thread implementation that asserts() on deadlocks in
11637         single-threaded code.
11638
11639         * test/bus-test.c:
11640         (main) Call debug_threads_init.
11641
11642         * test/watch.c:
11643         Use disconnect message instead of disconnect callback.
11644
11645         * bus/connection.c:
11646         * bus/connection.h:
11647         Don't call dbus_connection_set_disconnect_function. Instead export
11648         bus_connection_disconnect.
11649
11650         * bus/dispatch.c:
11651         Call bus_connection_disconnect when we get a disconnected message.
11652
11653 2003-02-15  Havoc Pennington  <hp@pobox.com>
11654
11655         * dbus/dbus-message.c (dbus_message_new): fool around with the
11656         docs
11657
11658 2003-02-14  Havoc Pennington  <hp@pobox.com>
11659
11660         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11661
11662         * dbus/dbus-memory.c: fail if the debug functions indicate we
11663         should
11664
11665         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11666         (_dbus_decrement_fail_alloc_counter): debug functions to
11667         simulate memory allocation failures
11668
11669 2003-02-14  Havoc Pennington  <hp@pobox.com>
11670
11671         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11672         to DBusError
11673
11674 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11675
11676         * bus/driver.c: (bus_driver_handle_hello):
11677         * bus/driver.h:
11678         * bus/services.c: (bus_service_lookup):
11679         Reorder message sending so we get a more sane order.
11680
11681         * test/bus-test.c: (message_handler):
11682         Fix tyop.
11683
11684 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11685
11686         * bus/driver.c: (bus_driver_send_service_deleted),
11687         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11688         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11689         (bus_driver_send_welcome_message),
11690         (bus_driver_handle_list_services),
11691         (bus_driver_handle_acquire_service),
11692         (bus_driver_handle_service_exists):
11693         * dbus/dbus-bus.c: (dbus_bus_register_client),
11694         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11695         * dbus/dbus-errors.c: (dbus_result_to_string):
11696         * dbus/dbus-errors.h:
11697         * dbus/dbus-message.c: (dbus_message_append_args),
11698         (dbus_message_append_args_valist), (dbus_message_get_args),
11699         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11700         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11701         (dbus_message_iter_get_byte_array),
11702         (dbus_message_iter_get_string_array), (message_iter_test),
11703         (check_message_handling), (_dbus_message_test):
11704         * dbus/dbus-message.h:
11705         * test/bus-test.c: (main):
11706         Change fields to arguments in messages, so that they won't be
11707         confused with header fields.
11708
11709         * glib/test-dbus-glib.c: (main):
11710         Remove append_fields from hello message.
11711
11712 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11713
11714         * dbus/dbus-errors.c:
11715         * dbus/dbus-message.c:
11716         * dbus/dbus-string.c:
11717         Documentation fixes.
11718
11719 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11720
11721         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11722         (remove_timeout):
11723         Implement support for timeouts in dbus-glib.
11724
11725 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11726
11727         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11728         * dbus/dbus-message.c: (process_test_subdir):
11729         * test/break-loader.c: (find_breaks_based_on):
11730         Plug some memory leaks.
11731
11732 2003-02-13  Richard Hult  <rhult@codefactory.se>
11733
11734         * bus/main.c: Fix build.
11735
11736         * dbus/dbus-errors.h:
11737         * dbus/dbus-errors.c: Fix copyright for Anders.
11738
11739 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11740
11741         * bus/Makefile.am:
11742         Add utils.[ch]
11743
11744         * bus/connection.c: (bus_connection_foreach):
11745         Fix a warning.
11746
11747         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11748         (unescape_string), (new_section), (parse_section_start),
11749         (parse_key_value), (report_error), (bus_desktop_file_load),
11750         (bus_desktop_file_get_string):
11751         * bus/desktop-file.h:
11752         Use DBusError for error reporting.
11753
11754         * bus/dispatch.c: (send_one_message),
11755         (bus_dispatch_message_handler):
11756         * bus/driver.c: (bus_driver_send_service_deleted),
11757         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11758         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11759         (bus_driver_send_welcome_message),
11760         (bus_driver_handle_list_services),
11761         (bus_driver_handle_acquire_service),
11762         (bus_driver_handle_service_exists):
11763         * bus/loop.c: (bus_loop_run):
11764         * bus/main.c:
11765         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11766
11767         * bus/utils.c: (bus_wait_for_memory):
11768         * bus/utils.h:
11769         New files with general utility functions.
11770
11771         * dbus/dbus-internals.h:
11772         Remove _DBUS_HANDLE_OOM.
11773
11774 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11775
11776         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11777         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11778         * dbus/dbus-errors.h:
11779         Add DBusError structure.
11780
11781 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11782
11783         * test/data/valid-messages/standard-acquire-service.message:
11784         * test/data/valid-messages/standard-hello.message:
11785         * test/data/valid-messages/standard-list-services.message:
11786         * test/data/valid-messages/standard-service-exists.message:
11787         Add some standard messages.
11788
11789 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11790
11791         * bus/driver.c: (bus_driver_send_welcome_message),
11792         (bus_driver_handle_list_services),
11793         (bus_driver_handle_acquire_service),
11794         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11795         Update for API changes in libdbus.
11796
11797         * dbus/dbus-message.c: (dbus_message_new_reply):
11798         * dbus/dbus-message.h:
11799         Remove the name argument. The spec states that replies shouldn't
11800         have a name.
11801
11802 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11803
11804         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11805         (report_error), (bus_desktop_file_load), (lookup_section),
11806         (lookup_line), (bus_desktop_file_get_raw),
11807         (bus_desktop_file_get_string):
11808         * bus/desktop-file.h:
11809         Some fixes, and new functions for getting a key value from a section.
11810
11811 2003-02-13  Havoc Pennington  <hp@pobox.com>
11812
11813         * test/data/auth/fail-after-n-attempts.auth-script: new test
11814
11815         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11816         reject the client.
11817
11818 2003-02-13  Havoc Pennington  <hp@pobox.com>
11819
11820         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11821         dbus_credentials_match were backward
11822
11823         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11824         NO_CREDENTIALS and ROOT_CREDENTIALS
11825
11826         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11827         into here. Never process more commands after we've reached an
11828         end state; store further data as unused bytes.
11829
11830         * test/data/auth/*: add more auth tests
11831
11832         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11833         command to match exact string and EXPECT_UNUSED to match unused
11834         bytes
11835
11836         * test/Makefile.am (dist-hook): fix to dist all the test stuff
11837
11838 2003-02-12  Havoc Pennington  <hp@pobox.com>
11839
11840         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11841         \r off of popped lines
11842
11843         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11844         scripts
11845
11846         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11847         SEND, append \r\n
11848
11849 2003-02-12  Havoc Pennington  <hp@pobox.com>
11850
11851         * dbus/Makefile.am: remove break-loader from the build, since it
11852         moved.
11853
11854         * configure.in: add --enable-gcov to turn on coverage profiling
11855         flags and disable optimization
11856
11857 2003-02-10  Havoc Pennington  <hp@pobox.com>
11858
11859         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11860         initial cut at test framework for DBusAuth from laptop.
11861         Doesn't quite work yet but it compiles and I need to get
11862         it off the 266mhz laptop. ;-)
11863
11864         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11865         fix a memleak in error case
11866
11867 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
11868
11869         * bus/Makefile.am:
11870         * bus/desktop-file.c:
11871         * bus/desktop-file.h:
11872         Add a desktop file parser.
11873
11874 2003-02-11  Zack Rusin  <zack@kde.org>
11875
11876         * qt/message.[h|cpp]: sample implementation
11877         of the KDE wrapper for DBusMessage
11878
11879 2003-02-09  Zack Rusin  <zack@kde.org>
11880
11881         * test/bus-test.c: make_it_compile
11882         * doc/dbus-specification.sgml: minimal semantic fix
11883
11884 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11885
11886         Release 0.3
11887
11888         * NEWS: Update
11889
11890 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11891
11892         * dbus/Makefile.am:
11893         * dbus/dbus-break-loader.c:
11894         * test/Makefile.am:
11895         * test/break-loader.c:
11896         Move dbus-break-loader to test/ and rename it to break-loader.
11897
11898 2003-02-02  Havoc Pennington  <hp@pobox.com>
11899
11900         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11901         for code to manage cookies in your home directory
11902
11903         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11904
11905         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11906         to authenticate, then disconnect the client.
11907
11908 2003-02-03  Alexander Larsson  <alexl@redhat.com>
11909
11910         * dbus/dbus-message.c (dbus_message_append_fields):
11911         Correct docs.
11912
11913 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11914
11915         * doc/dbus-specification.sgml:
11916         Update address format section.
11917
11918 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11919
11920         * test/Makefile.am:
11921         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11922         (message_handler), (new_connection_callback), (loop_quit),
11923         (loop_run), (main):
11924         Add bus test.
11925
11926 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11927
11928         * bus/driver.c: (bus_driver_handle_service_exists):
11929         Simplify the code a bit.
11930
11931         * dbus/dbus-bus.c: (dbus_bus_service_exists):
11932         Fix a silly.
11933
11934 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11935
11936         * bus/Makefile.am:
11937         Add libdbus-daemon.la and link to it.
11938
11939 2003-02-01  James Willcox  <jwillcox@gnome.org>
11940
11941         * bus/driver.c: (bus_driver_handle_own_service):
11942         Actually include the service reply code in the message.
11943
11944 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11945
11946         * bus/driver.c: (bus_driver_handle_service_exists):
11947         Don't unref the incoming message.
11948
11949 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11950
11951         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11952
11953 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11954
11955         * dbus/dbus-server.c: (dbus_server_listen):
11956         * dbus/dbus-transport.c: (_dbus_transport_open):
11957         ifdef out the calls to the debug transport and server.
11958
11959 2003-02-02  Alexander Larsson  <alexl@redhat.com>
11960
11961         * dbus/dbus-watch.c (dbus_watch_get_flags):
11962         Add note in the docs that ERROR or HANGUP won't be returned
11963         and are assumed always on.
11964
11965         * glib/dbus-gmain.c (add_watch):
11966         Always add IO_ERR | IO_HUP
11967
11968         * dbus/dbus-message.h:
11969         Add semicolon after dbus_message_iter_get_string_array().
11970         Makes qt code build again
11971
11972 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
11973
11974         * bus/driver.c: (create_unique_client_name),
11975         (bus_driver_handle_hello):
11976         Don't take a name, just use a numeric id to identify
11977         each client.
11978
11979         * dbus/Makefile.am:
11980         * dbus/dbus-bus.c: (dbus_bus_register_client),
11981         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11982         * dbus/dbus-bus.h:
11983         Add new convenience functions for communicating with the bus.
11984
11985         * dbus/dbus-message.h:
11986
11987         * dbus/dbus-protocol.h:
11988         Fix a typo.
11989
11990 2003-02-01  Alexander Larsson  <alexl@redhat.com>
11991
11992         * dbus/dbus-message.c (dbus_message_append_fields):
11993         Add some more doc comments.
11994
11995 2003-02-01  Havoc Pennington  <hp@pobox.com>
11996
11997         * dbus/dbus-break-loader.c (randomly_modify_length): change
11998         a 4-byte value in the message as if it were a length
11999
12000         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12001         execute bit on saved files
12002
12003 2003-02-01  Havoc Pennington  <hp@pobox.com>
12004
12005         * dbus/dbus-break-loader.c (main): new program to find messages
12006         that break the loader.
12007
12008         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12009         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12010
12011         * dbus/dbus-string.c (_dbus_string_set_byte): new
12012
12013 2003-01-31  Havoc Pennington  <hp@pobox.com>
12014
12015         * dbus/dbus-message.c: refactor the test code to be more general,
12016         in preparation for writing a "randomly permute test cases to
12017         try to break the loader" program.
12018
12019 2003-01-31  Havoc Pennington  <hp@pobox.com>
12020
12021         * doc/dbus-specification.sgml: work on the specification
12022
12023         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12024         the protocol version of the message.
12025
12026         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12027         no longer specifies that.
12028         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12029         1/2/3/4)
12030
12031         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12032         "break" for DBUS_TYPE_NIL, remove @todo
12033
12034 2003-01-31  Havoc Pennington  <hp@pobox.com>
12035
12036         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12037         just set_is_error/get_is_error as this is a commonly-used
12038         function, and write docs.
12039
12040 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12041
12042         * dbus/dbus-address.c: (dbus_address_entry_free):
12043         Free key and value lists.
12044
12045         * dbus/dbus-internals.c: (_dbus_type_to_string):
12046         Add the types we didn't have.
12047
12048         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12049         (_dbus_marshal_validate_arg):
12050         Add NIL types.
12051
12052         * dbus/dbus-message.c: (dbus_message_set_sender):
12053         Remove todo about being able to set sender to NULL.
12054
12055         (dbus_message_set_is_error_reply),
12056         (dbus_message_get_is_error_reply):
12057         * dbus/dbus-message.h:
12058         New functions.
12059
12060         * dbus/dbus-protocol.h:
12061         Add error reply flag.
12062
12063         * test/data/valid-messages/opposite-endian.message:
12064         Add NIL type to test.
12065
12066 2003-01-31  Havoc Pennington  <hp@pobox.com>
12067
12068         * doc/dbus-specification.sgml: fully specify the header.  Add
12069         flags and major protocol version, and change header/body len to
12070         unsigned.
12071
12072         * dbus/dbus-message-builder.c (append_saved_length): append length
12073         as uint32
12074
12075         * dbus/dbus-message.c (dbus_message_create_header): change header
12076         length and body length to unsigned. Add the new fields from the
12077         spec
12078         (_dbus_message_loader_return_buffer): unsigned header/body len
12079
12080 2003-01-30  Havoc Pennington  <hp@pobox.com>
12081
12082         * dbus/dbus-auth.c: rework to use only REJECTED, no
12083         MECHANISMS
12084
12085         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12086         use REJECTED, suggested by Mark McLoughlin
12087
12088 2003-01-30  Havoc Pennington  <hp@pobox.com>
12089
12090         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12091         a better way to report errors here. e.g.  "unix address lacks
12092         path" or something. also "no such file" when the path doesn't
12093         exist, etc.
12094
12095         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12096         leaking list nodes
12097         (dbus_parse_address): add @todo about documenting address format,
12098         and allowing , and ; to be escaped
12099
12100 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12101
12102         * dbus/Makefile.am:
12103         Add dbus-address.[ch]
12104
12105         * dbus/dbus-address.c: (dbus_address_entry_free),
12106         (dbus_address_entries_free), (create_entry),
12107         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12108         (dbus_parse_address), (_dbus_address_test):
12109         * dbus/dbus-address.h:
12110         New files for dealing with address parsing.
12111
12112         * dbus/dbus-connection.c:
12113         Document timeout functions.
12114
12115         * dbus/dbus-message.c:
12116         Document dbus_message_new_from_message.
12117
12118         * dbus/dbus-server-debug.c:
12119         Document.
12120
12121         * dbus/dbus-server.c: (dbus_server_listen):
12122         Parse address and use correct server implementation.
12123
12124         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12125         * dbus/dbus-string.h:
12126         New function with test.
12127
12128         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12129         * dbus/dbus-test.h:
12130         Add address tests.
12131
12132         * dbus/dbus-transport-debug.c:
12133         Document.
12134
12135         * dbus/dbus-transport.c: (_dbus_transport_open):
12136         Parse address and use correct transport implementation.
12137
12138 2003-01-30  Havoc Pennington  <hp@pobox.com>
12139
12140         * dbus/dbus-message.c: use message->byte_order instead of
12141         DBUS_COMPILER_BYTE_ORDER throughout.
12142         (dbus_message_create_header): pad header to align the
12143         start of the body of the message to 8-byte boundary
12144
12145         * dbus/dbus-marshal.h: make all the demarshalers take const
12146         DBusString arguments.
12147
12148         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12149         validate message args here, so we don't have to do slow validation
12150         later, and so we catch bad messages as they are incoming. Also add
12151         better checks on header_len and body_len. Also fill in
12152         message->byte_order
12153
12154         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12155         implemented properly)
12156         (_dbus_string_validate_nul): new function to check all-nul
12157
12158         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12159         get_arg_end_pos and remove all validation
12160         (_dbus_marshal_validate_arg): actually do validation here.
12161
12162 2003-01-29  Havoc Pennington  <hp@pobox.com>
12163
12164         * dbus/dbus-message.c (check_message_handling): fix assertion
12165         failure on set_client_serial
12166
12167 2003-01-28  Havoc Pennington  <hp@pobox.com>
12168
12169         * dbus/dbus-server-debug.c: Add doc section comments
12170
12171         * dbus/dbus-transport-debug.c: add doc section comments
12172
12173 2003-01-28  Havoc Pennington  <hp@redhat.com>
12174
12175         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12176         the reverse order from how I had it
12177         (_dbus_string_base64_encode): reverse encoding order. I was
12178         basically byteswapping everything during encoding.
12179
12180 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12181
12182         * dbus/dbus-connection-internal.h:
12183         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12184         (_dbus_connection_remove_timeout):
12185         Add functions for adding and removing timeouts.
12186
12187         * dbus/dbus-message.c: (dbus_message_new_from_message):
12188         Add new function that takes a message and creates an exact
12189         copy of it, but with the refcount set to 1.
12190         (check_message_handling):
12191         Fix build error.
12192
12193         * dbus/dbus-server-protected.h:
12194         * dbus/dbus-server.c: (_dbus_server_init_base),
12195         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12196         (dbus_server_set_timeout_functions):
12197         (_dbus_server_remove_timeout):
12198         New functions so that a server can add and remove timeouts.
12199
12200         (dbus_server_listen):
12201         Add commented out call to dbus_server_debug_new.
12202
12203         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12204         Actually set the handler, doh.
12205
12206         * dbus/dbus-transport.c: (_dbus_transport_open):
12207         Add commented out call to dbus_transport_debug_client_new.
12208
12209         * dbus/Makefile.am:
12210         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12211
12212 2003-01-28  Havoc Pennington  <hp@pobox.com>
12213
12214         * dbus/dbus-message.c (check_message_handling): function to check
12215         on the loaded message, iterates over it etc.
12216
12217 2003-01-28  Havoc Pennington  <hp@pobox.com>
12218
12219         * test/Makefile.am (dist-hook): fix make distdir
12220
12221         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12222
12223 2003-01-27  Havoc Pennington  <hp@pobox.com>
12224
12225         * dbus/dbus-mempool.c (time_for_size): replace printf with
12226         _dbus_verbose
12227
12228         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12229         empty lines; fix the SAVE_LENGTH stuff to be
12230         START_LENGTH/END_LENGTH so it actually works; couple other
12231         bugfixes
12232
12233         * test/Makefile.am (dist-hook): add dist-hook for .message files
12234
12235         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12236         can be constant or locked.
12237         (_dbus_string_free): allow freeing a const string as
12238         documented/intended
12239
12240         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12241
12242         * dbus/dbus-test-main.c (main): take an argument which is the
12243         directory containing test data
12244
12245         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12246         argument to this and load all the messages in test/data/
12247         checking that they can be loaded or not loaded as appropriate.
12248
12249 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12250
12251         * bus/dispatch.c: (bus_dispatch_message_handler):
12252         Dispatch messages sent to services.
12253
12254         * bus/driver.c: (bus_driver_send_service_deleted),
12255         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12256         (bus_driver_send_service_acquired):
12257         Add helper functions for sending service related messages.
12258
12259         (bus_driver_send_welcome_message):
12260         Send HELLO_REPLY instead of WELCOME.
12261
12262         (bus_driver_handle_list_services):
12263         Send LIST_SERVICES_REPLY instead of SERVICES.
12264
12265         (bus_driver_handle_own_service),
12266         (bus_driver_handle_service_exists):
12267         New message handlers.
12268
12269         (bus_driver_handle_message):
12270         Invoke new message handlers.
12271
12272         (bus_driver_remove_connection):
12273         Don't remove any services here since that's done automatically
12274         by bus_service_remove_owner now.
12275
12276         * bus/driver.h:
12277         New function signatures.
12278
12279         * bus/services.c: (bus_service_add_owner):
12280         Send ServiceAcquired message if we're the only primary owner.
12281
12282         (bus_service_remove_owner):
12283         Send ServiceAcquired/ServiceLost messages.
12284
12285         (bus_service_set_prohibit_replacement),
12286         (bus_service_get_prohibit_replacement):
12287         Functions for setting prohibit replacement.
12288
12289         (bus_service_has_owner):
12290         New function that checks if a connection is in the owner queue of
12291         a certain service.
12292
12293         * bus/services.h:
12294         Add new function signatures.
12295
12296         * dbus/dbus-list.c: (_dbus_list_test):
12297         Add tests for _dbus_list_remove_last and traversing the list backwards.
12298
12299         * dbus/dbus-list.h:
12300         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12301         go any further, so return NULL then.
12302
12303         * dbus/dbus-protocol.h:
12304         Add new messages, service flags and service replies.
12305
12306 2003-01-26  Havoc Pennington  <hp@pobox.com>
12307
12308         * dbus/dbus-message-builder.c: implement, completely untested.
12309
12310         * test/data/*: add data to be used in testing.
12311         ".message" files are our simple loadable text format.
12312         ".message-raw" will be binary dumps of messages.
12313
12314         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12315
12316 2003-01-26  Havoc Pennington  <hp@pobox.com>
12317
12318         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12319
12320         * dbus/dbus-errors.c (dbus_result_to_string): add
12321         file errors
12322
12323         * dbus/dbus-message-builder.c: new file, will contain code to load
12324         up messages from files. Not implemented yet.
12325
12326 2003-01-26  Havoc Pennington  <hp@pobox.com>
12327
12328         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12329         the sender by setting to NULL
12330
12331 2003-01-26  Havoc Pennington  <hp@pobox.com>
12332
12333         The unit tests pass, but otherwise untested.  If it breaks, the
12334         tests should have been better. ;-)
12335
12336         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12337         the connection.
12338
12339         * dbus/dbus-message.c: redo everything so we maintain
12340         message->header as the only copy of the various fields.
12341         This avoids the possibility of out-of-memory in some cases,
12342         for example dbus_message_lock() can't run out of memory anymore,
12343         and avoids extra copying. Figured I may as well go ahead and do
12344         this since it was busted for dbus_message_lock to not return
12345         failure on OOM, and dbus_message_write_header was totally
12346         unchecked for OOM. Also fixed some random other bugs.
12347
12348         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12349         that strings are nul-terminated. Also, end_pos can be equal
12350         to string length just not greater than, I think.
12351         (_dbus_marshal_set_int32): new function
12352         (_dbus_marshal_set_uint32): new function
12353         (_dbus_marshal_set_string): new function
12354
12355         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12356         a warning, init timeout_list to NULL
12357         (dbus_connection_send_message): don't use uninitialized variable
12358         "serial"
12359
12360         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12361
12362 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12363
12364         * bus/driver.c: (bus_driver_handle_hello),
12365         (bus_driver_send_welcome_message):
12366         Plug leaks
12367
12368 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12369
12370         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12371         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12372         (dbus_connection_unref):
12373         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12374         * dbus/dbus-message.c: (dbus_message_unref),
12375         Plug memory leaks.
12376
12377         (dbus_message_get_fields):
12378         Remove debugging printout.
12379
12380         (_dbus_message_loader_return_buffer):
12381         Don't store the header string.
12382
12383         (_dbus_message_test):
12384         Plug leaks.
12385
12386 2003-01-26  Richard Hult  <rhult@codefactory.se>
12387
12388         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12389         the file descriptor list, since it can change under us.
12390
12391 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12392
12393         * glib/dbus-gmain.c: (dbus_connection_prepare),
12394         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12395         (remove_watch), (dbus_connection_hookup_with_g_main):
12396         Rewrite the glib handling to use its own GSource instead of a
12397         GIOChannel so we can catch messages put in the queue while waiting
12398         for a reply.
12399
12400 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12401
12402         * bus/Makefile.am:
12403         * bus/connection.c: (connection_disconnect_handler),
12404         (connection_watch_callback), (bus_connection_setup):
12405         * bus/dispatch.c: (send_one_message),
12406         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12407         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12408         * bus/dispatch.h:
12409         * bus/driver.c: (bus_driver_send_service_deleted),
12410         (bus_driver_send_service_created), (bus_driver_handle_hello),
12411         (bus_driver_send_welcome_message),
12412         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12413         (bus_driver_handle_message):
12414         * bus/driver.h:
12415         Refactor code, put the message dispatching in its own file. Use
12416         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12417         is disconnected.
12418
12419 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12420
12421         * dbus/dbus-internals.h:
12422         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12423
12424         * dbus/dbus-message.c: (dbus_message_get_sender):
12425         * dbus/dbus-message.h:
12426         Implement dbus_message_get_sender.
12427
12428         * dbus/dbus-protocol.h:
12429         Add message and service defines.
12430
12431 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12432
12433         * dbus/dbus-connection.c: (dbus_connection_send_message):
12434         * dbus/dbus-message-internal.h:
12435         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12436         (dbus_message_write_header):
12437         Remove _dbus_messag_unlock and don't set the client serial on a
12438         message if one already exists.
12439
12440 2003-01-24  Havoc Pennington  <hp@pobox.com>
12441
12442         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12443         list_pool
12444
12445         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12446         on OOM
12447
12448 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12449
12450         * dbus/dbus-list.c: (alloc_link), (free_link):
12451         Use a memory pool for the links.
12452
12453 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12454
12455         * bus/connection.c: (bus_connection_foreach):
12456         * bus/connection.h:
12457         Add new bus_connection_foreach function.
12458
12459         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12460         Add function that broadcasts a message to all clients.
12461
12462         (bus_driver_send_service_created), (bus_driver_handle_hello),
12463         (bus_driver_send_welcome_message),
12464         (bus_driver_handle_list_services), (bus_driver_message_handler):
12465         Implement functions that take care of listing services, and notifying
12466         clients when new services are created.
12467
12468         * bus/services.c: (bus_services_list):
12469         * bus/services.h:
12470         Add new function that returns an array of strings with the currently
12471         registered services.
12472
12473         * glib/dbus-glib.h:
12474         * glib/dbus-gmain.c:
12475         Update copyright year.
12476
12477 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12478
12479         * dbus/dbus-connection.c: (dbus_connection_send_message):
12480         Unlock the message in case it was sent earlier.
12481
12482         (dbus_connection_send_message_with_reply_and_block):
12483         Remove the reply message from the list.
12484
12485         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12486         Set array_len and new_pos correctly.
12487
12488         (_dbus_marshal_test):
12489         Remove debug output.
12490
12491         * dbus/dbus-message-internal.h:
12492         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12493         New function that returns the reply serial.
12494
12495         (_dbus_message_unlock):
12496         New function that unlocks a message and resets its header.
12497
12498         (dbus_message_append_string_array),
12499         (dbus_message_get_fields_valist),
12500         (dbus_message_iter_get_field_type),
12501         (dbus_message_iter_get_string_array),
12502         (dbus_message_get_fields),
12503         (dbus_message_append_fields_valist):
12504         Handle string arrays.
12505
12506         (dbus_message_set_sender):
12507         Make this function public since the bus daemon needs it.
12508
12509         (decode_header_data):
12510         Set the reply serial to -1 initially.
12511
12512         * dbus/dbus-message.h:
12513         Add dbus_message_set_sender.
12514
12515 2003-01-24  Havoc Pennington  <hp@pobox.com>
12516
12517         * doc/dbus-specification.sgml: add some stuff
12518
12519 2003-01-22  Havoc Pennington  <hp@pobox.com>
12520
12521         * doc/dbus-specification.sgml: Start to document the protocol.
12522
12523 2003-01-22  Havoc Pennington  <hp@pobox.com>
12524
12525         * dbus/dbus-connection.c
12526         (dbus_connection_send_message_with_reply_and_block): add some @todo
12527
12528         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12529
12530 2003-01-21  Havoc Pennington  <hp@pobox.com>
12531
12532         (patch untested because can't compile)
12533
12534         * bus/driver.c (create_unique_client_name): make this function
12535         never recycle client names. Also, caller should initialize
12536         the DBusString.
12537
12538         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12539
12540 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12541
12542         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12543         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12544         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12545         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12546         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12547         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12548         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12549         * dbus/dbus-marshal.h:
12550         * dbus/dbus-protocol.h:
12551         Add support for marshalling and demarshalling integer, double
12552         and string arrays.
12553
12554 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12555
12556         * bus/Makefile.am:
12557         Add driver.[ch]
12558
12559         * bus/connection.c: (connection_disconnect_handler):
12560         Remove the connection from the bus driver's list.
12561
12562         (connection_watch_callback): Dispatch messages.
12563
12564         (free_connection_data): Free connection name.
12565
12566         (bus_connection_setup): Add connection to the bus driver's list.
12567         (bus_connection_remove_owned_service):
12568         (bus_connection_set_name), (bus_connection_get_name):
12569         Add functions for setting and getting the connection's name.
12570
12571         * bus/connection.h:
12572         Add function headers.
12573
12574         * bus/driver.c: (create_unique_client_name),
12575         (bus_driver_handle_hello_message),
12576         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12577         (bus_driver_add_connection), (bus_driver_remove_connection):
12578         * bus/driver.h:
12579         * bus/main.c:
12580         * bus/services.c: (bus_service_free):
12581         * bus/services.h:
12582         New file that handles communication and registreation with the bus
12583         itself.
12584
12585 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12586
12587         * dbus/dbus-connection.c: (dbus_connection_send_message):
12588         Add a new client_serial parameter.
12589
12590         (dbus_connection_send_message_with_reply):
12591         Remove a @todo since we've implemented the blocking function.
12592
12593         (dbus_connection_send_message_with_reply_and_block):
12594         New function that sends a message and waits for a reply and
12595         then returns the reply.
12596
12597         * dbus/dbus-connection.h:
12598         Add new functions.
12599
12600         * dbus/dbus-errors.c: (dbus_result_to_string):
12601         * dbus/dbus-errors.h:
12602         Add new DBUS_RESULT.
12603
12604         * dbus/dbus-message-internal.h:
12605         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12606         (_dbus_message_set_sender), (dbus_message_write_header),
12607         (dbus_message_new_reply), (decode_header_data),
12608         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12609         * dbus/dbus-message.h:
12610         Add new functions that set the reply serial and sender.
12611         Also marshal and demarshal them correctly and add test.
12612
12613         * dbus/dbus-protocol.h:
12614         Add new DBUS_MESSAGE_TYPE_SENDER.
12615
12616         * glib/dbus-glib.h:
12617         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12618         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12619         (dbus_connection_hookup_with_g_main):
12620         * glib/test-dbus-glib.c: (main):
12621         Rewrite to use GIOChannel and remove the GSource crack.
12622
12623         * test/echo-client.c: (main):
12624         * test/watch.c: (check_messages):
12625         Update for changed APIs
12626
12627 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12628
12629         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12630
12631         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12632         Create a DBusTimeoutList.
12633         (dbus_connection_set_timeout_functions): Add new function to
12634         set timeout callbacks
12635
12636         * dbus/dbus-connection.h: Add public DBusTimeout API.
12637
12638         * dbus/dbus-message.c: (dbus_message_get_service):
12639         * dbus/dbus-message.h:  New function.
12640
12641         * dbus/dbus-server.c: Fix small doc typo.
12642
12643         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12644
12645 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12646
12647         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12648         of the string, just as long as specified.
12649
12650 2003-01-19  Havoc Pennington  <hp@pobox.com>
12651
12652         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12653         new function
12654
12655         * dbus/dbus-server.c (dbus_server_set_max_connections)
12656         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12657         keep track of current number of connections, and add API for
12658         setting a max (but haven't implemented enforcing the max yet)
12659
12660 2003-01-18  Havoc Pennington  <hp@pobox.com>
12661
12662         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12663         reading/writing if read_watch != NULL or write_watch != NULL.
12664
12665         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12666         the message loader code to actually load message->header and
12667         message->body into the newly-created message.
12668
12669         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12670         in OOM case
12671
12672         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12673         (dbus_connection_get_max_message_size)
12674         (dbus_connection_set_max_live_messages_size)
12675         (dbus_connection_get_max_live_messages_size): implement some
12676         resource limitation functions
12677
12678         * dbus/dbus-resources.c: new file implementing some of the
12679         resource limits stuff
12680
12681         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12682         missing docs, add @todo to handle OOM etc.
12683
12684         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12685         docs
12686
12687 2003-01-18  Havoc Pennington  <hp@pobox.com>
12688
12689         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12690         connection if it hasn't been already.
12691
12692         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12693         replace with DisconnectFunction.
12694
12695 2003-01-18  Havoc Pennington  <hp@pobox.com>
12696
12697         Building --disable-verbose-mode --disable-asserts --disable-tests
12698         cuts the library from 112K to 45K or so
12699
12700         * configure.in: check for varargs macro support,
12701         add --enable-verbose-mode, --enable-asserts.
12702
12703         * dbus/dbus-internals.h (_dbus_assert): support
12704         DBUS_DISABLE_ASSERT
12705         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12706
12707 2003-01-18  Havoc Pennington  <hp@pobox.com>
12708
12709         * dbus/dbus-test.c: include config.h so that tests actually run
12710
12711         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12712         so the failure mode when that assumption fails will be plenty
12713         obvious.
12714
12715 2003-01-18  Havoc Pennington  <hp@pobox.com>
12716
12717         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12718
12719         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12720         the distribution
12721
12722         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12723         since we don't want to use those in make check
12724
12725 2003-01-15  Havoc Pennington  <hp@redhat.com>
12726
12727         Release 0.2
12728
12729         * NEWS: update
12730
12731 2003-01-15  Havoc Pennington  <hp@redhat.com>
12732
12733         * test/Makefile.am: fix so that test source code ends up in the
12734         distribution on make distcheck
12735
12736 2003-01-15  Havoc Pennington  <hp@redhat.com>
12737
12738         Release 0.1.
12739
12740         * NEWS: update
12741
12742 2003-01-15  Havoc Pennington  <hp@redhat.com>
12743
12744         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12745         fix build when --disable-tests
12746
12747         * Makefile.am (EXTRA_DIST): put HACKING in here
12748
12749         * HACKING: document procedure for making a tarball release.
12750
12751 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12752
12753         * bus/connection.c: (connection_error_handler),
12754         (bus_connection_setup):
12755         * bus/main.c: (main):
12756         Make sure that the DBusConnectionData struct is NULLed
12757         out to prevent a segfault.
12758
12759         * dbus/dbus-errors.c: (dbus_result_to_string):
12760         * dbus/dbus-errors.h:
12761         * dbus/dbus-message.c: (dbus_message_get_fields),
12762         (dbus_message_get_fields_valist), (_dbus_message_test):
12763         * dbus/dbus-message.h:
12764         Make dbus_message_get_fields return a result code so we can
12765         track invalid fields as well as oom.
12766
12767 2003-01-11  Havoc Pennington  <hp@pobox.com>
12768
12769         * configure.in: change --enable-test/--enable-ansi action-if-given
12770         to enable_foo=$enableval instead of enable_foo=yes
12771
12772 2003-01-08  Havoc Pennington  <hp@pobox.com>
12773
12774         * dbus/dbus-string.c (_dbus_string_align_length): new function
12775
12776         * dbus/dbus-test-main.c: move main() for test app here
12777         * dbus/dbus-test.c
12778         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12779         symbol to run tests, because dbus-test isn't in the main
12780         library
12781
12782         Code review nitpicks.
12783
12784         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12785         for people with narrow emacs ;-). Assert client_serial was filled
12786         in. Assert message->name != NULL.
12787         (dbus_message_append_fields): have "first_field_type" arg separate
12788         from va list, needed for C++ binding that also uses varargs IIRC
12789         and helps with type safety
12790         (dbus_message_new): add @todo about using DBusString to store
12791         service/name internally
12792         (dbus_message_new): don't leak ->service and ->name on OOM later
12793         in the function
12794         (dbus_message_unref): free the service name
12795         (dbus_message_get_fields): same change to varargs
12796         i.e. first_field_type
12797         (_dbus_message_loader_return_buffer): assert that the message data
12798         is aligned (if not it's a bug in our code). Put in verbose griping
12799         about why we set corrupted = TRUE.
12800         (decode_header_data): add FIXME that char* is evil.  Was going to
12801         add FIXME about evil locale-specific string.h strncmp, but just
12802         switched to wacky string-as-uint32 optimization. Move check for
12803         "no room for field name" above get_const_data_len() to avoid
12804         assertion failure in get_const_data_len if we have trailing 2
12805         bytes or the like. Check for service and name fields being
12806         provided twice. Don't leak service/name on error. Require field
12807         names to be aligned to 4 bytes.
12808
12809         * dbus/dbus-marshal.c: move byte swap stuff to header
12810         (_dbus_pack_int32): uscore-prefix
12811         (_dbus_unpack_int32): uscore-prefix
12812         (_dbus_unpack_uint32): export
12813         (_dbus_demarshal_string): add @todo complaining about use of
12814         memcpy()
12815         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12816         handling allowing corrupt data to go unchecked
12817
12818 2003-01-08  Havoc Pennington  <hp@redhat.com>
12819
12820         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12821         to the select() as needed for authentication. (should be using
12822         _dbus_poll() not select, but for another day)
12823
12824         * dbus/dbus.h: include dbus/dbus-protocol.h
12825
12826 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12827
12828         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12829         dbus-connection.h
12830
12831 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12832
12833         * dbus/dbus-internals.c: (_dbus_type_to_string):
12834         New function that returns a string describing a type.
12835
12836         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12837         * dbus/dbus-marshal.h:
12838         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12839         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12840         (dbus_message_iter_get_byte_array):
12841         * dbus/dbus-message.h:
12842         Add new convenience functions for appending and getting message fields.
12843         Also add demarshalling routines for byte arrays.
12844
12845 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12846
12847         * dbus/dbus-connection-internal.h:
12848         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12849         (_dbus_connection_get_next_client_serial),
12850         (dbus_connection_send_message):
12851         * dbus/dbus-internals.h:
12852         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12853         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12854         (_dbus_marshal_uint32), (_dbus_demarshal_double),
12855         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12856         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12857         (_dbus_verbose_bytes), (_dbus_marshal_test):
12858         * dbus/dbus-marshal.h:
12859         * dbus/dbus-message-internal.h:
12860         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12861         (dbus_message_write_header), (_dbus_message_lock),
12862         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12863         (dbus_message_get_name), (dbus_message_append_int32),
12864         (dbus_message_append_uint32), (dbus_message_append_double),
12865         (dbus_message_append_string), (dbus_message_append_byte_array),
12866         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12867         (dbus_message_iter_unref), (dbus_message_iter_has_next),
12868         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12869         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12870         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12871         (decode_header_data), (_dbus_message_loader_return_buffer),
12872         (message_iter_test), (_dbus_message_test):
12873         * dbus/dbus-message.h:
12874         * dbus/dbus-protocol.h:
12875         * dbus/dbus-test.c: (main):
12876         * dbus/dbus-test.h:
12877         * glib/test-dbus-glib.c: (message_handler), (main):
12878         * test/echo-client.c: (main):
12879         * test/watch.c: (check_messages):
12880         Make messages sendable and receivable for real.
12881
12882 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12883
12884         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12885         (_dbus_marshal_string), (_dbus_marshal_byte_array):
12886         * dbus/dbus-message.c: (dbus_message_append_int32),
12887         (dbus_message_append_uint32), (dbus_message_append_double),
12888         (dbus_message_append_string), (dbus_message_append_byte_array):
12889         Handle OOM restoration.
12890
12891 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12892
12893         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12894         (_dbus_demarshal_string), (_dbus_marshal_test):
12895         * dbus/dbus-marshal.h:
12896         * dbus/dbus-message.c: (dbus_message_get_name),
12897         Document these functions.
12898
12899         (dbus_message_append_int32), (dbus_message_append_uint32),
12900         (dbus_message_append_double), (dbus_message_append_string),
12901         (dbus_message_append_byte_array):
12902         * dbus/dbus-message.h:
12903         Add functions for adding message fields of different types.
12904
12905         * dbus/dbus-protocol.h:
12906         Add the different types.
12907
12908 2003-01-05  Havoc Pennington  <hp@pobox.com>
12909
12910         * bus/connection.c: implement routines for handling connections,
12911         first thing is keeping a list of owned services on each connection
12912         and setting up watches etc.
12913
12914         * bus/services.c: implement a mapping from service names to lists
12915         of connections
12916
12917         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12918
12919         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12920         to use static mutexes for global data
12921
12922         * dbus/dbus-connection.c (dbus_connection_set_data): add new
12923         collection of functions to set/get application-specific data
12924         on the DBusConnection.
12925
12926 2003-01-04  Havoc Pennington  <hp@pobox.com>
12927
12928         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12929         (_dbus_poll): new function
12930
12931         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12932         copied from GLib
12933
12934         * bus/loop.c: initial code for the daemon main loop
12935
12936 2003-01-04  Havoc Pennington  <hp@pobox.com>
12937
12938         * test/watch.c (error_handler): make it safe if the error handler
12939         is called multiple times (if we s/error handler/disconnect
12940         handler/ we should just guarantee it's called only once)
12941
12942         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12943         error handler on disconnect (it's quite possible we should
12944         just change the error handler to a "disconnect handler," I'm
12945         not sure we have any other meaningful errors)
12946
12947         * configure.in: check for getpwnam_r
12948
12949         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12950         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12951         mechanism as in SASL spec, using socket credentials
12952
12953         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12954         (_dbus_send_credentials_unix_socket): new function
12955
12956         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12957         dbus_accept()
12958         (_dbus_write): only check errno if <0 returned
12959         (_dbus_write_two): ditto
12960
12961 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
12962
12963         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12964         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12965         (_dbus_marshal_test):
12966         * dbus/dbus-marshal.h:
12967         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12968         to _dbus_marshal_utf8_string. Also fix some tests.
12969
12970 2002-12-28  Harri Porten  <porten@kde.org>
12971
12972         * configure.in: added check for C++ compiler and a very cheesy
12973         check for the Qt integration
12974
12975         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12976
12977         * qt/Makefile.am: added
12978
12979         * qt/.cvsignore: added
12980
12981         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12982         latter, added #ifdef QT_THREAD_SUPPORT guard.
12983
12984         * dbus/Makefile.am: added missing headers for make dist
12985
12986 2002-12-28  Kristian Rietveld  <kris@gtk.org>
12987
12988         * dbus/Makefile.am: fixup export-symbols-regex.
12989
12990 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12991
12992         * acinclude.m4: Add this file and put the
12993         PKG_CHECK_MODULE macro in it.
12994
12995 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12996
12997         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12998         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12999         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13000         (_dbus_marshal_test):
13001         Make the demarshalling routines align the pos argument.
13002         Add string marshalling tests and fix the obvious bugs
13003         discovered.
13004
13005 2002-12-26  Havoc Pennington  <hp@pobox.com>
13006
13007         * dbus/dbus-auth.c: fixes fixes fixes
13008
13009         * dbus/dbus-transport-unix.c: wire up support for
13010         encoding/decoding data on the wire
13011
13012         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13013         (_dbus_auth_decode_data): append to target string
13014         instead of nuking it.
13015
13016 2002-12-26  Havoc Pennington  <hp@pobox.com>
13017
13018         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13019         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13020         doh
13021
13022         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13023         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13024         now). Main point is because I wanted unpack_uint32 to implement
13025         _dbus_verbose_bytes
13026         (_dbus_verbose_bytes): new function
13027
13028         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13029
13030         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13031         mechanism to handle a corrupt message stream
13032         (_dbus_message_loader_new): fix preallocation to only prealloc,
13033         not prelengthen
13034
13035         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13036         (_dbus_string_test): enhance tests for copy/move and fix the
13037         functions
13038
13039         * dbus/dbus-transport-unix.c: Hold references in more places to
13040         avoid reentrancy problems
13041
13042         * dbus/dbus-transport.c: ditto
13043
13044         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13045         leak reference count in no-message case
13046
13047         * test/watch.c (do_mainloop): handle adding/removing watches
13048         during iteration over the watches. Also, ref the connection/server
13049         stored on a watch, so we don't try to mangle a destroyed one.
13050
13051         * dbus/dbus-transport-unix.c (do_authentication): perform
13052         authentication
13053
13054         * dbus/dbus-auth.c (get_state): add a state
13055         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13056         (_dbus_auth_get_unused_bytes): append the unused bytes
13057         to the passed in string, rather than prepend
13058
13059         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13060         the auth conversation DBusAuth
13061
13062         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13063         (_dbus_transport_new_for_domain_socket): when creating a
13064         transport, pass in whether it's a client-side or server-side
13065         transport so we know which DBusAuth to create
13066
13067 2002-12-03  Havoc Pennington  <hp@pobox.com>
13068
13069         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13070         _after_ finalizing the derived members
13071         (unix_connection_set): unref watch if we fail to add it
13072
13073         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13074         transport first, so that the connection owned by the
13075         transport will be valid as the transport finalizes.
13076
13077         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13078         if necessary, and remove watches from the connection.
13079
13080         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13081
13082 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13083
13084         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13085         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13086         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13087         (_dbus_marshal_test):
13088         * dbus/dbus-marshal.h:
13089         Add string marshal functions and have the demarshal functions
13090         return the new position.
13091
13092 2002-12-25  Havoc Pennington  <hp@pobox.com>
13093
13094         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13095         it is a simple protocol that just maps directly to SASL.
13096
13097         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13098         initial implementation, not actually used yet.
13099
13100         * dbus/dbus-string.c (_dbus_string_find): new function
13101         (_dbus_string_equal): new function
13102         (_dbus_string_base64_encode): new function
13103         (_dbus_string_base64_decode): new function
13104
13105 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13106
13107         * dbus/Makefile.am:
13108         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13109         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13110         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13111         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13112         * dbus/dbus-marshal.h:
13113         * dbus/dbus-protocol.h:
13114         * dbus/dbus-test.c: (main):
13115         * dbus/dbus-test.h:
13116         Add un-optimized marshalling/demarshalling routines.
13117
13118 2002-12-25  Harri Porten  <porten@kde.org>
13119
13120         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13121
13122 2002-12-24  Zack Rusin  <zack@kde.org>
13123
13124         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13125         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13126         main loop stuff
13127
13128 2002-12-24  Havoc Pennington  <hp@pobox.com>
13129
13130         * glib/dbus-gthread.c: fix include
13131
13132         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13133         I think glib API needs to change, though, as you don't
13134         want to use DBusMessageFunction, you want to use the
13135         DBusMessageHandler object. Probably
13136         dbus_connection_open_with_g_main_loop()
13137         and dbus_connection_setup_g_main_loop() or something like that
13138         (but think of better names...) that just create a connection
13139         that has watch/timeout functions etc. already set up.
13140
13141         * dbus/dbus-connection.c
13142         (dbus_connection_send_message_with_reply): new function just to
13143         show how the message handler helps us deal with replies.
13144
13145         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13146
13147         * dbus/dbus-string.c (_dbus_string_test): free a string that
13148         wasn't
13149
13150         * dbus/dbus-hash.c: use memory pools for the hash entries
13151         (rebuild_table): be more paranoid about overflow, and
13152         shrink table when we can
13153         (_dbus_hash_test): reduce number of sprintfs and write
13154         valid C89. Add tests for case where we grow and then
13155         shrink the hash table.
13156
13157         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13158
13159         * dbus/dbus-connection.c (dbus_connection_register_handler)
13160         (dbus_connection_unregister_handler): new functions
13161
13162         * dbus/dbus-message.c (dbus_message_get_name): new
13163
13164         * dbus/dbus-list.c: fix docs typo
13165
13166         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13167         an object representing a handler for messages.
13168
13169 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13170
13171         * glib/dbus-glib.h:
13172         * glib/dbus-gthread.c: (dbus_gthread_init):
13173         Don't use the gdbus prefix for public functions.
13174
13175 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13176
13177         * Makefile.am:
13178         * configure.in:
13179         Add GLib checks and fixup .pc files
13180
13181         * glib/Makefile.am:
13182         * glib/dbus-glib.h:
13183         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13184         (gdbus_connection_check), (gdbus_connection_dispatch),
13185         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13186         (dbus_connection_gsource_new):
13187         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13188         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13189         * glib/test-dbus-glib.c: (message_handler), (main):
13190         Add GLib support.
13191
13192 2002-12-15  Harri Porten  <porten@kde.org>
13193
13194         * autogen.sh: check for libtoolize before attempting to use it
13195
13196         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13197         struct.
13198
13199         * .cvsignore: ignore more stamp files
13200
13201         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13202
13203         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13204         without make install.
13205
13206 2002-12-15  Havoc Pennington  <hp@pobox.com>
13207
13208         * dbus/dbus-threads.c: add thread stubs that a higher library
13209         layer can fill in. e.g. the GLib wrapper might fill them in with
13210         GThread stuff. We still need to use this thread API to
13211         thread-safe-ize the library.
13212
13213 2002-12-12  Havoc Pennington  <hp@pobox.com>
13214
13215         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13216         below new interfaces and include fewer system headers.
13217
13218         * dbus/dbus-sysdeps.c (_dbus_read): new function
13219         (_dbus_write): new function
13220         (_dbus_write_two): new function
13221         (_dbus_connect_unix_socket): new function
13222         (_dbus_listen_unix_socket): new function
13223
13224         * dbus/dbus-message-internal.h: change interfaces to use
13225         DBusString
13226
13227 2002-12-11  Havoc Pennington  <hp@pobox.com>
13228
13229         * dbus/dbus-types.h: add dbus_unichar
13230
13231         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13232
13233         * dbus/dbus-connection.c (dbus_connection_send_message): return
13234         TRUE on success
13235
13236         * dbus/dbus-transport.c: include dbus-watch.h
13237
13238         * dbus/dbus-connection.c: include dbus-message-internal.h
13239
13240         * HACKING: add file with coding guidelines stuff.
13241
13242         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13243         handling here, for security purposes (as in vsftpd). Not actually
13244         using this class yet.
13245
13246         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13247         system/libc usage here, as in vsftpd, for ease of auditing (and
13248         should also simplify portability). Haven't actually moved all the
13249         system/libc usage into here yet.
13250
13251 2002-11-25  Havoc Pennington  <hp@pobox.com>
13252
13253         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13254         always print the first verbose message.
13255
13256 2002-11-24  Havoc Pennington  <hp@pobox.com>
13257
13258         * test/echo-client.c, test/echo-server.c: cheesy test
13259         clients.
13260
13261         * configure.in (AC_CHECK_FUNCS): check for writev
13262
13263         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13264         function
13265
13266         * dbus/dbus-list.c (_dbus_list_foreach): new function
13267
13268         * dbus/dbus-internals.c (_dbus_verbose): new function
13269
13270         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13271         representing a server that listens for connections.
13272
13273         * dbus/.cvsignore: create
13274
13275         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13276         public API for reporting errors
13277
13278         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13279         public object representing a connection that
13280         sends/receives messages. (Same object used for
13281         both client and server.)
13282
13283         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13284         Basic abstraction for different kinds of stream
13285         that we might read/write messages from.
13286
13287 2002-11-23  Havoc Pennington  <hp@pobox.com>
13288
13289         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13290         _DBUS_INT_MAX
13291
13292         * dbus/dbus-test.c (main): add list test, and include
13293         dbus-test.h as intended
13294
13295         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13296         (_dbus_hash_table_remove_int): return value indicates
13297         whether the entry existed to remove
13298
13299         * dbus/dbus-list.c: add linked list utility class,
13300         with docs and tests
13301
13302         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13303         array sometimes.
13304
13305 2002-11-23  Havoc Pennington  <hp@pobox.com>
13306
13307         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13308         DBUS_END_DECLS to nothing, that should fix this once and for all
13309
13310         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13311
13312         * dbus/dbus-message.c, dbus/dbus-hash.c:
13313         add some missing @brief
13314
13315 2002-11-23  Havoc Pennington  <hp@pobox.com>
13316
13317         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13318         to avoid confusing Doxygen
13319
13320         * dbus/dbus-hash.c: @} not }@
13321
13322         * dbus/dbus-message.c (struct DBusMessage): split out
13323         internals docs
13324
13325 2002-11-23  Havoc Pennington  <hp@pobox.com>
13326
13327         * configure.in: pile on more warning flags if using gcc
13328
13329         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13330         to document static functions
13331
13332         * configure.in: add summary to end of configure so it
13333         looks nice and attractive
13334
13335         * dbus/dbus-hash.c: finish implementation and write unit
13336         tests and docs
13337
13338         * configure.in: add --enable-tests to enable unit tests
13339
13340         * dbus/dbus-test.c: test program to run unit tests
13341         for all files in dbus/*, initially runs a test for
13342         dbus-hash.c
13343
13344         * dbus/dbus-internals.h: file to hold some internal utility stuff
13345
13346 2002-11-22  Havoc Pennington  <hp@redhat.com>
13347
13348         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13349         "ported" away from Tcl
13350
13351         * dbus/dbus-types.h: header for types such as dbus_bool_t
13352
13353 2002-11-22  Havoc Pennington  <hp@redhat.com>
13354
13355         * dbus/dbus.h: fixups for doc warnings
13356
13357         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13358         macros
13359         (QUIET): make it quiet so we can see warnings
13360
13361         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13362
13363 2002-11-22  Havoc Pennington  <hp@redhat.com>
13364
13365         * Makefile.am: include "Doxyfile" target in all-local
13366
13367         * configure.in: generate the Doxyfile
13368
13369         * Doxyfile.in: move Doxyfile here, so we can use
13370         configure to generate a Doxyfile with the right
13371         version number etc.
13372
13373 2002-11-22  Havoc Pennington  <hp@redhat.com>
13374
13375         * dbus/dbus-message.c: move inline docs into .c file
13376
13377         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13378         so all docs are under doc/
13379         (MAN_EXTENSION): generate man pages. Use extension
13380         ".3dbus" which matches ".3qt" on my system,
13381         I guess this is OK, I don't know really.
13382         (FILE_PATTERNS): look for .c files not .h, makes sense
13383         for plain C I think
13384
13385 2002-11-22  Havoc Pennington  <hp@pobox.com>
13386
13387         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13388         because any app can be a server, and any app can be a client,
13389         the bus is a special kind of server.
13390
13391 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13392
13393         * Doxyfile : adding. Still needs Makefile rules to be generated
13394         automatically (just run "doxygen" in the toplevel dir for now to
13395         generate docs)
13396
13397         * dbus/dbus-message.h : Adding sample docs (javadoc since
13398         resembles gtk-doc a little more)
13399
13400         * dbus/dbus.h : Adding sample docs
13401
13402 2002-11-21  Havoc Pennington  <hp@redhat.com>
13403
13404         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13405         so we can allow ourselves to include files directly,
13406         instead of having to use dbus.h
13407
13408         * dbus/dbus.h: fill in
13409
13410         * dbus/dbus-message.h: sketch out a sample header file.
13411         Include griping if you include it directly instead of
13412         via dbus.h
13413
13414         * dbus/dbus-macros.h: new file with macros for extern "C",
13415         TRUE/FALSE, NULL, etc.
13416
13417         * doc/file-boilerplate.c: put include guards in here
13418
13419 2002-11-21  Havoc Pennington  <hp@redhat.com>
13420
13421         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13422
13423         * COPYING: include the GPL as well, and license code
13424         under both AFL and GPL.
13425
13426 2002-11-21  Havoc Pennington  <hp@redhat.com>
13427
13428         * acconfig.h: get rid of this
13429
13430         * autogen.sh (run_configure): add --no-configure option
13431
13432         * configure.in: remove AC_ARG_PROGRAM to make
13433         autoconf complain less. add AC_PREREQ.
13434         add AC_DEFINE third arg.
13435
13436 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13437
13438         * doc/Makefile.am:
13439         Fix references so we can distcheck.
13440
13441 2002-11-21  Havoc Pennington  <hp@redhat.com>
13442
13443         * Initial module creation
13444