* qt/: Update to Subversion r548032.
[platform/upstream/dbus.git] / ChangeLog
1 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
2
3         * qt/: Update to Subversion r548032.
4         This includes a big reorganisation of the files inside the
5         subdir.
6
7 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
8
9         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
10         clear:  
11         "Failed to connect to socket <host>:<port> <error>" instead of
12         "Failed to connect to socket <host>: <error>:<port>"
13
14         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
15         for a tcp transport. 
16
17 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
18
19         * qt/*: Update the QtDBus bindings up to revision 546310 in
20         Subversion.
21         This adds the dbuscpp2xml tool, that parses a C++ header and
22         outputs a D-BUS Introspection XML.
23
24 2006-05-21  Havoc Pennington  <hp@redhat.com>
25
26         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
27         is not NULL when it shouldn't be. Also a couple of possible fixes
28         for #4637 though I don't understand why the bug happens, to be
29         honest... also the object constructor has an assert name != NULL
30         and the name is only currently NULL for peer-to-peer proxies that 
31         I don't think anyone uses? So it should be asserting.
32         Anyway, for now at least see if we get an earlier assertion failure.
33
34         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
35         apparently broken code to be sure the tests fail and someone 
36         will fix them...
37
38 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
39
40         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
41         and arrays when they had a single element: has_next returns
42         false, even before you read the element. So, instead, check
43         the array length.
44
45 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
46
47         * qt/qdbusmessage.cpp:
48         * qt/qdbustypehelper_p.h:
49         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
50         the list is a const-reference
51
52 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
53
54         * Adding old doc patch that never got applied
55         
56         * dbus/bus.c (dbus_bus_add_match): Add documentation
57
58         * doc/dbus-specification.xml: Add documentation for the match rules
59           and the AddMatch and RemoveMatch methods
60
61 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
62
63         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
64         call (r535506)
65
66         * qt/dbusidl2cpp.cpp:
67         * qt/qdbusabstractadaptor.cpp:
68         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
69         sibling of the QDBusAbstractAdaptor objects instead of the
70         parent. (r535848)
71
72         * qt/dbusidl2cpp.cpp:
73         * qt/qdbusabstractinterface.cpp:
74         * qt/qdbusabstractinterface.h:
75         * qt/qdbusabstractinterface_p.h:
76         * qt/qdbusinterface.cpp: Make properties in interfaces
77         actually work. The code that was generated would not compile,
78         due to moc calls to functions that did not exist. They now
79         shall. (r536571)
80
81 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
82
83         * Makefile.am:
84         * configure.in:
85         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
86         Thanks to Brad Hards for providing the patch
87
88 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
89
90         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
91         call. (r535506)
92
93 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
94
95         * qt/examples/dbus.cpp: Enhance error messages and use
96         QDBusInterfacePtr.
97
98 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
99
100         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
101         and disable the copy operators. (r533772, r534746)
102
103         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
104
105         * qt/qdbusabstractinterface.cpp:
106         * qt/qdbusabstractinterface.h: Change the default call mode to
107         not use the event loop. Add convenience call() methods that
108         take a CallMode parameter. (r534042)
109
110         * qt/qdbusconnection.h: Change the default call mode to not
111         use the event loop. (r534042)
112
113         * qt/qdbusinterface.cpp:
114         * qt/qdbusinterface.h: Add a method to tell us if the
115         interface is valid (since we don't return a null pointer
116         anymore) (r534099)
117
118         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
119         (r534101)
120
121         * qt/qdbusinternalfilters.cpp: Decouple the introspection
122         function in two so taht we get the chance to introspect
123         without having a QDBusMessage (r534102)
124
125         * qt/qdbusbus.h:
126         * qt/qdbusconnection.cpp:
127         * qt/qdbusconnection_p.h:
128         * qt/qdbusintegrator.cpp: Keep a list of our own names to
129         avoid a round-trip to the server when attempting to introspect
130         one of our own objects. Also make sure the filter functions
131         match the empty interface as well. (r534108)
132         Don't keep the connection names. Instead, trust the unique
133         connection name (r534111)
134         Remove event loop usage (r534112)
135
136 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
137
138         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
139         Brad Hards.
140
141 2005-04-28  Robert McQueen  <robot101@debian.org>
142
143         * glib/dbus-gproxy.c: Fix properties so that they can be given in
144         any order, making it easier for people who inherit from this
145         object.
146
147 2005-04-28  Robert McQueen  <robot101@debian.org>
148
149         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
150         of memory from within pointer arrays and lists. Fixes bug #6300.
151
152 2005-04-28  Robert McQueen  <robot101@debian.org>
153
154         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
155         generating struct signatures. Fixes bug #6083.
156
157 2005-04-28  Robert McQueen  <robot101@debian.org>
158
159         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
160         to qdbusconnection_p.moc.
161
162 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
163
164         * README, INSTALL: Doc fixes
165         Patch from Brad Hards <bradh at frogmouth.net>
166
167 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
168
169         * qt/examples/dbus.cpp: Use the new merged-interface mode for
170         the dynamic meta object. No need to guess which interface to
171         call.
172
173 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
174
175         * qt/qdbusconnection_p.h:
176         * qt/qdbusmetaobject.cpp:
177         * qt/qdbusmetaobject_p.h:
178         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
179         for the dynamic meta object. No need to guess which
180         interface to call.
181         * qt/qdbusabstractinterface_p.h:
182         * qt/qdbusconnection.cpp:
183         * qt/qdbusintegrator.cpp:
184         * qt/qdbusinterface.cpp:
185         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
186         Add a QDBusRef that looks and behaves like DCOPRef.
187
188 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
189
190         * dbus/dbus-connection.c: Interfaces are optional in method
191         calls, so don't give up if the interface parameter is NULL.
192         Patch reviewed by Havoc Pennington.
193
194 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
195
196         * qt/qdbusreply.h: Add default constructor and operator=
197           (r532625)
198         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
199           in public headers (r532952)
200         * qt/qdbusabstractinterface.cpp:
201         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
202           make it the default (r532951)
203
204 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
205
206         * dbus/dbus-connection.c: Fix asserts
207         Patch from Tim Moloney <t.moloney at verizon.net>
208
209 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
210
211         * mono/Connection.cs, mono/Message.cs: Check Target type
212         Patch from Aaron Bockover (abockover at novell.com)
213
214 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
215
216         * INSTALL: fine-tune the requirements for the Qt4 binding.
217
218 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
219
220         * tools/dbus-print-message.c: Added support for printing of all 
221           remaining data types. Fixed logic for indentation of compound
222           data types.
223         
224 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
225
226         * INSTALL: fill out content of file providing DBus specific
227           build installations, followed by generic Auto* INSTALL file
228           content
229         
230 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
231
232         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
233           Patch by Stefan Eilers. (r529537)
234
235 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
236
237         * qt/qdbusinternalfilters.cpp: Don't show the parent's
238           contents (r528208)
239
240 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
241
242         * qt/Makefile.am: fix the dependency for
243           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
244           not in qdbusconnection.cpp.
245           Thanks to Jakub Stachowski <stachowski@hypair.net> for
246           spotting this.
247
248 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
249
250         * qt/examples/listnames.cpp:
251         * qt/examples/Makefile.am: Three ways to list the names on the
252           bus.
253
254 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
255
256         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
257           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
258
259 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
260
261         Merge from Subversion:
262         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
263           something that exists (r526315)
264         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
265           slots/signals (r526316)
266         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
267           also return an unknown-method error if the parameters don't
268           match for org.freedesktop.DBus.Properties. (r526842)
269         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
270         * qt/qdbusintegrator.cpp: Restore the proper order of
271           delivery: don't make method returns be delivered on priority
272           (r528150)
273
274 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
275
276         * configure.in qt/Makefile.am: add qt/examples
277         * qt/examples: Add QtDBus example programs:
278           - hello: Hello, World
279           - ping: Simple method-calling program
280           - pong: Simple object-exporting program (not using adaptors)
281           - complexping: Interactive method-calling program 
282                 (also gets and sets properties).
283           - complexpong: Sample program exporting methods, signals and
284                 properties, using adaptors.
285           - dbus: Simple implementation of a generic method-calling
286                 program, similar to 'dbus-send', but with semantics
287                 similar to 'dcop'.
288           - chat: Simplistic chat program, implemented using signals
289                 and the system bus. Looks like IRC.
290
291 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
292
293         * configure.in: Detect QtGui (necessary for one of the
294           example programs). Note: this increases the minimum required
295           version of Qt to 4.1.3.
296
297 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
298
299         * test/qt/*: Sync with KDE Subversion revision 523647.
300         Update the testcases to the new API. Remove testcases for
301         classes that are no longer public or have been removed.
302
303 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
304
305         * qt/*: 
306         * dbus/qdbus.h: Sync with KDE Subversion revision
307         523647. Hopefully, this will be the last of the
308         source-incompatible changes. Documentation has been improved;
309         support for QList<basic-types> has been added; QDBusObject is
310         gone; QDBus(Abstract)Interface is now a QObject with
311         auto-generated meta-object; QDBusIntrospection is marked
312         private, since QMetaObject can be used now; lots of bugfixes.
313
314 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
315
316         Patch from Milosz Derezynski <internalerror at gmail.com>
317         
318         * configure.in:
319         Output the service directory in the configure summary
320
321         * dbus-1.pc.in:
322         Add session_bus_services_dir
323
324 2006-03-10  Ross Burton  <ross@openedhand.com>
325
326         * tools/dbus-print-message.c:
327         Add support for object paths and signatures.
328
329 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
330
331         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
332         config reload.
333         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
334         information caches
335         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
336         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
337         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
338         * dbus/dbus-userdb.h: Add function to flush all user/group information
339         caches.
340
341 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
342
343         * qt/dbusidl2cpp.cpp:
344         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
345         for dcopidl2cpp, found in the KDE installations (or the more
346         modern kalyptus): generate Qt4 C++ code for the input XML
347         introspection. Currently no IDL parsing.
348
349 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
350
351         * test/qt/*: Update the self-tests.
352
353 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
354
355         * qt/*: 
356         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
357         represents the first feature-complete version of the Qt4
358         bindings since I took ove maintainership.
359
360 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
361
362         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
363         dir. This is C++, so we can't use the DBus ones.
364
365 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
366
367         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
368         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
369
370 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
371
372         * dbus/dbus-connection.c: 
373         (_dbus_connection_block_pending_call):
374         Check to see if our data has already been read off the connection
375         by another blocking pending call before we block in poll.
376         (check_for_reply_and_update_dispatch_unlocked):
377         Code taken from _dbus_connection_block_pending_call - checks for
378         an already read reply and updates the dispatch if there is one.
379
380         * test/name-test/test-pending-call-dispatch.c:
381         New test for making sure we don't get stuck polling a 
382         dbus connection which has no data on the socket when
383         blocking out of order on two or more pending calls.
384
385 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
386
387         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
388         make/automake don't detect that we're talking about the same
389         .lo file if I specify the full path to the source files.
390
391 2006-02-26  Havoc Pennington  <hp@redhat.com>
392
393         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
394
395         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
396         session bus variable is unset, suggest "man dbus-launch" and "man
397         dbus-daemon" to figure out how to fix the problem
398
399 2006-02-25  Havoc Pennington  <hp@redhat.com>
400
401         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
402         should make this thing use the new glib options parser
403
404 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
405
406         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
407         .lo files taking moc sources.
408
409 2006-02-25  Havoc Pennington  <hp@redhat.com>
410
411         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
412         and install it as a public header
413
414 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
415
416         * Released 0.61
417
418 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
419         
420         * proxies.py: Fix the callchain
421
422 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
423         
424         * patch from Sjoerd Simons <sjoerd at debian.org>:      
425
426         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
427         dbus/dbus-sysdeps.c
428
429         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
430         call _dbus_group_info_free_allocated which causes infinite loop,
431         correctly call _dbus_group_info_free
432
433 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
434
435         * qt/qdbusinterface_p.h:
436         * qt/qdbusinterface.cpp: Use the standard
437         org.freedesktop.DBus.Method.NoReply annotation for the "async"
438         calls instead of creating one for us.
439
440         * qt/qdbusconnection_p.h:
441         * qt/qdbusintegrator.cpp: Remove debugging code.
442
443         * qt/qdbusintegrator.cpp:
444         * qt/qdbusmessage.cpp:
445         * qt/qdbusmessage_p.h:
446         * qt/qdbusmessage.h: Change the behaviour of automatic
447         reply-sending: now a reply is always sent, unless the caller
448         didn't request one or if the user slot has already sent one.
449
450 2006-02-16  Robert McQueen  <robot101@debian.org>
451
452         * configure.in: Patch from Debian packages by Sjoerd Simons
453         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
454         arguments so it's possible to build both bindings in the
455         same tree.
456
457         * qt/Makefile.am: Fix truncated value so that make dist works.
458
459 2006-02-16  Robert McQueen  <robot101@debian.org>
460
461         * acinclude.m4, configure.in: Patch from Brad Hards
462         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
463         improving quoting, re-ordering a few checks, and a few other
464         aesthetic tidy-ups.
465
466 2006-02-16  Robert McQueen  <robot101@debian.org>
467
468         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
469         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
470         assertion that the next element to read from the iter is fixed in
471         size. This is not the case when you are at the end of the iter,
472         because the next element type is INVALID.
473
474         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
475         a bogus assert which means that you may not initialise a 0-length
476         string unless you provide a non-NULL pointer. This prevented
477         you from marshalling messages containing zero-length arrays in
478         some cases.
479
480         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
481         from Rob to correct bogus asserts when trying to demarshal an
482         array and get_fixed_array got you 0 elements. Append nothing to
483         the GArray in this case.
484
485         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
486         an empty array via the glib bindings. Without all of the above
487         patches, this new test fails.
488
489 2006-02-16  Robert McQueen  <robot101@debian.org>
490
491         * glib/dbus-gmain.c: Make the previous commit compile.
492
493         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
494         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
495         specify sender_keyword="foo", path_keyword="bar" when adding
496         a signal listener, so that you can bind to signals generically
497         but still do something useful in your callback.
498
499         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
500         chars so that they're not cast to chars and made negative. Thanks
501         to Jakub Stachowski for reporting this and testing the fix.
502
503 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
504
505         * dbus/dbus-glib.h:
506         * glib/dbus-gmain.h:
507         (dbus_g_connection_open): new method for openning
508         a connection to an arbitrary address in the glib bindings
509
510         * ChangeLog: checkin last entry which doesn't seem to be commited
511
512 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
513
514         * tools/dbus-launch.c: Fixed sh syntax output
515
516 2006-02-13  Robert McQueen  <robot101@debian.org>
517
518         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
519         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
520         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
521         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
522         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
523         missing piece of the glib bindings jigsaw puzzle. This modifies
524         the existing specialised types to have N type parameters (rather
525         than the current 1 or 2 for arrays and dictionaries respectively).
526         You can then use this to get a glib type to represent any arbitrary
527         D-Bus struct type using dbus_g_type_get_struct. The only
528         implementation of these types is with GValueArrays as before,
529         but it's now possible to store these in arrays, emit them in
530         signals, etc.
531
532 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
533
534         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
535         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
536         <thiago.macieira at trolltech.com>
537
538 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
539
540         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
541         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
542
543 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
544
545         * bus/connection.c (bus_connections_expect_reply): Make
546         pending reply limit not common to all connections (Bug #5416)
547         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
548
549 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
550
551         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
552
553 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
554
555         * gcj/Makefile.am: point to correct jar command (Bug #4529)
556         patch from Doug Goldstein <cardoe at gentoo.org>
557
558 2006-02-09  Joe Shaw  <joeshaw@novell.com>
559
560         * mono/Arguments.cs: Fix a magic number in the mono bindings
561         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
562
563 2006-01-27  Robert McQueen  <robot101@debian.org>
564
565         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
566         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
567         when generating the client-side methods, instead of overloading
568         CSymbol which broke everything horribly. My apologies.
569
570 2006-01-27  Robert McQueen  <robot101@debian.org>
571
572         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
573         by me and Rob Taylor to add a simple_free function to D-Bus map
574         and collection types, which allows those types which can be freed
575         with a GDestroyNotify (such as GHashTables and GArrays, but not
576         GPtrArrays) to be stored as the values in hashtables.
577
578         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
579         Patch by Rob Taylor to add nested dicts to the glib tests to check
580         the above code works, and appears not to leak when called repeatedly.
581
582 2006-01-27  Robert McQueen  <robot101@debian.org>
583
584         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
585         to free a D-Bus allocated string with dbus_free () instead of
586         g_free ().
587
588 2006-01-27  Iain Holmes  <iain@openedhand.com>
589
590         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
591         method from being called multiple times.
592
593 2006-01-19  Robert McQueen  <robot101@debian.org>
594
595         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
596         <rob.taylor@collabora.co.uk> to add support for generating bindings
597         to arrays that are represented as GPtrArrays rather than GArrays (ie
598         size-variable things, such as strings, objects, structs, etc).
599
600 2006-01-05  Robert McQueen  <robot101@debian.org>
601
602         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
603         <ricardo.kekki@movial.fi> to make it possible to inherit from
604         DBusGProxy, by splitting the DBusGProxy struct into a public part and
605         a private part, and moving the setting of the DBusGProxyManager into a
606         connection property, allowing proper GObject construction.
607
608 2006-01-05  Robert McQueen  <robot101@debian.org>
609
610         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
611         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
612         annotations when generating glib client bindings.
613
614 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
615
616         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
617
618         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
619
620 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
621
622         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
623
624 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
625
626         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
627
628 2005-12-19  Ross Burton  <ross@openedhand.com>
629
630         * doc/dbus-tutorial.xml:
631         Document the Glib client-side bindings, and list all possible annotations.
632
633 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
634
635         * dbus/bus.c (dbus_bus_release_name): Add documentation
636
637 2005-12-06  Robert McQueen  <robot101@debian.org>
638
639         * python/service.py: s/sucessful/successful/ so we're allocating to
640         and reading from the same variable. Oops.
641
642 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
643
644         * Released 0.60
645
646 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
647
648         * test/qt/Makefile.am: build from srcdir
649
650         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
651         Note - this code is wrong and needs to be fixed by the Qt binding
652         developers.  The flags should be treated as bitfields and not enums.
653
654         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
655
656 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
657
658         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
659           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
660           in production code
661
662 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
663
664         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
665         method for getting messages off the bus in the absence of a
666         mainloop.  This method is much like 
667         dbus_connection_read_write_dispatch except it does not dispatch
668         the messages to a registered filter function.  Instead it
669         allows a developer to process messages by directly popping
670         them off the bus.
671
672 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
673
674         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
675         the parser to continue instead of returning error
676         (bus_desktop_file_load): Do not free parser data when
677         parse_section_start or parse_key_value fails because it was 
678         already freed by parser_free (patch from Carlos Garcia Campos  
679         <carlosgc at gnome.org>)
680
681 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
682
683         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
684         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
685         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
686         test/test-segfault.c, test/test-utils.c,
687         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
688         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
689         Various cleanup of dead code and compiler warnings (patch from
690         Kjartan Maraas <kmaraas at gnome.org>) 
691
692 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
693
694         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
695         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
696
697 2005-11-27  Robert McQueen  <robot101@debian.org>
698
699         * python/dbus_bindings.pyx: Repair my previous commit which reverted
700         part of the preceding one. Oops. Merge patch by Johan Hedberg
701         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
702         on big-endian platforms.
703
704         * test/python/test-client.py: Add some 16-bit integers to the test
705         values.
706
707 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
708
709         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
710         method return message for property getters
711
712 2005-11-27  Robert McQueen  <robot101@debian.org>
713
714         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
715         with type v of an instance of dbus.Variant(foo, type='x') caused
716         it to be boxed twice before sending over the bus.
717
718         * python/dbus_bindings.pyx, python/service.py,
719         test/python/test-client.py: Update the constants for the new
720         request_name flags, and update comments/test cases now that queueing
721         is the default action.
722
723 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
724
725         * configure.in:
726         - Change version to 0.60 for impending release
727         - upped the sonames because of ABI and API breakage
728
729 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
730
731         * configure.in: Add test/name-test/Makefile to the generated
732         Makefile list
733
734         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
735         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
736         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
737         not to queue an ower if it can't be the primary owner
738
739         * bus/bus.h: Add new internal BusOwner struct
740
741         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
742         to bus_registry_ensure and don't set the prohibit_replacement flag
743         since they are now set per BusOwner and not per name.
744         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
745         that returns the list of connections in a name's connection queue
746         
747         * bus/services.c (struct BusService): remove prohibit_replacement field
748         (struct BusOwner): new struct for keeping track of queued connections
749         and their associated flags for the queue
750         (struct BusRegistry): add a BusOwner memory pool
751         (bus_registry_new): initialize the BusOwner memory pool
752         (bus_registry_unref): free the BusOwner memory pool
753         (_bus_service_find_owner_link): new internal method for
754         searching the queue for a specific connection
755         (bus_owner_set_flags): new method for adding setting the flags on a
756         bus owner
757         (bus_owner_new): new method that creates a BusOwner object from the
758         pool and sets its flags
759         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
760         (bus_registry_ensure): Add the flags parameter
761         (bus_registry_acquire_service): Switch from using raw connections to
762         using the BusOwner struct
763         Add new state machine for dealing with the new set of flags
764         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
765         cancel_ownership, free_ownership_cancel_data, 
766         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
767         restore_ownership, free_ownership_restore_data, 
768         add_restore_ownership_to_transaction): Switch to using BusOwner 
769         instead of raw connections
770         (bus_service_add_owner): Add flags parameter
771         Switch to using BusOwner instead of raw connections
772         Add state machine for dealing with the new set of flags
773         (bus_service_swap_owner): Swaps the first and second owners in the
774         queue.  Used to make sure proper signals are sent when a service looses 
775         or gains primary ownership.  We never insert an owner at the top of the
776         queue.  Instead we insert it in the second position and then swap.
777         (bus_service_remove_owner): Remove the owner from the queue sending
778         out the NameLost and NameOwnerChanged signals if the we were the 
779         primary owner
780         (bus_service_get_primary_owners_connection): New method that extracts
781         the connection from the primary owner
782         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
783         connection
784         (bus_service_get_allow_replacement): Changed from the old 
785         bus_service_get_prohibit_replacement method.  Checks the flags of the 
786         primary owner and returns if it can be replaced or not
787         (bus_service_set_prohibit_replacement): removed
788         (bus_service_has_owner): returns TRUE if and owner with
789         the specified connection exists in the queue
790         
791         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
792         method that only compiles if tests are enabled.  Allows us to get the 
793         unique name of a connection so we can check it against the queue when
794         doing regression tests
795
796         * bus/activation.c (bus_activation_send_pending_auto_activate),
797         bus/dispatch.c (bus_dispatch),  
798         bus/driver.c (bus_driver_handle_get_service_owner, 
799         bus_driver_handle_get_connection_unix_user, 
800         bus_driver_handle_get_connection_unix_process_id,
801         bus_driver_handle_get_connection_selinux_security_context),
802         bus/signals.c (connection_is_primary_owner): 
803         use bus_service_get_primary_owners_connection instead of
804         bus_service_get_primary_owner
805
806         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
807         _dbus_listen_unix_socket): Calculate the length of the socket
808         path and use that instead of using a fixed length which was
809         causing socket names to contain many trailing Nul bytes.
810
811         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
812         (dbus_g_method_get_sender): New method for extracting the sender 
813         from a DBusGMethodInvocation
814         (dbus_g_method_return_get_reply): changed name to 
815         dbus_g_method_get_reply
816         (dbus_g_method_return_send_reply): changed name to
817         dbus_g_method_send reply
818
819         * doc/dbus-specification.xml: New docs that describe how the new
820         queueing system works and talks about the changes to the how
821         we specify socket names
822
823         * glib/examples/example-service.c, 
824         glib/examples/example-signal-emitter.c,
825         glib/examples/statemachine/statemachine-server.c:
826         Changed the RequestName flags to the new system
827
828         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
829         regression test suite for testing various states of the new
830         queueing system
831         
832 2005-11-15  Robert McQueen  <robot101@debian.org>
833
834         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
835         Taylor to add two methods, dbus_g_method_return_get_reply and
836         dbus_g_method_return_send_reply, to allow you to get the reply
837         message from a DBusGMethodInvocation, append arbitrary stuff to it,
838         and send it. The GLib bindings can't marshal a return value of
839         something like a(s) if the array is empty - ultimately they should be
840         made to heed the signature of the out arguments as the Python bindings
841         now can, but this is a workable interim solution which might have
842         other applications.
843
844 2005-11-15  Robert McQueen  <robot101@debian.org>
845
846         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
847         method to org.freedesktop.DBus to release a bus name or give up
848         waiting in the queue for it.
849
850         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
851         dbus_bus_release_name method to send the ReleaseName method calls.
852         Add constants for the return values to dbus/dbus-shared.h.
853
854         * doc/dbus-specification.xml: Document the new ReleaseName method
855         in the specification.
856
857         * python/dbus_bindings.pyx: Add a low-level python binding for the
858         release name method.
859
860         * python/exceptions.py, python/service.py: Make freeing BusName
861         objects release the name. Add a NameExistsException, and fix a
862         bug with creating UnknownMethodException.
863
864         * test/python/test-client.py: Add tests for freeing BusName
865         objects causing names to be released.
866
867 2005-11-14  Robert McQueen  <robot101@debian.org>
868
869         * python/service.py: Include the traceback in the error reply when we
870         send an exception over the bus. _BEST_ _PATCH_ _EVER_
871
872 2005-11-14  David Zeuthen  <davidz@redhat.com>
873
874         Patch from Timo Hoenig <thoenig@suse.de>.
875
876         * bus/bus.c: I've recently investigated why the automatic reload
877         of configuration files does not work as expected.
878
879         Currently, reloading configuration files does only work when
880         running dbus-daemon with --nodaemon.  If we are running as daemon
881         we're hitting a dnotify bug once we fork the process.
882
883         We're initializing the dnotify fds before calling fork().  Once
884         the child process forked it does still have the fds (and they
885         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
886         getting SIGIO as changes are made to the configuration files.
887
888         The attached patch moves the initialization of the dnotify fds to
889         process_config_postinit().  This is safe for all current code
890         paths and solves the dnotify disfunction.  If we're running
891         dbus-daemon as daemon the fds for dnotify are now being
892         initialized after fork() for the child process.
893
894         * configure.in: The current configure.in check for dnotify probes
895         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
896         match for 'xlinux', too. Additionally I have adapted the configure
897         option's style to match with the others.
898
899 2005-11-14  Robert McQueen  <robot101@debian.org>
900
901         * python/decorators.py, python/service.py: Add a new argument to the
902         dbus.service.method decorator called sender_keyword, which if set,
903         specifies the name of an argument which will be provided the bus
904         name of the method caller.
905
906         * test/python/test-client.py, test/python/test-service.py: Add a
907         method and test to check the sender_keyword functionality.
908
909 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
910
911         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
912         empty reply so blocking calls don't block forever (Patch from Sjoerd 
913         Simons <sjoerd at luon.net>)
914
915         * AUTHORS: Add Robert McQueen for his work on the Python
916         Bindings and other parts of D-Bus
917
918 2005-11-07  Robert McQueen  <robot101@debian.org>
919
920         * python/decorators.py: Change emit_signal function to use the
921         signature annotation of the signal when marhsalling the arguments from
922         the service. Fix a bug where the code checking signature length
923         against argument length referenced the wrong variable.
924
925         * python/introspect_parser.py: Avoid adding the type signature of
926         signal arguments to any methods which occur after them in the
927         introspection data (!) by making the parser a little more careful
928         about its current state.
929
930         * python/service.py: Remove debug prints from last commit (again :D).
931
932         * test/python/test-client.py, test/python/test-service.py: Add test
933         signals with signature decorators to test the strict marshalling code
934         gives errors at the right time. Could do with checking the signals
935         actually get emitted too, given that the test does nothing with
936         signals at the moment...
937
938 2005-11-07  Robert McQueen  <robot101@debian.org>
939
940         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
941         instances to stop madness of creating new instances representing
942         the same bus connection all the time, rendering any tracking of
943         match rules and bus names quite meaningless. Caught a bug where
944         the private argument to SessionBus() and friends was being passed
945         in as use_default_mainloop by mistake. Still some problems with
946         multiple dbus_binding.Connection instances representing the same
947         low-level connection (eg when you use both SessionBus() and
948         StarterBus() in same process), but it's a lot better now than it
949         was.
950
951         * python/dbus_bindings.pyx: Add constants with the return values
952         for bus_request_name().
953
954         * python/service.py: Store bus name instances in a per-dbus.Bus cache
955         and retrieve the same instances for the same name, so deletion can be
956         done with refcounting. Also now throws some kind of error if you
957         don't actually get the name you requested, unlike previously...
958
959         * test/python/test-client.py: Add tests for instance caching of buses
960         and bus name objects.
961
962 2005-11-04  Robert McQueen  <robot101@debian.org>
963
964         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
965         marshalling of boolean values. Add some booleans to the values in
966         the test client.
967
968         * python/decorators.py, python/service.py: Add an 'async_callbacks'
969         argument to the dbus.service.method decorator, which allows you to
970         name arguments to take two callback functions for replying with
971         return values or an exception.
972
973         * test/python/test-client.py, test/python/test-service.py: Add test
974         case using asynchronous method reply functions, both return values and
975         errors, and from within both the function itself and from a mainloop
976         callback.
977
978         * python/decorators.py, python/service.py: Perform checking that the
979         number of method/signal arguments matches the number of types in the
980         signature at class loading time, not when you first introspect the
981         class.
982
983         * python/service.py: Remove debug print left by the last commit.
984
985 2005-11-03  Robert McQueen  <robot101@debian.org>
986
987         * python/service.py: Heavy refactoring of method invocation, with
988         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
989         in favour of a new _message_cb that uses seperate functions for
990         looking up the method to call, marshalling the return values, and
991         sending exceptions as errors, and is easier to follow as a
992         consequence.  Fixes some corner cases about returning things that
993         don't match your declared out_signature, allows exceptions to define
994         _dbus_error_name and have it be sent over the bus as the error name,
995         and paves the way for cool stuff like heeding the message no reply
996         flag, asynchronous method implementations, informing the method of the
997         sender, and including backtraces in the error messages.
998
999         * test/python/test-client.py: Catch and print exceptions thrown in the
1000         async callback tests, rather than passing them to the low-level
1001         bindings to be ignored in a noisy and frustrating manner.
1002
1003 2005-11-03  Robert McQueen  <robot101@debian.org>
1004
1005         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1006         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1007         tweak others to be consistent.
1008
1009         * test/python/test-client.py: Tweak output of testInheritance.
1010
1011 2005-10-29  Robert McQueen  <robot101@debian.org>
1012
1013         * python/service.py: Major changes to allow multiple inheritance
1014         from classes that define D-Bus interfaces:
1015         
1016          1. Create a new Interface class which is the parent class of
1017             Object, and make the ObjectType metaclass into InterfaceType.
1018         
1019          2. Patch written with Rob Taylor to replace use of method_vtable
1020             with code that walks the class's __MRO__ (method resolution order)
1021             to behave like Python does when invoking methods and allow
1022             overriding as you'd expect. Code is quite tricky because
1023             we have to find two methods, the one to invoke which has the
1024             right name and isn't decorated with the /wrong/ interface,
1025             and the one to pick up the signatures from which is decorated
1026             with the right interface.
1027         
1028             The same caveats apply as to normal multiple inheritance -
1029             this has undefined behaviour if you try and inherit from two
1030             classes that define a method with the same name but are
1031             decorated with different interfaces. You should decorate
1032             your overriding method with the interface you want.
1033         
1034          3. Replace grungy introspection XML generation code in the metaclass
1035             with dictionaries that cope correctly with multiple inheritance
1036             and the overriding of methods. This also uses the signature
1037             decorations to provide correct introspection data, including
1038             the debut appearance of the types of your return values. :D
1039
1040         * test/python/test-client.py, test/python/test-service.py: Add a test
1041         case to try invoking an method that overrides one inherited from a
1042         D-Bus interface class.
1043
1044 2005-10-29  Robert McQueen  <robot101@debian.org>
1045
1046         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1047         Add checking for the end of struct character when marshalling a
1048         struct in MessageIter.append_strict.
1049
1050         * python/examples/example-service.py,
1051         python/examples/gconf-proxy-service.py,
1052         python/examples/gconf-proxy-service2.py: Update to use gobject
1053         mainloop directly rather than appearing to depend on gtk.
1054
1055         * python/test/test-client.py, python/test/test-server.py: Remove
1056         obsolete and broken test scripts for old bindings. We have up to date
1057         and working tests in test/python/.
1058
1059 2005-10-29  Robert McQueen  <robot101@debian.org>
1060
1061         * python/decorators.py: Add optional arguments to the method and
1062         signal decorators to allow you to specify the signature of arguments
1063         and return values. Preserve the doc strings of signal functions in the
1064         decorated version, for pydoc and friends.
1065
1066         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1067         parse_signature_block function with an iterable dbus.Signature()
1068         type. Fix a bug in MessageIter.append_strict where you could append
1069         anything by claiming it was a string.
1070
1071         * python/service.py: Use the out_signature decoration on methods to
1072         marshal return values, meaning you no longer require dbus.Array()
1073         or dbus.Dictionary() to indicate the type when returning empty
1074         arrays or dictionaries. Fix a bug where exceptions which are defined
1075         in __main__ are not turned into error replies.
1076
1077         * test/python/test-client.py, test/python/test-service.py: Add test
1078         for correct marshalling of return values according to out_signature.
1079         Fix a bug in the async call test where the error_handler is missing a
1080         self argument.
1081
1082 2005-10-29  Robert McQueen  <robot101@debian.org>
1083
1084         * glib/Makefile.am, glib/examples/Makefile.am,
1085         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1086         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1087
1088         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1089
1090         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1091         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1092         the command line.
1093
1094 2005-10-27  Ross Burton  <ross@openedhand.com>
1095
1096         * dbus/dbus-marshal-header.c:
1097         Remove dead code.
1098
1099         * glib/dbus-gobject.c:
1100         Stop compiler warning.
1101
1102 2005-10-25  Ross Burton  <ross@openedhand.com>
1103
1104         * dbus/dbus-auth.c:
1105         * dbus/dbus-server-unix.c:
1106         * dbus/dbus-transport-unix.c:
1107         * glib/dbus-gmain.c:
1108         * glib/dbus-gobject.c:
1109         Add some const keywords.
1110
1111 2005-10-25  Ross Burton  <ross@openedhand.com>
1112
1113         * doc/dbus-specification.xml:
1114         Document the NoReply annotation.
1115
1116         * glib/dbus-binding-tool-glib.h:
1117         * glib/dbus-binding-tool-glib.c:
1118         Respect the NoReply annotation.
1119
1120 2005-10-24  Robert McQueen <robot101@debian.org>
1121
1122         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1123         derive from unicode instead of str, and encode/decode UTF-8 when
1124         marshalling/unmarshalling bus messages
1125
1126         * python/introspect_parser.py: encode introspection data as UTF-8
1127         before passing the buffer into libxml2
1128
1129         * test/python/test-client.py: add unicode test strings
1130
1131         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1132         ignore generated python test files
1133
1134 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1135
1136         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1137         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1138         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1139
1140         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1141         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1142         when constructing struct signatures
1143
1144         * python/_dbus.py (Bus): handle private connections using the
1145         private keyword in the constructor. defaults to private=False
1146         (Bus::close): new method to close a connection to the bus
1147
1148         * python/dbus_bindings.pyx (Connection::close): renamed method
1149         was previously called disconnect
1150         (bus_get): now supports getting a private connection
1151
1152         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1153         keyword is set to True.  if it is, execute the method without waiting
1154         for a reply
1155         (ProxyObject::_introspect_execute_queue): new method for executing
1156         all the pending methods that were waiting for the introspect to
1157         finish.  this is called when introspect either succeeds or fails
1158         (ProxyObject::_introspect_error_handler): call queued methods
1159
1160 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1161
1162         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1163         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1164
1165         * python/service.py (Object::_message_cb): handle exceptions correctly
1166         by sending them over the wire to the calling app.  This makes sure
1167         the client returns immediately instead of waiting the 15 seconds to
1168         timeout.
1169
1170         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1171         Add a test to benchmark how long it takes to introspect a service and 
1172         call a method which returns a large element (pretty fast)
1173
1174         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1175         method which pushes a lot of data
1176
1177 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1178
1179         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1180         reclaim memory outside of the loop and use del istead of just setting
1181         the key to None
1182
1183 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1184
1185         * python/service.py (ObjectType::_reflect_on_signal): Always close
1186         signal tag even when there are no arguments
1187
1188 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1189
1190         * configure.in: Set mono, mono-docs and Qt3 to default
1191         to no instead of auto when building.  These bindings do not
1192         have full time maintainers and will not be supported for the
1193         1.0 release.
1194
1195 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1196
1197         patches from Michael Krivoruchko <misha at sun.com>: 
1198         
1199         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1200         _dbus_connection_message_sent, 
1201         _dbus_connection_send_preallocated_unlocked_no_update, 
1202         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1203         is NULL when calling _dbus_verbose
1204
1205         * configure.in: check for functions getpeerucred and getpeereid
1206
1207         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1208         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1209         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1210         Patch was only tested on Solaris 10 x86 so it might be issues
1211         with other platforms (i.e. BSDs and MacOSX)
1212         
1213
1214 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1215
1216         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1217         instead of marshal basic so we can handle recursive types in a variant
1218
1219         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1220         in variants
1221
1222         * test/glib/test-service-glib.c, test-service-glib.xml
1223         (my_object_echo_variant [EchoVariant], 
1224         my_object_process_variant_of_array_of_ints123
1225         [ProcessVariantOfArrayOfInts123]): 
1226         Add two test methods
1227
1228         * python/introspect_parser.py: New module for parsing introspect
1229         data.
1230
1231         * python/dbus_bindings.pyx:
1232         (various places): when throwing errors fix to use errormsg instead 
1233         of message local variable because Pyrex can get confused with other 
1234         message variables (initial patch by Robert McQueen 
1235         <robert.mcqueen at collabora.co.uk>)
1236         (MessageIter::parse_signature_block): new method for getting the next
1237         block in a signiture.
1238         (MessageIter::append_strict): new method for appending values strictly
1239         using the passed in signature instead of guessing at the type
1240         (MessageItter:: append_dict, append_struct, append_array): use 
1241         signatures to marshal children if the signature is available
1242         
1243         * python/exceptions.py (IntrospectionParserException): new exception
1244
1245         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1246         introspected signatures if available, else we fall back to the
1247         old way of doing things.
1248         (ProxyObject::_introspect_reply_handler ): parse introspection data
1249         
1250         * python/service.py (ObjectType::_reflect_on_method): Properly
1251         terminate <method> if there are no args in the reflection data
1252
1253         * test/python/test-client.py: add tests for talking with the GLib
1254         test server.  This gives us better coverage for introspection since
1255         python to python will always generate arguments as variants.  It also
1256         allows us to test the robustness of the GLib bindings and interlanguage
1257         communications.
1258
1259         
1260 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1261
1262         * bus/driver.c (bus_driver_handle_introspect): Add signals
1263         to the introspect data. (patch from Daniel P. Berrange 
1264         <dan at berrange.com>)
1265
1266         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1267         
1268         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1269         _dbus_connection_run_builtin_filters): Changed these to
1270         be unlock_no_update functions and call 
1271         _dbus_connection_send_unlocked_no_update instead of
1272         dbus_connection_send to avoid locking errors.
1273         
1274         * doc/TODO: Removed the make Ping test TODO
1275         
1276 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1277
1278         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1279         We now copy the message from a DBusError and then free 
1280         the error object befor throwing the error
1281
1282         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1283         DBusBindingOutputMode enum which was causing a warning.
1284         #include <time.h> so using time_t is explicitly defined
1285
1286 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1287
1288         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1289         - dbus/dbus-bus.c
1290         (internal_bus_get): new method that take over the heavy lifting
1291         of dbus_bus_get and adds the ability to get a private connection
1292         to the bus
1293         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1294         interface as in previous versions
1295         (dbus_bus_get_private): new method that is a wrapper to 
1296         internal_bus_get to get a private connection to the bus
1297
1298         - dbus/dbus-bus.h
1299         (dbus_bus_get_private): add as a public libdbus interface
1300
1301         - dbus-1.pc.in: output system_bus_default_address and 
1302         sysconfdir variables so apps can use them when compiling
1303
1304 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1305         * dbus/qt: New Qt bindings
1306
1307 2005-09-12  Waldo Bastian  <bastian@kde.org>
1308
1309         * dbus/dbus-marshal-validate.c,
1310         doc/dbus-specification.xml, test/Makefile.am,
1311         test/test-names.c: allow hyphens in bus names.
1312
1313 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1314
1315         * test/data/auth/fallback.auth-script: we don't
1316         retry the EXTERNAL method when we know its going
1317         to fail anymore.
1318
1319 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1320
1321         * dbus/dbus-connection-internal.h: rename
1322         (add|remove|toggle)_(watch|timeout) to unlocked()
1323         
1324         * dbus/dbus-connection.c: ditto.
1325         
1326         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1327         Update some callers for the renaming.
1328
1329 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1330
1331         * dbus/dbus-auth.c: (record_mechanisms): don't
1332         retry the first auth mechanism because we know
1333         we're just going to get rejected again.
1334         
1335         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1336         Fix thinko ... and what a nasty little bugger to
1337         track down you were ...
1338
1339         * dbus/dbus-connection.c:
1340         (_dbus_connection_add_watch),
1341         (_dbus_connection_remove_watch): add note about
1342         these needing the connection to be locked.
1343         (_dbus_connection_get_dispatch_status_unlocked):
1344         set status to DATA_REMAINS when we queue the
1345         disconnected message.
1346         
1347         * bus/dispatch.c:
1348         (bus_dispatch): fix warning.
1349         (check_existent_service_no_auto_start):
1350         Expect ChildSignaled error too.
1351         (check_existent_hello_from_self): fix another
1352         couple of warnings.
1353         
1354 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1355
1356         Patches from James Willcox <snorp@snorp.net>
1357
1358         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1359
1360         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1361         support array "out" parameters.
1362
1363         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1364         for 16-bit int support.
1365
1366 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1367
1368         * Released 0.50
1369
1370         * Patch from Steve Grubb:
1371         - bus/activation.c (bus_activation_service_reload_test): clean up
1372         some indentation
1373         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1374         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1375         buffer overflows in the test suite.  This is non critical because
1376         it can not be exploited and this code is only run when doing a 
1377         make check.
1378
1379         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1380         - configure.in: Don't check and link against kdecore, only qt headers
1381         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1382         - gcj/org/freedesktop/dbus/Makefile.am:
1383         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1384         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1385         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1386         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1387         - tools/Makefile.am: Add platform extentions to binaries 
1388         (i.e. .exe on windows)
1389
1390         * configure.in: 
1391         - Make it so if no suitable version of python is found we only 
1392         disable building python instead of exiting the configure script
1393         - Require version 2.4 of glib for glib bindings
1394         - Up version to 0.50
1395
1396         * python/__init__.py: Sync version with libdbus to (0,50,0)
1397         
1398 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1399
1400         * dbus/dbus-object-tree.c (find_subtree_recurse):
1401         a couple of optimizations (bug #710):
1402         - do a binary search in the tree
1403         - insert a new child at the right place directly, no need for
1404           qsort anymore
1405         - do the "double alloc" thing when allocating children
1406
1407 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1408
1409         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1410
1411         * python/dbus_bindings.pyx: Memory management foo
1412         (global): remove hacky _user_data_references global list
1413         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1414         tuples. Unref user_data
1415         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1416         (Connection::__del__): Remove and replace with __dealloc__ method
1417         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1418         to keep tuple from being deallocated instead of the global var hack
1419         (Connection::register_object_path): Stuff user_data into a tuple.
1420         Use Py_INCREF to keep tuple from being deallocated instead of the 
1421         global var hack
1422         (Connection::register_fallback): Stuff user_data into a tuple.
1423         Use Py_INCREF to keep tuple from being deallocated instead of the 
1424         global var hack
1425         (GIL_safe_pending_call_notification): Don't unref the message
1426         because it gets unreffed when going out of scope.  Py_XDECREF
1427         the user_data
1428         (PendingCall::__del__): Remove and replace with __dealloc__ method
1429         (PendingCall::set_notify): ref the pending call because we will
1430         need it to stick around for when the notify callback gets called
1431         (Message::__del__): Remove and replace with __dealloc__ method
1432
1433         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1434         gthreads_init to match up with the dbus call
1435
1436         * python/glib.py (init_threads): Changed to threads_init to match
1437         up with gobject.threads_init().  init_threads is kept for backwards
1438         compat but will most likely be deprecated in the future
1439
1440         * test/python/test-client.py: 
1441         - revamp to use Python's unittest functionality
1442         - add async call tests
1443         - setup threads in glib and dbus so we make sure locks are working
1444         
1445 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1446
1447         * python/dbus_bindings.pyx 
1448         (_pending_call_notification, cunregister_function_handler, 
1449         cmessage_function_handler): All callback functions have been rearranged 
1450         to workaround a bug in Pyrex when working with the GIL which is Python's 
1451         global lock when dealing with threads.  They have been split into
1452         a wrapper function (which assumes the name of the old function) and
1453         a _GIL_safe_<function name> function which contains the functionality
1454         of the old function.  This ensures that Pyrex does not write code
1455         the lock is released.
1456         
1457
1458 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1459
1460         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1461         GIL global lock when calling back into Python
1462
1463 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1464
1465         * Release 0.36.2
1466
1467         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1468
1469         * bus/policy.c (bus_policy_allow_user): change default "user is
1470         allowed" to be "user has same uid as the bus itself"; any
1471         allow/deny rules will override.
1472
1473         * bus/session.conf.in: don't allow all users, since now by default
1474         the user that ran the bus can connect.
1475
1476 2005-08-26  Colin Walters  <walters@verbum.org>
1477
1478         * tools/dbus-print-message.c (print_message): Flush stdout
1479         after printing a message, so that redirecting to a file, then
1480         hitting Ctrl-C works.
1481
1482 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1483
1484         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1485         (EmptyMessage): new class that subclasses Message.  This is a workaround
1486         to a Pyrex bug that fails to call __del__ when the Message object goes out
1487         of scope.  For some reason subclassing Message fixes this bug
1488         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1489         - s/Message(_create=0)/EmptyMessage everywhere else
1490         
1491         * test/python/test-{server|client}.py: add the python/.libs directory
1492         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1493         get picked up from the system
1494
1495 2005-08-25  Colin Walters  <walters@verbum.org>
1496
1497         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1498         to Ryan Lortie for the suggestion.
1499
1500 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1501
1502         * test/python: Add python regression test
1503
1504         * configure.in: Add test/python/Makefile
1505
1506         * test/Makefile.am: Add the python directory to SUBDIRS
1507
1508 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1509
1510         * Release 0.36.1
1511
1512         * python/_dbus.py: 
1513         (Interface::connect_to_signal): propigate keywords for match on args
1514         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1515
1516         * python/proxies.py (ProxyObject::connect_to_signal):
1517         propigate keywords for match on args
1518
1519         * Makefile.am: point everything to pyexecdir since python borks
1520         on multilib
1521
1522 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1523
1524         * Release 0.36
1525
1526 2005-08-23  Colin Walters  <walters@verbum.org>
1527
1528         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1529
1530 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1531
1532         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1533         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1534         of defining DBusConnection ourselves.
1535
1536 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1537
1538         * python/dbus.pth: New path file to fix up problems when installing
1539         c libraries to lib64 and python files to lib.
1540
1541         * python/Makefile.am: install dbus.pth in the correct spot
1542
1543 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1544         * ChangeLog: clean up my last entry a bit
1545
1546         * doc/introspect.xsl: New stylesheet for converting introspection data
1547         into browser renderable xhtml. Contributed by Lennart Poettering.
1548
1549         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1550         Poettering.
1551
1552         * doc/dbus-tutorial.xml: 
1553         - Add Colin Walter to the Authors section for authoring the GLib
1554         section
1555         - Add descriptions of the new signature and type functionality
1556         in the Python complex type mapping section
1557         - Add a sidenote on the new args matching functionality in 
1558         the Python bindings
1559         - Fixed up some of the examples to use the gobject.MainLoop
1560         instead of gtk.main
1561         
1562         * python/_dbus.py:
1563         (Bus::_create_args_dict): New. Converts a hash of arg matches
1564         to a more useable format
1565         (Bus::add_signal_receiver): add a **keywords parameter for catching
1566         arg match parameters
1567         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1568         arg match parameters
1569         
1570         * python/matchrules.py:
1571         (MatchTree::exec_matches): Check for arg matches
1572         (SignalMatchRule::add_args_match): New method
1573         (SignalMatchRule::execute): Added args_list parameter as an optimization
1574         so we don't have to marshal the args more than once
1575         (SignalMatchRule::match_args_from_list): New method that checks to see
1576         if the rule's arg matches match an argument list.  Only arguments
1577         set in the rule are checked.
1578         (SignalMatchRule::match_args_from_rule): New method that checks to see
1579         if the rule's arg matches match another rule's.  All args have to match
1580         in order for this method to return true.  If either rule has more args
1581         then it is not a match.
1582         (SignalMatchRule::is_match): Add args match
1583         (SignalMatchRule::repr): Add args to the final output if they exist
1584
1585 2005-08-17  Ross Burton  <ross@burtonini.com>
1586
1587         * glib/dbus-gproxy.c:
1588         (dbus_g_proxy_call_no_reply): unref the message once sent.
1589         (dbus_g_proxy_call): protect against NULL proxy.
1590
1591 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1592
1593         * python/__init__.py: Version updated (0, 43, 0)
1594         
1595         * python/dbus_bindings.pyx: 
1596         - Fixed type objects to have self passed into __init__
1597         - Added the Variant type
1598         - Add the ability to specify types or signatures for Array, Variant 
1599         and Dictionary
1600         (Connection::send_with_reply_handlers): return a PendingCall object
1601         (_pending_call_notification): handle the case when an error is returned 
1602         without an error message in the body
1603         (MessageIter::get_boolean): return True or False instead of an integer
1604         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1605         and add checks for objects with embeded signatures or types (Array, 
1606         Variant and Dictionary)
1607         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1608         (MessageIter::append_dict): handle embeded types or signatures
1609         (MessageIter::append_array): handle embeded types or signatures
1610         (MessageIter::append_variant): new method
1611         
1612         * python/proxies.py:
1613         (DeferedMethod): New. Dummy executable object used when queuing calls 
1614         blocking on introspection data
1615         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1616         or shorter timeouts for method calls
1617         (ProxyObject): Add first pass at an introspection state machine
1618         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1619         introspection. 
1620         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1621         the usual mechanisms for sending messages.  This is to avoid a deadlock
1622         where the Intospect call would be queued waiting for the Introspect 
1623         call to finish ;-)
1624         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1625         when introspection returns with no error
1626         (ProxyObject::_introspect_error_handler): New.  This method is called 
1627         when introspection encounters an error
1628         (ProxyObject::__getattr__): Code to handle different introspection 
1629         states.  Queue async calls or block blocking calls if we are 
1630         introspecting.  Pass through as normal if we are not or are done with 
1631         introspecting.
1632         
1633         * python/service.py: Import signal and method from decorators.py
1634
1635         * python/types.py: Add Variant type
1636
1637 2005-08-16  Colin Walters  <walters@verbum.org>
1638
1639         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1640         DBusError message is NULL.
1641
1642 2005-08-09  Havoc Pennington  <hp@redhat.com>
1643
1644         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1645         malloc'd copy of the name parameter
1646
1647 2005-08-09  Havoc Pennington  <hp@redhat.com>
1648
1649         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1650         warning if the reply serial is set to 0
1651
1652 2005-08-04  Colin Walters  <walters@verbum.org>
1653
1654         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1655         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1656         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1657         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1658         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1659         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1660         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1661         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1662         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1663         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1664         
1665         Prefix name with _ to ensure they're not exported.  All callers
1666         updated.
1667
1668         * glib/dbus-gvalue.c (typecode_to_gtype)
1669         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1670         (signature_iter_to_g_type_dict)
1671         (signature_iter_to_g_type_array)
1672         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1673         (dbus_gtypes_from_arg_signature):
1674         Move to dbus-gsignature.c.
1675
1676         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1677         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1678         (dbus_binding_tool_output_glib_client): Ditto.
1679
1680         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1681         and dbus-gsignature.h
1682
1683         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1684         unused variable.
1685
1686 2005-08-03  Colin Walters  <walters@verbum.org>
1687
1688         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1689         catch any incompatible changes accidentally made.
1690
1691 2005-08-03  Havoc Pennington  <hp@redhat.com>
1692
1693         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1694         typo, from Julien Puydt
1695
1696         * bus/connection.c (bus_connection_disconnected): we were always
1697         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1698
1699 2005-08-01  Colin Walters  <walters@verbum.org>
1700
1701         Patch from Joe Markus Clarke:   
1702         
1703         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1704         use-after-free.
1705
1706 2005-08-01  Colin Walters  <walters@verbum.org>
1707         
1708         Patch from Joe Markus Clarke:   
1709         
1710         * tools/dbus-send.c (main): 
1711         
1712         Don't use C99 style initializers (bug #3933).
1713         
1714 2005-08-01  Colin Walters  <walters@verbum.org>
1715
1716         Patch from Joe Markus Clarke:   
1717
1718         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1719         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1720         * glib/dbus-gobject.c (write_interface):
1721
1722         Don't use C99 style initializers (bug #3933).
1723
1724 2005-07-31  Havoc Pennington  <hp@redhat.com>
1725
1726         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1727         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1728
1729 2005-07-30  Havoc Pennington  <hp@redhat.com>
1730
1731         * fix a bunch of Doxygen warnings and mistakes
1732
1733 2005-07-30  Havoc Pennington  <hp@redhat.com>
1734
1735         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1736         DBUS_BUILD_TESTS since it's now used in production code
1737
1738 2005-07-29  Havoc Pennington  <hp@redhat.com>
1739
1740         * test/glib/test-profile.c (write_junk): initialize the junk
1741         buffer so valgrind doesn't have a breakdown
1742
1743 2005-07-29  Havoc Pennington  <hp@redhat.com>
1744
1745         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1746         (match_rule_matches): remove unused arg
1747         (test_matching): add tests for match_rule_matches()
1748
1749         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1750         do arg0='foo' arg5='bar' in the match rules
1751         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1752
1753         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1754
1755 2005-07-29  Ross Burton  <ross@openedhand.com>
1756
1757         * dbus/dbus-connection.c:
1758         Don't create a DBusCondVar which is never used.
1759
1760 2005-07-27  Ross Burton  <ross@openedhand.com>
1761
1762         * dbus/dbus-message.c:
1763         Reduce the size of the maximum cached message to 10K.
1764
1765 2005-07-25  Ross Burton  <ross@openedhand.com>
1766
1767         * glib/dbus-gproxy.c:
1768         Remove matches when all proxies are unregistered.
1769
1770 2005-07-24  Colin Walters  <walters@verbum.org>
1771
1772         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1773         typedata; recursive arrays won't have it.
1774
1775         * test/glib/test-dbus-glib.c:
1776         * test/glib/test-service-glib.c:
1777         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1778         
1779 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1780
1781         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1782         proxies.py, service.py: Cleanup of code after running it through the
1783         pyflakes code checker mostly dealing with undefined names.  
1784         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1785
1786 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1787
1788         * NEWS: Update to 0.35.2
1789
1790 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1791
1792         * python/_dbus.py: Remove import of the dbus.services
1793         module as it no longer exists (patch from Dimitur Kirov)
1794
1795         * python/service.py (Object::__init__): Fixed typo
1796         s/name/bus_name (patch from Dimitur Kirov)
1797
1798         * python/examples/example-signal-emitter.py: import dbus.glib
1799         to get the main loop and use glib mainloop instead of gtk so
1800         X doesn't have to be running.
1801
1802         * python/examples/example-signal-recipient.py: import dbus.glib
1803         to get the main loop and use glib mainloop instead of gtk so
1804         X doesn't have to be running. Import the decorators module
1805         directly.
1806
1807         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1808         didn't pick up on but are needed to build
1809
1810         * configure.in: upped version to 0.35.2
1811
1812         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1813         added Colin Walters' SELinux API rename patch from head 
1814         s/unix sercurity context/selinux security context/
1815
1816 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1817
1818         * python/Makefile.am: dbus_binding.pxd.in should be included 
1819         in EXTRA_DIST not dbus_binding.pxd
1820         fix up $(srcdir) hopefully for the last time
1821
1822         * NEWS: Update to 0.35.1
1823
1824 2005-07-16  Colin Walters  <walters@verbum.org>
1825
1826         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1827         from bus_driver_handle_get_connection_unix_security_context.  Update for
1828         error usage.
1829         (message_handlers): Update for renames.
1830
1831         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1832         _dbus_string_init failure correctly.
1833         (bus_selinux_append_context): Convert SID to context.  Append it
1834         as a byte array.
1835         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1836         hasn't been called.
1837
1838         * bus/selinux.h: Update prototype.
1839
1840         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1841         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1842
1843 2005-07-15  Colin Walters  <walters@verbum.org>
1844
1845         * doc/TODO: Add note about convenience wrappers.
1846
1847 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1848
1849         * NEWS: Update to 0.35
1850
1851 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1852
1853         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1854         so distcheck doesn't fail
1855
1856         * glib/examples/Makefile.am: Add example-service.xml and 
1857         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1858
1859         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1860         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1861
1862         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1863         compiler looks in the right places during distcheck
1864
1865 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1866
1867         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1868         to fail
1869
1870 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1871
1872         * python/examples/example-service.py,
1873         python/examples/example-signal-emitter.py: Fixed up examples
1874         for API changes
1875
1876 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1877
1878         * python/__init__.py: Upped to version (0,42,0) because of
1879         the API change
1880
1881 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1882
1883         * ChangeLog: fix date in last entry
1884
1885         * configure.in, bus/system.conf.in: add the ability to configure 
1886         the system bus user at compiletime with the --with-dbus-user flag
1887         (patch from Kristof Vansant)
1888
1889 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1890
1891         * bus/dispatch.c, test/test-service.c: Add testcase
1892         for sending messages to oneself (TODO item).
1893
1894         * python/service.py (class Object): Swap ordering of bus_name 
1895         and object_path parameters to better support inheritance.
1896
1897         * doc/dbus-tutorial.xml: change Python docs to reflect change
1898         in parameter ordering and fix the inheritance section.
1899
1900         * doc/TODO: remove sending message to oneself TODO item
1901
1902 2005-07-15  Ross Burton  <ross@openedhand.com>
1903
1904         * glib/dbus-gproxy.c:
1905         Fix a leak when calling methods via the proxy.
1906
1907 2005-07-15  Colin Walters  <walters@verbum.org>
1908
1909         * bus/selinux.c (bus_selinux_append_context): Wrap in
1910         HAVE_SELINUX.
1911
1912 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1913
1914         * python/_dbus.py (Bus::remove_signal_receiver):
1915         don't add a callback to the match if none has been passed in
1916         
1917         * python/matchrules.py (SignalMatchTree::remove): if the rule
1918         being matched does not have a callback treat it as a wildcard
1919         fix matching logic
1920
1921         * doc/dbus-tutorial.xml: Add Python tutorial
1922
1923 2005-07-14  Colin Walters  <walters@verbum.org>
1924
1925         * bus/driver.c
1926         (bus_driver_handle_get_connection_unix_security_context): New function.
1927         (message_handlers): Add.
1928
1929         * bus/selinux.c (bus_selinux_append_context): New function; appends
1930         security context to message.
1931
1932         * bus/selinux.h: Prototype.
1933
1934         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1935
1936 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1937
1938         * bus/activation.c: clean up all tabs to be 8 spaces 
1939         (bus_activation_activate_service): make sure we clean up
1940         if activation fails
1941
1942         * bus/dispatch.c: clean up all tabs to be 8 spaces 
1943         (check_shell_fail_service_auto_start): New function
1944         tests to make sure we get fail properly when trying to auto start a service
1945         with a faulty command line
1946         (check_shell_service_success_auto_start): New function tests to make sure
1947         auto started services get the arguments on the command line
1948
1949         * test/test-shell-service.c: Added service for testing auto-starting with 
1950         command line arguments
1951
1952         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
1953         test/data/valid-service-files/debug-shell-echo-success.service.in:
1954         Added service files for testing auto-starting with command line arguments
1955
1956         * */.cvsignore: added a bunch of generated files to various .cvsignore files
1957
1958 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
1959
1960         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1961         
1962         * dbus/Makefile.am: added new files to build.
1963
1964         * bus/activation.c (bus_activation_activate_service): support
1965         activation commands with parameters.
1966
1967         * test/shell-test.c: added test program for the shell parsing
1968         code.
1969
1970 2005-07-13  David Zeuthen  <davidz@redhat.com>
1971
1972         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1973         64 bit signed and unsigned parameters
1974
1975 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
1976
1977         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1978
1979         * python/service.py (class Name): renamed BusName to make it clearer
1980         what the object is for (a name on the bus)
1981
1982         * python/examples/example-service.py,
1983         python/examples/example-signal-emitter.py: change the Name object to
1984         BusName
1985
1986 2005-07-12  Colin Walters  <walters@verbum.org>
1987
1988         Patch from Jim Gettys <Jim.Gettys@hp.com>.
1989
1990         * tools/dbus-launch.c: Include sys/select.h.
1991
1992 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
1993         * python/dbus_bindings.pyx.in: removed
1994
1995         * python/dbus_bindings.pyx: Added.
1996         - Fixed some memleaks (patch from 
1997         Sean Meiners <sean.meiners@linspireinc.com>)
1998         - Broke out the #include "dbus_h_wrapper.h" and put it in its
1999         own pxd file (Pyrex definition)
2000         - Broke out glib dependancies into its own pyx module
2001         
2002         * python/dbus_bindings.pdx: Added.
2003         - Defines C class Connection for exporting to other modules
2004
2005         * python/dbus_glib_bindings.pyx: Added.
2006         - New module to handle lowlevel dbus-glib mainloop integration
2007
2008         * python/glib.py: Added.
2009         - Registers the glib mainloop when you import this module
2010
2011         * python/services.py: Removed (renamed to service.py)
2012         
2013         * python/service.py: Added.
2014         - (class Server): renamed Name
2015
2016         * python/__init__.py: Bump ro version (0,41,0)
2017         -don't import the decorators or service module
2018         by default.  These now reside in the dbus.service namespace
2019
2020         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2021         setup function on creation 
2022
2023         * python/examples/example-service.py,
2024         python/examples/example-signal-emitter.py: update examples
2025
2026         * python/examples/gconf-proxy-service.py,
2027         python/examples/gconf-proxy-service2.py: TODO fix these up
2028
2029         * doc/TODO: Addition
2030         - Added a Python Bindings 1.0 section
2031         - added "Add match on args or match on details to match rules"
2032
2033
2034 2005-07-12  Colin Walters  <walters@verbum.org>
2035
2036         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2037         (statemachine-glue.h): 
2038         * glib/examples/Makefile.am (example-service-glue.h) 
2039         (example-signal-emitter-glue.h): 
2040         * glib/Makefile.am (dbus-glib-error-switch.h): 
2041         Add libtool --mode=execute so we use the built library instead
2042         of any installed one.
2043
2044 2005-07-11  Colin Walters  <walters@verbum.org>
2045
2046         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2047         (dbus_g_value_types_init): Remove assertion.
2048         (dbus_g_value_get_g_type, dbus_g_value_open)
2049         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2050         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2051         functions related to DBusGValue.  Now we marshal/demarshal
2052         structures as GValueArray.
2053         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2054         structures.
2055         (signature_iter_to_g_type_array): Don't call
2056         signature_iter_to_g_type_struct.
2057         (signature_iter_to_g_type_struct): Delete.
2058         (dbus_gvalue_to_signature): Delete.
2059         (dbus_gvalue_to_signature): New function with same name as other
2060         one; we can convert structures to signatures.
2061         (demarshal_valuearray): New function.
2062         (get_type_demarshaller): Use it.
2063         (demarshal_recurse): Delete.
2064         (marshal_proxy): New function.
2065         (marshal_map): Warn if we can't determine signature from type.
2066         (marshal_collection_ptrarray): Ditto.
2067         (marshal_collection_array): Ditto.
2068         (get_type_marshaller): Use marshal_valuearray.
2069         (marshal_recurse): Delete.
2070         (_dbus_gvalue_test): Add some tests.
2071
2072         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2073         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2074         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2075         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2076         (dbus_g_value_free): Remove prototypes.
2077
2078         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2079         G_TYPE_VALUE_ARRAY.
2080
2081         * glib/examples/example-service.c:
2082         * glib/examples/example-client.c: Implement GetTuple.
2083
2084         * test/glib/test-dbus-glib.c:
2085         * test/glib/test-service-glib.c:
2086         * test/glib/test-service-glib.xml: Add structure tests.
2087
2088 2005-07-10  Colin Walters  <walters@verbum.org>
2089
2090         * doc/TODO: Knock off some GLib items with this patch.
2091
2092         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2093         (_dbus_gvalue_signals_error): New functions.
2094
2095         * glib/dbus-gvalue-utils.h: Prototype them.
2096
2097         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2098         and change to not output const/retval flags for input args.  All
2099         callers updated.
2100         (invoke_object_method): Refactor to handle return values.  Add
2101         some more comments in various places.  Remove debug g_print.
2102
2103         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2104
2105         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2106         Handle G_TYPE_NONE.
2107         (compute_gsignature): New function; refactored from code from
2108         compute_marshaller and compute_marshaller_name.  Enhance to
2109         handle return values and async ops more cleanly.  Update for
2110         async ops returning NONE instead of BOOLEAN.
2111         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2112         and output appropriate string.
2113         (generate_glue): Handle return value annotation.  Also don't dump
2114         constness flag for input arguments.
2115
2116         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2117         files shared between installed library and utilities.
2118         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2119         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2120         binding tool can access gtype utility functions.
2121
2122         * test/glib/test-service-glib.c: 
2123         * test/glib/test-service-glib.xml: 
2124         * test/glib/test-dbus-glib.c: Add some tests for return values.
2125
2126 2005-07-09  Colin Walters  <walters@verbum.org>
2127
2128         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2129         argument if available, not method.
2130
2131         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2132         (invoke_object_method): First, remove some redundant
2133         GValues (object_value, error_value) in favor of working on
2134         array directly.  Second, rework constness to be less buggy.
2135         Now we iterate directly over the argument metadata instead
2136         of parallel iterating over output signature and metadata.
2137
2138         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2139
2140         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2141         annotation on input args.
2142         
2143 2005-07-09  Colin Walters  <walters@verbum.org>
2144
2145         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2146         Define.
2147
2148         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2149         annotation.
2150
2151         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2152         (method_dir_signature_from_object_info): Handle arg_iterate change.
2153         (write_interface): Ditto.
2154         (lookup_object_info): Don't barf if format_version is > 0.
2155         (invoke_object_method): Handle arg constness.
2156
2157         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2158         (arg_info_new): Create.
2159         (arg_info_unref): Destroy.
2160         (arg_info_get_annotations, arg_info_get_annotation) 
2161         (arg_info_add_annotation): New functions.
2162
2163         * glib/dbus-gidl.h: Prototype them.
2164
2165         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2166         args, disallow them in properties.
2167         (parse_annotation): Handle arg annotations.
2168
2169         * test/glib/test-service-glib.xml: 
2170         * test/glib/test-service-glib.c: Update to make some methods
2171         const.
2172
2173 2005-07-08  Colin Walters  <walters@verbum.org>
2174
2175         * test/glib/test-service-glib.xml: 
2176         * test/glib/test-service-glib.c:
2177         * test/glib/test-dbus-glib.c: Test a{sv}.
2178
2179         * glib/examples/statemachine/statemachine.c:
2180         * glib/examples/statemachine/statemachine-server.c:
2181         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2182         add progress bar, etc.
2183
2184         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2185         needed anymore due to generic array/map marshalling.
2186         (dbus_g_value_types_init): Don't register basic arrays or the
2187         string/string hash.
2188         (dbus_gtype_from_signature_iter): Don't try to recurse into
2189         variants.
2190         (dbus_gtype_to_signature): Check collection/map before type
2191         metadata.
2192         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2193         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2194         generic map creation/append functions instead of hash table
2195         specifically.
2196         (get_type_demarshaller): Handle maps.
2197         (demarshal_collection): Dispatch on collection type to either
2198         demarshal_collection_ptrarray or demarshal_collection_array.
2199         (get_type_marshaller): Handle maps.
2200         (marshal_collection): Dispatch collection type to either
2201         marshal_collection_ptrarray or marshal_collection_array.
2202         (_dbus_gvalue_test): New test.
2203
2204         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2205         (hash_free_from_gtype): Use it to free GValues.
2206         (hashtable_append): New function.
2207         (ptrarray_append): Fix prototype.
2208         (slist_append): Ditto.
2209         (_dbus_gvalue_utils_test): Extend tests.
2210
2211         * glib/dbus-gtype-specialized.c
2212         (dbus_g_type_specialized_init_append): Renamed from
2213         dbus_g_type_specialized_collection_init_append.  Remove const from
2214         value, since we steal it.
2215         (dbus_g_type_specialized_map_append): New function.
2216
2217         * glib/dbus-gtype-specialized.h: Update prototypes.
2218         Add DBusGTypeSpecializedMapAppendFunc.
2219
2220         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2221         _dbus_gvalue_test.
2222         
2223         * glib/dbus-gtest.h: Prototype it.
2224
2225 2005-07-08  Ross Burton  <ross@openedhand.com>
2226
2227         * dbus/dbus-glib.h:
2228         Add DBysGAsyncData for the async bindings.
2229
2230         * glib/dbus-binding-tool-glib.c:
2231         Re-enable the async bindings.
2232
2233         * test/glib/test-dbus-glib.c:
2234         Add a test for the generated async bindings.
2235
2236 2005-07-08  Colin Walters  <walters@verbum.org>
2237
2238         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2239         connection concept.
2240         
2241 2005-07-08  Colin Walters  <walters@verbum.org>
2242         
2243         * tools/Makefile.am: Kill of print-introspect in favor of using
2244         dbus-send --print-reply=literal.
2245
2246         * test/glib/test-service-glib.xml: 
2247         * test/glib/test-service-glib.c (my_object_get_objs): New test
2248         for "ao".
2249
2250         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2251         (main): Test GetObjs.
2252
2253         * glib/examples/statemachine/Makefile.am:
2254         * glib/examples/statemachine/sm-marshal.list:
2255         * glib/examples/statemachine/statemachine-client.c:
2256         * glib/examples/statemachine/statemachine-server.c:
2257         * glib/examples/statemachine/statemachine-server.xml:
2258         * glib/examples/statemachine/statemachine.c:
2259         * glib/examples/statemachine/statemachine.h:
2260         * glib/examples/statemachine/statemachine.xml:
2261
2262         New example.
2263
2264         * glib/examples/example-service.c (main): Move invocation
2265         of dbus_g_object_type_install_info earlier, to emphasize it
2266         should only be done once.
2267
2268         * glib/examples/example-signal-emitter.c (main): Ditto.
2269
2270         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2271
2272         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2273         (dbus_gvalue_marshal): Update prototypes.
2274
2275         * glib/dbus-gvalue.c: Update all marshalling functions to take
2276         const GValue instead of GValue.
2277         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2278         types.
2279         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2280         change.
2281         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2282         Return a newly-allocated string.
2283         (demarshal_proxy, demarshal_object_path, demarshal_object)
2284         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2285         we get the wrong types from message.
2286         (get_type_demarshaller): New function, extracted from
2287         dbus_gvalue_demarshal.
2288         (demarshal_collection): New function, demarshals generic
2289         collection.
2290         (dbus_gvalue_demarshal): Just invoke result of
2291         get_type_demarshaller.  Throw error if we don't have one.
2292         (marshal_garray_basic): Abort on OOM.
2293         (get_type_marshaller): New function, extracted from
2294         dbus_gvalue_marshal.
2295         (collection_marshal_iterator, marshal_collection): New functions;
2296         implements generic marshalling for an iteratable specialized
2297         collection.
2298         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2299
2300         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2301         G_TYPE_STRING.
2302         (ptrarray_value_from_gvalue): Ditto.
2303         (ptrarray_append, ptrarray_free): New functions.
2304         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2305         (slist_append, slist_end_append, slist_free): New functions.
2306         (dbus_g_type_specialized_builtins_init): Add append fuctions
2307         for GPtrArray and GSList.  Register GSList.
2308         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2309
2310         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2311         New.
2312         (dbus_g_type_specialized_collection_init_append)
2313         (dbus_g_type_specialized_collection_append)
2314         (dbus_g_type_specialized_collection_end_append): Prototype.
2315         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2316         end_append_func.
2317
2318         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2319         (dbus_g_type_specialized_collection_append) 
2320         (dbus_g_type_specialized_collection_end_append): New functions.
2321         (dbus_g_type_map_value_iterate): Take const GValue.
2322         (dbus_g_type_collection_value_iterate): Ditto.
2323
2324         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2325         _dbus_gvalue_utils_test.
2326         
2327         * glib/dbus-gtest.h: Prototype it.
2328
2329         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2330         using uninitialized owner_list.
2331         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2332         public API.
2333         (dbus_g_proxy_end_call_internal): Update to use error set
2334         from dbus_gvalue_demarshal instead of setting it here.
2335         (dbus_g_proxy_begin_call): Move return_if_fail here.
2336
2337         * glib/dbus-gobject.c (write_interface): Update for
2338         dbus_gtype_to_signature returning new string.
2339
2340         * configure.in: Add glib/examples/statemachine.
2341
2342 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2343
2344         * configure.in: Add a configure option, --with-console-auth-dir
2345         
2346         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2347         new setting.  Patch from Kay Sievers.
2348
2349 2005-07-06  Colin Walters  <walters@verbum.org>
2350
2351         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2352         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2353         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2354         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2355         Delete in favor of dbus_g_proxy_begin_call and
2356         dbus_g_proxy_cancel_call.
2357         (DBusGProxyCall, DBusGProxyCallNotify): New.
2358         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2359         data, and destroy function.  This replaces
2360         dbus_g_pending_call_set_notify.
2361         (dbus_g_proxy_cancel_call): Prototype.
2362         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2363
2364         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2365         pending_calls map.
2366         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2367         internal proxy for calls to the bus. Remove
2368         pending_nameowner_calls, now the internal proxy keeps track.
2369         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2370         pending_nameowner_calls.
2371         (got_name_owner_cb): Update prototype, and use
2372         dbus_g_proxy_end_call.
2373         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2374         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2375         favor of using internal proxy.
2376         (dbus_g_proxy_manager_unregister): Update to use
2377         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2378         (dbus_g_proxy_init): Initialize pending calls map.
2379         (dbus_g_proxy_constructor): New.
2380         (dbus_g_proxy_class_init): Add get/set property functions,
2381         constructor, and add NAME, PATH, and INTERFACE properties.
2382         (cancel_pending_call): New function.
2383         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2384         cancel them.
2385         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2386         (GPendingNotifyClosure): New structure.
2387         (d_pending_call_notify, d_pending_call_free): Moved here from
2388         dbus-glib.c.
2389         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2390         ordering.
2391         (manager_begin_bus_call): New internal function for talking to
2392         internal bus proxy.
2393         (dbus_g_proxy_new): Construct object using GObjet properties.
2394         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2395         Create closure of same, and insert call into map of pending calls.
2396         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2397         call.  Look up pending call in current set.  Remove it when we've
2398         completed.
2399         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2400         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2401         and destroy function directly.
2402         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2403         (dbus_g_proxy_call): Invoke with NULL callback.
2404         (dbus_g_proxy_cancel_call): New function, replaces
2405         dbus_g_pending_call_cancel.
2406
2407         * glib/dbus-gparser.c (validate_signature): Fix call to
2408         dbus_set_g_error.
2409
2410         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2411         New quark for attaching metadata to GType.
2412         (info_hash): Delete.
2413         (lookup_object_info): Look up using quark.
2414         (dbus_g_object_type_install_info): Check that a type is classed,
2415         not that it's an object.  Also just install type data using quark
2416         instead of using global hash.
2417
2418         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2419         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2420         (GPendingNotifyClosure): Delete.
2421         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2422         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2423
2424         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2425         client method generation until we can fix it...
2426         
2427         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2428         (load_from_service_thread_func): Ditto.
2429
2430         * tools/dbus-names-model.c (struct NamesModel): Hold
2431         DBusGProxyCall.
2432         (have_names_notify): Update prototype, use
2433         dbus_g_proxy_cancel_call.
2434         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2435
2436         * tools/dbus-monitor.c (filter_func): Update for print_message
2437         API change.
2438
2439         * test/glib/test-dbus-glib.c: Add more tests for async
2440         invocations.  Update many begin_call/end_call pairs to just use
2441         dbus_g_proxy_call.
2442
2443         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2444         allows us to dump print-introspect.c.
2445
2446         * tools/dbus-print-message.h (print_message): Add literal argument
2447         to print_message which is intended to allow printing arguments without
2448         metadata like "string=".
2449
2450         * tools/dbus-print-message.c (print_iter): Add literal argument.
2451         (print_message): Allow printing string messages literally.
2452
2453 2005-07-05  Colin Walters  <walters@verbum.org>
2454
2455         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2456         Remove value refcount leak, original patch from Jorn Baayen
2457         <jorn@openedhand.com>.  Also remove useless extra value in favor
2458         of prepending to value array directly.
2459
2460 2005-07-02  Colin Walters  <walters@verbum.org>
2461
2462         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2463
2464 2005-07-01  Colin Walters  <walters@verbum.org>
2465
2466         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2467         
2468         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2469         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2470         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2471         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2472
2473 2005-06-30  Colin Walters  <walters@verbum.org>
2474
2475         * test/glib/test-dbus-glib.c:
2476         * test/glib/test-service-glib.c:
2477         * test/glib/test-service-glib.xml: Update tests for new error
2478         setting bits, also add async tests (patch from Ross Burton).
2479
2480         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2481         DBUS_GLIB_THREADS_LIBS.
2482
2483         * glib/dbus-gproxy.c (get_name_owner)
2484         (dbus_g_pending_call_end_valist): Ditto.
2485
2486         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2487         domain (GQuark) to DBusGErrorInfo.  
2488         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2489         quark in error_metadata.  Take message interface as default
2490         error message interface.
2491         (gerror_to_dbus_error_message): Pass message interface.
2492         (dbus_set_g_error): Resurrected.
2493         (dbus_g_error_info_free): New function.
2494         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2495         of _peek to actually create the object class if it hasn't been
2496         created yet.
2497         (dbus_g_error_domain_register): New function.
2498
2499         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2500
2501         * glib/dbus-gparser.c (validate_signature): Ditto.
2502
2503         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2504         (dbus_g_error_domain_register): Prototype.
2505
2506         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2507         Update tests.
2508
2509 2005-06-29  Colin Walters  <walters@verbum.org>
2510
2511         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2512         DBUS_TYPE_G_OBJECT_PATH.
2513
2514         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2515         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2516         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2517         (dbus_g_object_path_get_g_type): New function.
2518         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2519         to DBUS_TYPE_G_OBJECT_PATH by default.
2520         (demarshal_proxy): Remove unused name variable.
2521         (demarshal_object_path, marshal_object_path): New functions.
2522         (demarshal_proxy_array, marshal_proxy_array): Delete.
2523         
2524         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2525         DBUS_TYPE_G_OBJECT_PATH to char *.
2526         (dbus_g_type_get_lookup_function): Map builtin
2527         DBUS_TYPE_G_OBJECT_PATH.
2528
2529         * test/glib/test-dbus-glib.c
2530         * test/glib/test-service-glib.c (my_object_objpath): 
2531         Adapt tests to new object path marshalling.
2532
2533 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2534
2535         * configure.in: force check for Python >= 2.4
2536
2537 2005-06-29  Colin Walters  <walters@verbum.org>
2538         
2539         Patch from Ross Burton <ross@openedhand.com>
2540         
2541         * glib/dbus-gobject.c (invoke_object_method): Unset object
2542         value in all cases, not only in async case.
2543
2544 2005-06-29  Colin Walters  <walters@verbum.org>
2545
2546         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2547         name_call for keeping track of any outgoing GetNameOwner call.
2548         Also add for_owner and associated.
2549         (struct _DBusGProxyManager): Add owner_names, which is hash table
2550         that maps a base name to a list of names it owns (that we're
2551         interested in).  Add pending_nameowner_calls which is a list of
2552         all outstanding GetNameOwner; avoids us having to iterate over
2553         every proxy.  Add unassociated_proxies which keeps track of name
2554         proxies with no associated name owner.
2555         (dbus_g_proxy_manager_unref): Destroy owner_names.
2556         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2557         name refcounts.
2558         (find_name_in_info, name_owner_foreach)
2559         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2560         (dbus_g_proxy_manager_monitor_name_owner)
2561         (dbus_g_proxy_manager_unmonitor_name_owner)
2562         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2563         New functions; they manipulate the owner_names mapping.
2564         (got_name_owner_cb): New function.
2565         (get_name_owner): New function, extracted from
2566         dbus_g_proxy_new_for_name_owner.
2567         (dbus_g_proxy_manager_register): For now we need to keep track of
2568         all NameOwnerChanged.  Also if the proxy is for a name, if we
2569         don't already know the name owner, queue a new GetNameOwner
2570         request and add it to our list of unassociated proxies.  Otherwise
2571         inc the refcount.
2572         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2573         cancel any pending GetNameOwner call, etc.
2574         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2575         the owner_names mapping to look up the current names for the
2576         signal source, and dispatch to any proxies for that name.
2577         (dbus_g_proxy_new): Initialize new members.
2578         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2579         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2580         (dbus_g_pending_call_end_valist): New function, extracted from
2581         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2582         but want to use the GLib infrastructure.  Also note how many
2583         arguments in reply were over.
2584         (dbus_g_pending_call_end): New function, just call
2585         dbus_g_pending_call_end_valist.
2586         (dbus_g_proxy_end_call_internal): Just call
2587         dbus_g_pending_call_end_valist.
2588
2589         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2590         of builtin marshaller for STRING_STRING_STRING.
2591
2592         * test/glib/test-dbus-glib.c: 
2593         * test/glib/test-service-glib.c:
2594         * test/glib/test-service-glib.xml:
2595         Extend tests to cover name proxies, destruction of owner proxies,
2596         etc.
2597         
2598         * glib/examples/example-signal-recipient.c
2599         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2600         
2601         * tools/dbus-send.c (main): Print D-BUS error name in addition
2602         to message.
2603
2604 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2605
2606         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2607         cmessage_function_handler): Patch from 
2608         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2609         by using the Py_GILState_Ensure/Release to synchronize with the
2610         python runtime.
2611         
2612 2005-06-28  Ray Strode  <rstrode@redhat.com>
2613
2614         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2615         babysitter helper process on last unref, bug #2813.
2616
2617 2005-06-27  Colin Walters  <walters@verbum.org>
2618
2619         * test/glib/test-dbus-glib.c: 
2620         * test/glib/test-service-glib.c:
2621         * test/glib/test-service-glib.xml:
2622         Test hash table signal emitting.
2623
2624         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2625         types to their fundamental basis types, since this is what
2626         marshallers operate on.  Also add an entry for VOID__BOXED.
2627         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2628
2629 2005-06-26  Havoc Pennington  <hp@redhat.com>
2630
2631         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2632         from Don Park
2633
2634 2005-06-26  Colin Walters  <walters@verbum.org>
2635
2636         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2637         (dbus_g_error_set): New public function from its ashes; used by
2638         both service-side method implementation and GLib bindings
2639         internals.
2640         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2641         (_dbus_glib_test): Add some tests.
2642
2643         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2644
2645         * test/glib/test-service-glib.c (my_object_throw_error): Use
2646         dbus_g_error_set.
2647
2648         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2649         errors thrown by dbus_g_error_set.
2650
2651         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2652
2653         * glib/dbus-gparser.c (validate_signature): Ditto.
2654
2655         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2656         (dbus_g_proxy_end_call_internal): Ditto.
2657
2658         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2659         converts DBUS_ERROR_x to DBUS_GERROR_x.
2660         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2661
2662         * doc/TODO: Remove error TODO.
2663
2664         * doc/dbus-tutorial.xml: Update with documentation about error
2665         handling.
2666
2667         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2668         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2669         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2670
2671 2005-06-22  Colin Walters  <walters@verbum.org>
2672         
2673         Patch from Ross Burton <ross@openedhand.com>
2674
2675         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2676
2677 2005-06-20  Colin Walters  <walters@verbum.org>
2678
2679         * configure.in: Add glib/examples.
2680
2681         * glib/Makefile.am: Add examples/
2682
2683         * glib/examples/.cvsignore
2684         * glib/examples/Makefile.am
2685         * glib/examples/example-client.c
2686         * glib/examples/example-service.c
2687         * glib/examples/example-service.xml
2688         * glib/examples/example-signal-emitter.c
2689         * glib/examples/example-signal-emitter.xml
2690         * glib/examples/example-signal-recipient.c:
2691         New files; GLib binding examples, ported from
2692         python/examples.
2693
2694 2005-06-20  Colin Walters  <walters@verbum.org>
2695
2696         * dbus/dbus-glib.h: 
2697         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2698         dbus_g_proxy_call.
2699
2700         * glib/dbus-binding-tool-glib.c: 
2701         * doc/dbus-tutorial.xml: 
2702         * test/glib/test-dbus-glib.c: Update for rename.
2703         
2704 2005-06-20  Colin Walters  <walters@verbum.org>
2705
2706         Patch suggested by Ross Burton <ross@openedhand.com>
2707
2708         * glib/dbus-gobject.c (export_signals): Free signal name.
2709         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2710         memory leak.  Add a bit of documentation.
2711         (dbus_g_method_return_error): Free context, and note we do
2712         so.
2713
2714 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2715
2716         * dbus/dbus-glib.h:
2717         * glib/dbus-gobject.c:
2718         * glib/dbus-gproxy.c:
2719         * glib/dbus-gvalue.c: Predeclare structs as 
2720         typedef struct _Something Something instead of 
2721         typedef struct Something Something, so we can 
2722         redeclare the prototypes. Other GNOME libraries 
2723         do this already.
2724
2725 2005-06-17  Colin Walters  <walters@verbum.org>
2726
2727         * tools/dbus-names-model.c (have_names_notify): Fix call
2728         to dbus_g_proxy_end_call.
2729         
2730 2005-06-17  Colin Walters  <walters@verbum.org>
2731
2732         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2733         spew warnings if we get malformed remote signals.
2734
2735         * glib/dbus-gobject.c (propsig_iterate): New function.
2736         (lookup_object_info): New function, extracted from
2737         lookup_object_and_method.
2738         (introspect_properties, introspect_signals): Delete; these
2739         are merged into write_interface.
2740         (write_interface): Write out signals and properties here;
2741         dump the org.gtk.object stuff and use the interface given
2742         in the introspection data blob.  Also fix up property XML.
2743         (lookup_values): New function.
2744         (introspect_interfaces): Gather a mapping from interface to a
2745         list of its methods, signals, and properties, then write out
2746         each interface.
2747         (lookup_object_and_method): Use lookup_object_info.
2748         (struct DBusGSignalClosure): Add interface.
2749         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2750         we can just use the constant data.
2751         (dbus_g_signal_closure_finalize): Don't free signal name.
2752         (signal_emitter_marshaller): Use interface from signal closure.
2753         (export_signals): Only export signals mentioned in introspection
2754         blob.
2755         (dbus_g_connection_register_g_object): Warn if we have no
2756         introspection data for an object.
2757         (funcsig_equal): Remove unused variable.
2758         (dbus_g_object_register_marshaller): Take varargs instead of
2759         list.
2760         (dbus_g_object_register_marshaller_array): New function,
2761         extracted from old dbus_g_object_register_marshaller.
2762
2763         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2764         signals and property data.
2765         (write_quoted_string): New function, extracted from generate_glue.
2766         (generate_glue): Write signals and properties to introspection
2767         blob.
2768
2769         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2770         exported_signals and exported_properties.
2771         (dbus_g_object_register_marshaller): Update prototype.
2772         (dbus_g_object_register_marshaller_array): Prototype.
2773         
2774         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2775
2776         * test/glib/test-service-glib.c: Add new test signals and method
2777         to emit them.
2778
2779         * test/glib/test-service-glib.xml: Add some test signals.
2780
2781         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2782         and my-object-marshal.h
2783         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2784         my-object-marshal.c.
2785         (my-object-marshal.c, my-object-marshal.h): Implement.
2786
2787         * test/glib/.cvsignore: Update.
2788
2789         * doc/TODO: Remove two GLib TODO items fixed by this
2790         patch.
2791
2792 2005-06-16  Colin Walters  <walters@verbum.org>
2793
2794         * doc/TODO: Update for GLib bindings.
2795         
2796 2005-06-16  Colin Walters  <walters@verbum.org>
2797
2798         * glib/dbus-binding-tool-glib.c:
2799         * glib/dbus-gobject.c:
2800         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2801         from Ross Burton, for his GLib bindings work.
2802
2803 2005-06-16  Colin Walters  <walters@verbum.org>
2804
2805         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2806         to iterate instead of walking to G_TYPE_INVALID.
2807
2808         Patch based on a patch from Ryan Gammon.
2809
2810 2005-06-16  Colin Walters  <walters@verbum.org>
2811
2812         * bus/bus.c (bus_context_new): Set parser to NULL
2813         after we unref it (Patch from Chris Boscolo, #2174).
2814         
2815 2005-06-16  Colin Walters  <walters@verbum.org>
2816
2817         * python/dbus_bindings.pyx.in: Import size_t,
2818         __int64_t, __uint64_t, and __signed.
2819
2820         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2821         Define cmsg struct, output it.
2822         (_dbus_read_credentials_unix_socket):
2823         Use cmsg struct.
2824         
2825         Patch from Joe Markus Clarke for FreeBSD support.
2826         
2827 2005-06-16  Colin Walters  <walters@verbum.org>
2828
2829         * tools/dbus-send.c (append_array): Use strtok.
2830         (append_dict): New function.
2831         (type_from_name): New function, extracted from main.
2832         (main): Handle sending dicts.
2833
2834         * tools/dbus-print-message.c (print_iter): Print dict
2835         entries.
2836         
2837 2005-06-16  Colin Walters  <walters@verbum.org>
2838
2839         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2840         values as the empty string (#2948).
2841         
2842 2005-06-16  Colin Walters  <walters@verbum.org>
2843
2844         * dbus/Makefile.am:
2845         * mono/doc/Makefile.am:
2846         * test/glib/Makefile.am:
2847
2848         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2849
2850 2005-06-16  Colin Walters  <walters@verbum.org>
2851
2852         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2853         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2854
2855         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2856         Increment pointer after swapping fixed array.  Add assertion
2857         for array length.
2858                 
2859 2005-06-15  Colin Walters  <walters@verbum.org>
2860
2861         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2862         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2863         
2864 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2865
2866         * NEWS: Update to 0.34
2867
2868 2005-06-15  David Zeuthen  <davidz@redhat.com>
2869
2870         * configure.in (LT_CURRENT): Revert back to 1 as the library
2871         hasn't changed and we've certainly not committed to protocol
2872         stability yet.  All this does is to break ABI. See commit note
2873         from hp@redhat.com 2005-05-05 for details.
2874         
2875 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2876
2877         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2878         (_dbus_connection_run_builtin_filters): New method
2879         (dbus_connection_dispatch): Run the builtin filters which in turn
2880         runs the peer filter which handles Ping messages.
2881
2882         * doc/TODO: 
2883          - Ping isn't handled: This patch fixes it
2884          
2885          - Add a test case for the Ping message: added TODO item
2886
2887 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2888
2889         * dbus/dbus-message.c:
2890         (dbus_message_has_path): New method
2891         (dbus_message_has_interface): New method
2892         (dbus_message_has_member): New method
2893
2894         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2895         New method
2896
2897         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
2898         the keyring directory is private to the user
2899
2900         * doc/TODO:
2901          - The convenience functions in dbus-bus.h should perhaps have
2902          the signatures that they would have if they were autogenerated
2903          stubs. e.g. the acquire service function. We should also evaluate
2904          which of these functions to include, in light of the fact that
2905          GLib/Qt native stubs will probably also exist.: Punted
2906
2907          - add dbus_message_has_path(), maybe has_member/interface:
2908          fixed in this patch
2909
2910          - in dbus-keyring.c, enforce that the keyring dir is not
2911          world readable/writable: Fixed in this patch
2912
2913 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2914
2915         * dbus/dbus-marshal-validate.h: Added a new validation
2916         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
2917         out of memory errors when validating signitures
2918
2919         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2920         in places where we previously used DBUS_VALID and a FALSE return 
2921         value to indicate OOM
2922         
2923         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2924         Use a stack to track the number of elements inside containers.  The 
2925         stack values are then used to validate that dict entries have only two
2926         elements within them.
2927         (validate_body_helper): check the reason for failure when validating
2928         varients
2929         
2930         * dbus/dbus-message.c (load_message): use 
2931         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
2932         DBUS_VALID and a FALSE return value to indicate OOM
2933
2934         * doc/TODO: remove "- validate dict entry number of fields" as this
2935         patch fixes it
2936
2937 2005-06-14  David Zeuthen  <davidz@redhat.com>
2938
2939         * bus/bus.c (process_config_every_time): Drop existing conf-dir
2940         watches (if applicable) and add new watches
2941
2942         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2943         (main): Setup SIGIO signal handler if using D_NOTIFY
2944
2945         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2946
2947         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2948         (merge_included): Also merge conf_dirs list
2949         (bus_config_parser_unref): Clear conf_dirs list
2950         (include_dir): Add directory to conf_dirs list
2951         (bus_config_parser_get_conf_dirs): New function
2952
2953         * bus/dir-watch.[ch]: New files
2954
2955         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2956
2957         * configure.in: Add checks for D_NOTIFY on Linux
2958
2959 2005-06-14  Colin Walters  <walters@verbum.org>
2960
2961         * glib/dbus-binding-tool-glib.c:
2962         * glib/dbus-gobject.c:
2963         * glib/dbus-gvalue.c: Fix indentation and brace style.
2964         
2965 2005-06-14  Ross Burton <ross@openedhand.com>.
2966
2967         * glib/dbus-glib.h: Make DBusGMethodInvocation
2968         a private structure.  Rearrange prototypes a bit.
2969         
2970         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2971         documentation for first_arg_type.
2972         
2973         * glib/dbus-gobject.c: Move DBusGMethodInvocation
2974         here, add documentation.  Move dbus_g_method_return
2975         and dbus_g_method_return_error into public API
2976         section.
2977
2978 2005-06-14  Colin Walters  <walters@verbum.org>
2979
2980         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2981         Add missing return statements, noticed by Ross Burton.
2982         
2983 2005-06-13  Ross Burton <ross@openedhand.com>.
2984
2985         * glib/dbus-gobject.c: Handle errors on message
2986         demarshalling by sending error message back.
2987         * glib/dbus-gvalue.c: Initialize return variables.
2988
2989 2005-06-13  Colin Walters  <walters@verbum.org>
2990
2991         * glib/Makefile.am: Fix thinko in last patch.
2992
2993 2005-06-13  Colin Walters  <walters@verbum.org>
2994
2995         * glib/Makefile.am: Move dbus-gtype-specialized.c
2996         and dbus-gtype-specialized.h into a _HEADERS variable,
2997         install them.
2998
2999 2005-06-12  Colin Walters  <walters@verbum.org>
3000
3001         Async signals and various bugfixes and testing by
3002         Ross Burton <ross@openedhand.com>.
3003
3004         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3005         (dbus_gvalue_genmarshal_name_from_type)
3006         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3007         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3008         (dbus_g_value_types_init, dbus_gtype_from_signature)
3009         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3010         (dbus_gtypes_from_arg_signature): New function prototypes.
3011         (dbus_gvalue_demarshal): Take context and error arguments.
3012         (dbus_gvalue_demarshal_variant): New function.
3013         (dbus_gvalue_demarshal_message): New function.
3014         (dbus_gvalue_store): Delete.
3015
3016         * glib/dbus-gvalue.c:
3017
3018         File has been almost entirely rewritten; now we special-case
3019         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3020         hash tables correctly, etc.  Full support for recursive values
3021         is not yet complete.
3022
3023         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3024         argument of signal to G_TYPE_POINTER since we now pass a
3025         structure.
3026         (lookup_g_marshaller): Delete in favor of
3027         _dbus_gobject_lookup_marshaller.
3028         (marshal_dbus_message_to_g_marshaller): Use
3029         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3030         to handle remote signal callbacks.
3031         (dbus_g_proxy_new_from_proxy): New function; creates a new
3032         DBusGProxy by copying an existing one.
3033         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3034         (dbus_g_proxy_get_path): New functions.
3035         (dbus_g_proxy_marshal_args_to_message): New function;
3036         factored out of existing code.
3037         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3038         from a varargs array.
3039         (dbus_g_proxy_begin_call_internal): New function.
3040         (dbus_g_proxy_end_call_internal): New function.
3041         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3042         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3043         after collecting args into value array.
3044         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3045         invoke dbus_g_proxy_end_call_internal.
3046         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3047         end_call_internal.
3048         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3049         types.
3050         (array_free_all): New function.
3051         (dbus_g_proxy_add_signal): Take GTypes.
3052
3053         * glib/dbus-gobject.h:
3054         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3055         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3056         Prototype.
3057
3058         * glib/dbus-gobject.c: Add a global marshal_table hash which
3059         stores mappings from type signatures to marshallers.  Change lots
3060         of invocations of dbus_gtype_to_dbus_type to
3061         dbus_gtype_to_signature.
3062         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3063         (introspect_signals): Fix test for query.return_type.
3064         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3065         (invoke_object_method): Many changes.  Handle asynchronous
3066         invocations.  Convert arguments with
3067         dbus_gvalue_demarshal_message.  Handle errors.  Use
3068         DBusSignatureIter instead of strlen on args. Handle all arguments
3069         generically.  Special-case variants.
3070         (dbus_g_method_return, dbus_g_method_return_error): New function.
3071         (DBusGSignalClosure): New structure, closes over signal
3072         information.
3073         (dbus_g_signal_closure_new): New function.
3074         (dbus_g_signal_closure_finalize): New function.
3075         (signal_emitter_marshaller): New function; is special marshaller
3076         which emits signals on bus.
3077         (export_signals): New function; introspects object signals and
3078         connects to them.
3079         (dbus_g_object_type_install_info): Take GType instead of
3080         GObjectClass.
3081         (dbus_g_connection_register_g_object): Invoke export_signals.
3082         (dbus_g_connection_lookup_g_object): New function.
3083         (DBusGFuncSignature) New structure; used for mapping type
3084         signatures to marshallers.
3085         (funcsig_hash): New function; hashes DBusGFuncSignature.
3086         (funcsig_equal): New function; compares DBusGFuncSignature.
3087         (_dbus_gobject_lookup_marshaller): New function.
3088         (dbus_g_object_register_marshaller): New function; used to
3089         register a marshaller at runtime for a particular signature.
3090
3091         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3092
3093         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3094         which notes a server method implementation should be
3095         asynchronous.
3096
3097         * glib/dbus-binding-tool-glib.c
3098         (dbus_binding_tool_output_glib_server): Call
3099         dbus_g_value_types_init.
3100         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3101         variants specially.
3102         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3103         of a lookup function.
3104         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3105         (write_untyped_out_args): New method; write output arguments.
3106         (write_formal_declarations_for_direction): Function for
3107         writing prototypes.
3108         (write_formal_parameters_for_direction): Function for
3109         writing implementations.
3110         (write_typed_args_for_direction): Function for writing
3111         arguments prefixed with GTypes.
3112         (write_async_method_client): Write out async version
3113         of method.
3114
3115         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3116         (dbus_g_type_get_marshal_name): Move mapping from GType
3117         to marshal name into here.
3118         (dbus_g_type_get_c_name): Move into here.
3119         (compute_marshaller): Convert signature to type with
3120         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3121         (compute_marshaller_name): Ditto.
3122         (compute_marshaller): Handle async signal annotations.
3123         (gather_marshallers): Return if we don't have a known
3124         prefix.
3125         (generate_glue): Collect introspection blob here, and
3126         write all of the blob at the end.  This allows an object
3127         with multiple interfaces to work.
3128         Mark async methods in introspection blob.
3129
3130         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3131         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3132         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3133
3134         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3135         avoids people accidentally using DBUS_TYPE_* which should
3136         not be necessary anymore.
3137         Do include dbus-gtype-specialized.h, which are utilities
3138         for GLib container types.
3139         Add various #defines for types such as
3140         DBUS_TYPE_G_BOOLEAN_ARRAY.
3141         (DBusGValueIterator, DBusGValue): Define, not fully used
3142         yet.
3143         (dbus_g_value_get_g_type): Type for recursive value.
3144         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3145         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3146         (dbus_g_value_free): Prototypes.
3147         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3148         (dbus_g_proxy_set_interface): Prototype.
3149         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3150         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3151         types.
3152         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3153         Accessors.
3154         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3155         doing async invocations.
3156         (dbus_g_method_return, dbus_g_method_return_error):
3157         Prototypes.
3158         * doc/dbus-tutorial.xml: Update GLib section.
3159         
3160         * tools/dbus-viewer.c (load_child_nodes): Update
3161         for new invocation type of dbus_g_proxy_end_call.
3162         (load_from_service_thread_func): Ditto.
3163
3164         * tools/print-introspect.c (main): Ditto.
3165
3166         * tools/dbus-names-model.c (have_names_notify)
3167         (names_model_reload, names_model_set_connection)
3168         Use GTypes.
3169
3170         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3171         needed since Python bindings use GLib bindings.
3172
3173         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3174         Add --prefix argument.
3175
3176         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3177         unneeded --ignore-unsupported arg.
3178         
3179         * test/glib/test-service-glib.c: 
3180         * test/glib/test-service-glib.xml:
3181         * test/glib/test-dbus-glib.c: Add many more tests.
3182
3183 2005-06-06  David Zeuthen  <davidz@redhat.com>
3184
3185         * doc/TODO: Add item about need to remove deprecated functions.
3186
3187         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3188
3189         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3190         to repair the ABI which was broken with the last commit.
3191
3192 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3193
3194         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3195         (dbus_connection_disconnect): renamed to dbus_connection_close 
3196         for API symmetry with dbus_connection_open
3197         (_dbus_connection_open_internal): 
3198         s/dbus_connection_disconnect/dbus_connection_close
3199
3200         * dbus/dbus-bus.c (dbus_bus_get):
3201         s/dbus_connection_disconnect/dbus_connection_close
3202
3203         * bus/connection.c (bus_connections_unref, 
3204         bus_connections_setup_connection, bus_connections_expire_incomplete):
3205         s/dbus_connection_disconnect/dbus_connection_close
3206
3207         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3208         kill_client_connection_unchecked, check_hello_connection):
3209         s/dbus_connection_disconnect/dbus_connection_close
3210
3211         * bus/bus.c (new_connection_callback):
3212         s/dbus_connection_disconnect/dbus_connection_close
3213
3214         * tools/dbus-send.c (main):
3215         s/dbus_connection_disconnect/dbus_connection_close
3216
3217         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3218         s/dbus_connection_disconnect/dbus_connection_close
3219         
3220         * test/test-service.c (path_message_func, filter_func):
3221         s/dbus_connection_disconnect/dbus_connection_close
3222         
3223         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3224         
3225 2005-05-25  Colin Walters  <walters@verbum.org>
3226
3227         * dbus/dbus-protocol.h: Move various bus service #defines such
3228           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3229           dbus/dbus-shared.h.
3230         * dbus/dbus-shared.h: Various defines moved here.
3231         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3232
3233 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3234
3235         * python/__init__.py: Python bindings deserve a minor version
3236         update.  Upped to (0, 40, 2)
3237
3238 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3239
3240         * python/decorators.py: add explicitly_pass_message decorator
3241         for passing in the dbus message as keyword for edge case signal
3242         handling
3243
3244         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3245         to conform with what dbus expects for match rules
3246         (SignalMatchRule.execute): add the dbus message as a keyword
3247         if the signal handler has requested it
3248
3249         * python/examples/example/signal-recipient.py: added some more
3250         examples on how to hook up to signals
3251
3252 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3253
3254         * python/decorators.py: import dbus_bindings
3255
3256         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3257         SignalMatchNode): new classes that implement wildcard signal
3258         callback matching using a tree lookup. Heavily modified from a
3259         patch sent by Celso Pinto (fd.o bug #3241)
3260
3261         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3262         use new match classes to handle signals.
3263
3264 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3265         
3266         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3267
3268 2005-05-18  Havoc Pennington  <hp@redhat.com>
3269
3270         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3271         gettext. Not really worth requiring yet perhaps, but any
3272         production quality 1.0 would require it so we should go ahead and
3273         get things set up. We do have a couple token calls to
3274         bindtextdomain in the code already.
3275
3276 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3277
3278         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3279         when using recursive g_main_loops
3280
3281         * python/_dbus.py (class Bus): add the ProxyObjectClass
3282         alias for ProxyObject to make it easier for the Twisted 
3283         networking framework to integrate dbus.
3284
3285         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3286         alias for ProxyMethod to make it easier for the Twisted 
3287         networking framework to integrate dbus. 
3288
3289 2005-05-11  Ross Burton  <ross@openedhand.com>
3290
3291         * glib/dbus-glib-tool.c: Add --prefix argument.
3292         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3293         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3294         Add prefix argument.
3295         (generate_glue): Pass prefix argument down.
3296         (dbus_binding_tool_output_glib_server): Pass prefix to
3297         glib-genmarshal.
3298         
3299 2005-05-11  Colin Walters  <walters@verbum.org>
3300
3301         * tools/dbus-send.c (append_array): New function.
3302         (append_arg): Broken out from main.
3303         (main): Add cheesy hack to send arrays and variants.
3304         (usage): Update.
3305         * tools/dbus-print-message.c (print_iter): Broken out
3306         from main.
3307
3308 2005-05-11  Colin Walters  <walters@verbum.org>
3309
3310         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3311         New function, returns signature string for signature iter.
3312         * dbus/dbus-signature.h: Prototype it.
3313         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3314         New function, returns signature string for message iter.
3315         (dbus_message_iter_get_array_len): New function, returns
3316         length of array.
3317         (dbus_message_iter_get_fixed_array): Fix assertion; this
3318         function should be used when the iter is pointing to the
3319         contents of an array
3320         * dbus/dbus-message.h: Prototypes.
3321         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3322         New function; returns length of an array.
3323         * dbus/dbus-marshal-recursive.h: Prototype it.
3324         
3325 2005-05-11  Colin Walters  <walters@verbum.org>
3326
3327         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3328         compilation error.
3329         
3330 2005-05-08  Havoc Pennington  <hp@redhat.com>
3331
3332         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3333         daemon's pid, not the parent's pid, to the file descriptor.
3334         Reported by Taj Morton.
3335
3336 2005-05-05  Havoc Pennington  <hp@redhat.com>
3337
3338         * configure.in (LT_*): add notes on how the libtool versioning
3339         works to save thinking. Increment soname to indicate protocol
3340         breakage (though really the library interface hasn't changed I
3341         guess)
3342
3343         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3344         verify the GUID received from server matches what we were
3345         expecting, if we had an expectation
3346
3347         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3348         (_dbus_auth_get_guid_from_server): new function
3349         (send_begin): parse the OK args
3350
3351         * doc/dbus-specification.xml: add GUID to the auth protocol
3352
3353 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3354
3355         * Fix my name in previous changelog ;)
3356
3357         * python/proxies.py (ProxyObject.__getattr__): add further patch
3358         from Anthony Baxter to throw an AttributeError when python 
3359         __special__ functions are called instead of marshling them over 
3360         the bus (Bug#1685 comment 3).
3361
3362 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3363
3364         * python/Makefile.am: changed to use pyexecdir for the binding
3365         shared libraries (Bug#2494)
3366
3367         * python/exceptions.py: bring exceptions over from the bindings
3368         so they can be used in applications (Bug#2036)
3369         Make all exceptions derive from DBusException
3370
3371         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3372         of classes so that print obj doesn't throw an exception (Bug #1685)
3373
3374 2005-05-03  Ross Burton  <ross@openedhand.com>
3375
3376         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3377         Return if we get an error during registration.  Set up a
3378         weak reference on object to unregister if object is destroyed.
3379         (unregister_gobject): New function.
3380         
3381 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3382
3383         * python/dbus_bindings.pyx.in: 
3384         - added new type classes for hinting to the marashaler what type 
3385         to send over the wire
3386         - added int16 and uint16 marshalers
3387         - Fixed a bug in the type constants that caused int32 to go out
3388         as uint16 over the wire
3389         * python/dbus.py: split up into different files and renamed _dbus.py
3390         * python/__init__.py, python/_util.py, python/decorators.py, 
3391         python/exceptions.py, python/proxies.py, python/services.py,
3392         python/types.py: new files split off from dbus.py
3393         * python/Makefile.am: Add new files, remove dbus.py and 
3394         install all python files to <python module dir>/dbus
3395         * python/examples/*: Added #!/usr/bin/env python to the top of
3396         every example.  Patch provided by Tatavarty Kalyan
3397
3398 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3399
3400         * NEWS: Update to 0.33
3401
3402 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3403
3404         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3405         method for doing async calls
3406         (_pending_call_notification): New C function for handling pendning call
3407         callbacks
3408         (set_notify): New method for setting pending call notification
3409         
3410         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3411         Async capabilities added to remote method calls
3412         (Sender): class removed
3413         (RemoteService): class removed
3414         (ObjectTree): class removed for now
3415         (RemoteObject): Renamed to ProxyObject
3416         (RemoteMethod): Renamed to ProxyMethod
3417         (method): Decorator added for decorating python methods as dbus methods
3418         (signal): Decorator added for decorating python methods as signal emitters
3419         (ObjectType): Metaclass added for generating introspection data and the
3420         method callback vtable
3421         (Interface): Wrapper class added to wrap objects in a dbus interface
3422         (Object): Uses ObjectType as its metaclass and exports Introspect
3423         of the org.freedesktop.DBus.Introspectable interface
3424         (ValidationException, UnknownMethodException): new exceptions
3425
3426         * python/examples/*: Modified to fit with the new bindings
3427
3428 2005-04-23  Havoc Pennington  <hp@redhat.com>
3429
3430         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3431         reported by Tony Houghton
3432
3433         * test/test-service.c (main): test
3434         dbus_connection_get_object_path_data()
3435
3436         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3437         the exact_match
3438         (_dbus_object_tree_get_user_data_unlocked): new function used by
3439         dbus_connection_get_object_path_data()
3440         (do_register): add assertion test for get_user_data_unlocked
3441         (object_tree_test_iteration): more tests
3442
3443         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3444         new function from Dan Reed to let you get the user data from 
3445         dbus_connection_register_object_path()
3446
3447 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3448
3449         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3450         in numerous places that did not account for the NULL terminator
3451         (signature_from_seed): changed the manual string copy loop to 
3452         just use strcpy instead
3453         make check should now pass
3454
3455 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3456
3457         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3458         so that it allows messages that are not signals to pass in 
3459         NULL as the interface.
3460
3461 2005-04-18  David Zeuthen  <davidz@redhat.com>
3462
3463         * glib/dbus-gmain.c (io_handler_destroy_source): 
3464         (timeout_handler_destroy_source, connection_setup_free): 
3465         Also unref the source to avoid memory leaks.
3466
3467 2005-04-13  David Zeuthen  <davidz@redhat.com>
3468
3469         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3470         more reasonable, yet still totally arbitrary, value :-). 
3471
3472 2005-04-13  David Zeuthen  <davidz@redhat.com>
3473
3474         * doc/TODO: Added an "important for 1.0" item about selinux
3475         allow/deny messages
3476
3477 2005-04-13  David Zeuthen  <davidz@redhat.com>
3478
3479         * bus/selinux.c: Add c-file-style to top of file
3480         (log_audit_callback): Don't free the data here anymore
3481         (bus_selinux_check): Don't take spid and tpid since appending
3482         that to auxdata may OOM.
3483         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3484         to the caller if we are OOM by taking an error object.
3485         (bus_selinux_allows_send): -do-
3486
3487         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3488         and bus_selinux_allows_send
3489
3490         * bus/bus.c (bus_context_check_security_policy): Pass error and
3491         pass on OOM thrown by bus_selinux_allows_send()
3492
3493         * bus/services.c (bus_registry_acquire_service): Pass error and
3494         pass on OOM thrown by bus_selinux_allows_acquire_service()
3495
3496 2005-04-13  Havoc Pennington  <hp@redhat.com>
3497
3498         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3499         message at a time to avoid monopolizing the main loop, bug 
3500         #2953 from Benjamin Otte
3501
3502 2005-04-09  Havoc Pennington  <hp@redhat.com>
3503
3504         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3505         possible overlap, fix from Daniel Reed
3506         (fixup_alignment): fix signedness warnings
3507         (_dbus_string_append_unichar): ditto
3508
3509 2005-04-09  Havoc Pennington  <hp@redhat.com>
3510
3511         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3512
3513         * glib/dbus-glib-tool.c (main): fix warning
3514
3515         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3516
3517         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3518         add a new function that can be used in simple applications that
3519         don't have a main loop and are willing to block
3520
3521 2005-04-05  David Zeuthen  <davidz@redhat.com>
3522
3523         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3524
3525         * glib/dbus-gmain.c:
3526         (io_handler_destroy_source): Remove from list of IO handlers
3527         of the ConnectionSetup object
3528         (timeout_handler_destroy_source): -do- for timeout handlers
3529         (io_handler_source_finalized): Don't remove from list since
3530         we now do that in io_handler_destroy_source(). Renamed from
3531         io_handler_source_destroyed
3532         (timeout_handler_source_destroyed): -do- for timeout handlers
3533         (connection_setup_free): It is now safe to iterate over all
3534         IO and timeout handlers as the _destroy_source removes them
3535         from the list synchronously
3536
3537 2005-03-30  Havoc Pennington  <hp@redhat.com>
3538
3539         * configure.in: change check to gtk 2.4
3540
3541         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3542         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3543         to 2.4
3544
3545 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3546
3547         * News: Update 0.32
3548
3549         * HACKING: Fixed realease instructions.  configure.in should be updated to
3550           the next release by the person who made the last release.
3551
3552 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3553
3554         * python/lvalue_cast_post_process.py - removed.  Patch has been
3555           submitted to Pyrex maintainers that fixes gcc4.0 errors
3556
3557         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3558
3559 2005-03-24  Daniel Reed  <n@ml.org>
3560
3561         * tools/Makefile.am: Make print-introspect and
3562         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3563
3564 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3565
3566         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3567
3568         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3569           had in Red Hat packages for a while but for some reason never 
3570           got merged upstream
3571           (_dbus_is_a_number): New checks if a string
3572           can be converted to a number and does the conversion if it can
3573           (_dbus_user_database_lookup): Add check to see if the given username
3574           is a udi.  This allows udi's to be used instead of usernames in the
3575           config file.
3576           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3577           is a gdi.  This allows gdi's to be used instead of groupnames in the
3578           config file.
3579
3580 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3581
3582         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3583           code so that it compiles with gcc4.0
3584
3585         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3586           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3587           results back to dbus_binding.c
3588
3589 2005-03-20  Colin Walters  <walters@verbum.org>
3590
3591         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3592
3593         * configure.in: Require GTK+ 2.6.
3594         
3595 2005-03-20  Colin Walters  <walters@verbum.org>
3596
3597         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3598
3599 2005-03-17  Tom Parker  <palfrey@tevp.net>
3600
3601         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3602         print DBUS_UID_UNSET; instead print passed username.  Also
3603         be sure to actually use gid looked up in cache.
3604         
3605         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3606         for DBUS_GID_UNSET and groupname.
3607
3608 2005-03-17  Colin Walters  <walters@verbum.org>
3609
3610         * bus/print-introspect.c: Move to tools/.
3611         * bus/run-with-tmp-session-bus.sh: Ditto.
3612         
3613         * glib/Makefile.am (dbus-glib-bindings.h): Move
3614         generation to tools/Makefile.am.
3615
3616         * test/glib/run-test.sh: Update to handle move
3617         of run-with-tmp-session-bus.sh.
3618
3619         * test/glib/test-service-glib.c: Update to handle
3620         move of dbus-glib-bindings.h.
3621
3622         * tools/print-introspect.c: Moved here
3623         from bus/, and ported to GLib bindings.
3624
3625         * tools/run-with-tmp-session-bus.sh: Moved here
3626         from bus/.
3627
3628         * tools/Makefile.am: Generate dbus-glib-bindings.h
3629         and dbus-bus-introspect.xml here.
3630
3631         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3632         Update.
3633
3634 2005-03-17  Colin Walters  <walters@verbum.org>
3635
3636         * bus/driver.c (write_args_for_direction): Use
3637         _dbus_string_get_const_data to retrieve string;
3638         _dbus_string_get_const_data_len doesn't actually return
3639         a NULL-terminated substring.
3640
3641         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3642         (main): Change to use org_freedesktop_DBus_request_name
3643         instead of using g_proxy_begin_call/end_call.
3644
3645 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3646
3647         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3648         generating the finalizer.  Fixes from Ben Maurer.
3649
3650 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3651
3652         * mono/BusDriver.cs: Update method names: ListServices
3653         becomes ListNames; GetOwner becomes GetNameOwner.
3654
3655         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3656         onto the eval stack when removing the delegate.
3657
3658 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3659
3660         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3661         LT_CURRENT.  Set it to the autoconf variable.
3662                                                                                 
3663         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3664         classes that disconnects the signal handler delegate from the
3665         service object.  Fixes a big leak of proxy objects on the
3666         client side of things.  Patch from Ben Maurer
3667         <bmaurer@ximian.com>
3668
3669 2005-03-12  Colin Walters  <walters@verbum.org>
3670
3671         * bus/driver.c (write_args_for_direction): New function,
3672         parses a type signature into arguments and outputs to
3673         XML.
3674         (bus_driver_handle_introspect): Use it instead of
3675         hardcoding XML for certain signatures.
3676         
3677         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3678         dependency on dbus-daemon.
3679
3680         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3681         argument, pass it to dbus_binding_tool_output_glib_client.
3682
3683         * glib/dbus-binding-tool-glib.c
3684         (generate_client_glue): Protect against multiple inclusion.
3685         (dbus_binding_tool_output_glib_client): Add
3686         G_BEGIN_DECLS/G_END_DECLS.
3687
3688         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3689         Change to just take iface prefix directly.
3690         (write_formal_parameters): Clarify error message.
3691         (check_supported_parameters): New function; checks to see type
3692         signatures of method parameters are supported.
3693         (generate_client_glue): Handle ignore_unsupported flag.
3694         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3695         parameter.
3696
3697         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3698         --ignore-unsupported by default until glib bindings
3699         support arrays.
3700
3701 2005-03-11  Colin Walters  <walters@verbum.org>
3702
3703         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3704         install it.
3705
3706         * bus/print-introspect.c: New file; prints introspection
3707         data for a given name and object path.
3708
3709         * bus/run-with-tmp-session-bus.sh: New file, refactored
3710         from test/glib/run-test.sh.  Creates a temporary session
3711         bus and runs another program.
3712
3713         * test/glib/run-test.sh: Refactor to invoke
3714         run-with-tmp-session-bus.sh.
3715
3716         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3717         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3718         macros instead of hardcoding.
3719
3720         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3721
3722 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3723
3724         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3725         this unref; it doesn't match up evenly in some codepaths.
3726         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3727         this evenly matches with the ref near the top of this function.
3728
3729 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3730
3731         * dbus/dbus-object-tree.c
3732         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3733         and we try to unregister a path that's not registered, still go
3734         through the process of unlocking and don't just return.
3735
3736 2005-03-09  Colin Walters  <walters@verbum.org>
3737
3738         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3739         to this are generated for client-side wrappers.  Invokes a
3740         D-BUS method and returns reply values.  
3741
3742         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3743         function; writes signature string for argument direction.
3744         (write_args_for_direction): Change to pass input values directly
3745         instead of via address, and fix indentation.
3746         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3747         make generated wrappers inlineable.
3748
3749         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3750         note about using dbus_type_is_fixed.
3751
3752         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3753         dbus/dbus-signature.c as dbus_type_is_fixed.
3754
3755         All callers updated.
3756
3757         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3758         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3759
3760         * dbus/dbus-signature.h: Prototype.
3761
3762         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3763         error printf code.
3764
3765         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3766         appropriate instead of just freeing it.
3767         (main): Free returned strings using g_free.
3768
3769         * test/glib/Makefile.am (test-service-glib-glue.h)
3770         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3771
3772         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3773         simply maps a simple D-BUS type to GType.
3774         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3775         GType.
3776         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3777         initialize the value with it.
3778         (dbus_gvalue_binding_type_from_type): Unused, delete.
3779         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3780         various types instead of unmarshalling to value data directly.
3781         Remove can_convert boolean.
3782         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3783         returning directly instead of using can_convert boolean.
3784         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3785         Stores a GValue in a pointer to a value of its corresponding C
3786         type.
3787
3788         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3789         add dbus_gvalue_store.
3790
3791 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3792
3793         Fix a bunch of lifecycle and memory management problems
3794         in the mono bindings.
3795
3796         * mono/Arguments.cs (Arguments): Implement IDisposable
3797
3798         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3799         strictly a static class.
3800
3801         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3802         delegates into this file.
3803         (Connection): Implement IDisposable.
3804         (Dispose): Disconnect the connection and set the raw connection
3805         pointer to IntPtr.Zero.
3806         (~Connection): Call Dispose().
3807         (RegisterObjectPath): Added.  Manages the registration of object
3808         paths so we can cleanly disconnect them at dispose/finalize time.
3809         (UnregisterObjectPath): Ditto.
3810         (set_RawConnection): Unregister all of the object paths when
3811         changing the underlying DBusConnection.  Add them back onto the
3812         new connection, if any.
3813
3814         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3815         more unmanaged resources anymore, so it's not necessary.  Move all
3816         the DBusObjectPathVTable stuff out of here.
3817         (Handler): Save references to our delegates so that they don't get
3818         finalized.  Call Connection.RegisterObjectPath() instead of
3819         dbus_connection_register_object_path() directly.
3820         (Message_Called): Dispose the message after we're finished with
3821         it.
3822
3823         * mono/Message.cs (Message): Implement IDisposable.
3824         (Dispose): Dispose the Arguments, and set the RawMessage to
3825         IntPtr.Zero.
3826         (SendWithReplyAndBlock): We own the ref to the reply that comes
3827         back from dbus_connection_send_with_reply_and_block() so add a
3828         comment about that and unref it after we've constructed a managed
3829         MethodReturn class around it.  Fixes a big, big leak.
3830
3831         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3832         method.
3833         (BuildSignalHandler): After we've sent the Signal message, dispose
3834         of it.
3835         (BuildMethod): Dispose of the method call and reply messages after
3836         we've sent the message and extracted the data we want from the
3837         reply.
3838
3839         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3840         anymore.
3841         (Service_FilterCalled): Dispose of the message after we're
3842         finished with it.
3843
3844 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3845
3846         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3847         After we attach our pending call to the connection, unref
3848         it.  Fixes a leak.
3849  
3850         * mono/Connection.cs (set_RawConnection): Disconnect our
3851         filter and match callbacks from the old connection and
3852         reconnect them to the new connection, if any.
3853
3854         * mono/DBusType/Array.cs: "Code" is a static member, so
3855         don't use "this" to refer to it.  Fix for stricter checking
3856         in Mono 1.1.4.
3857  
3858         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3859         object path that we pass into unmanaged code.
3860  
3861         * mono/DBusType/String.cs (Append): Don't leak the string
3862         that we pass into unmanged code.
3863
3864 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3865         * NEWS: Update for 0.31
3866
3867         * configure.in: Release 0.31
3868         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3869
3870         * qt/Makefile.am: fixed build
3871
3872         * dbus/Makefile.am: soname bump for libdbus
3873
3874         * glib/Makefile.am: soname bump for libdbus-glib
3875
3876 2005-03-05  Havoc Pennington  <hp@redhat.com>
3877
3878         * dbus/dbus-sysdeps.c:
3879         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3880         value
3881         (_dbus_generate_random_bytes_buffer): fix return value
3882
3883         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3884         checks actually work, from Tom Parker <fdo@tevp.net>
3885
3886 2005-03-01  Colin Walters  <walters@verbum.org>
3887
3888         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3889         functions copied from dbus-glib-tool.c.
3890         (main): Convert lots of error code to use them.
3891         Also add some testing for introspection bits.
3892
3893 2005-03-01  Colin Walters  <walters@verbum.org>
3894         
3895         * doc/TODO: Remove introspection signature TODO.
3896
3897 2005-02-27  Colin Walters  <walters@verbum.org>
3898
3899         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3900         Change return value to const char * instead of int so we can do
3901         full signatures.
3902         (struct PropertyInfo, struct ArgInfo): Store char *.
3903         (property_info_new, arg_info_new): Update parameters, strdup.
3904         (property_info_unref, arg_info_unref): Free.
3905
3906         * glib/dbus-gidl.h: Update prototypes.
3907
3908         * glib/dbus-gparser.c (basic_type_from_string): Delete.
3909         (validate_signature): New function, just validates signature and
3910         sets GError.
3911         (parse_property, parse_arg): Invoke validate_signature.  Store
3912         signature instead of just type code.
3913
3914         * glib/dbus-gvalue.c (base_type_from_signature): New utility
3915         function to return a primary type for a signature, dropping
3916         information about types in container types.
3917         (dbus_gvalue_genmarshal_name_from_type)
3918         (dbus_gvalue_binding_type_from_type)
3919         (dbus_gvalue_ctype_from_type): Update to take full signature
3920          instead of type code.
3921         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3922
3923         * glib/dbus-gvalue.h: Update prototypes for above.
3924
3925         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3926         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3927         (introspect_properties, introspect_signals, write_interface):
3928         Update to handle signatures, and remove usage of
3929         _dbus_gutils_type_to_string.
3930         (handle_introspect): Print out type codes instead of e.g. "string"
3931         in hardcoded introspection XML; also use x_AS_STRING constants
3932         instead of hardcoding in string.
3933
3934         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3935         to string.  Remove usage of _dbus_gutils_type_to_string.
3936
3937         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3938
3939         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3940         deletion.
3941         
3942         * glib/dbus-binding-tool-glib.c (compute_marshaller)
3943         (compute_marshaller_name, generate_glue): Handle signature change
3944         to string.
3945         (write_formal_parameters, write_args_for_direction): Ditto, and
3946         remove FIXME.
3947
3948         * tools/dbus-tree-view.c (type_to_string): Delete.
3949         (info_set_func_text): Update to print full signatures.
3950
3951         * test/glib/test-service-glib.xml: Change types to new
3952         introspection format.
3953
3954 2005-02-26  Havoc Pennington  <hp@redhat.com>
3955
3956         * doc/TODO: remove the "guid" item
3957
3958         * test/glib/test-profile.c (no_bus_thread_func): use open_private
3959         (with_bus_thread_func): use open_private
3960
3961         * dbus/dbus-connection.c (dbus_connection_open_private): new
3962         function that works like the old dbus_connection_open()
3963         (dbus_connection_open): now returns an existing connection if
3964         possible
3965
3966         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3967         through the GUID to the transport
3968
3969         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3970         GUID in hex-encoded form.
3971
3972         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3973         pass GUID argument in to the transport
3974
3975         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3976         guid argument
3977
3978         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3979
3980         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3981
3982 2005-02-25  Havoc Pennington  <hp@redhat.com>
3983
3984         * doc/dbus-specification.xml: document the GUID thing
3985
3986         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3987         globally unique ID for the server, and put a "guid=hexencoded"
3988         field in the address
3989
3990         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3991
3992         * dbus/dbus-message.c: ditto
3993
3994         * dbus/dbus-dataslot.c: ditto
3995
3996         * dbus/dbus-list.c: ditto
3997
3998         * dbus/dbus-internals.h: wait, just include
3999         dbus-threads-internal.h here
4000         
4001         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4002         use in main library
4003
4004         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4005
4006 2005-02-24  Colin Walters  <walters@verbum.org>
4007
4008         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4009
4010 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4011
4012         * glib/Makefile.am: added dbus-gobject.h to sources list
4013         so distcheck doesn't fail
4014         
4015 2005-02-24  Havoc Pennington  <hp@redhat.com>
4016
4017         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4018         you must disconnect before unref, since locking and other things
4019         are screwed up otherwise. Fix assorted other locking stuff.
4020
4021         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4022         fix compilation
4023
4024         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4025         into a private header and don't export from the library
4026
4027         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4028
4029 2005-02-24  Colin Walters  <walters@verbum.org>
4030         
4031         * dbus/dbus-signature.c: New file; implements various functions
4032         related to type signatures.  Includes an interator for parsing,
4033         validation functions.
4034         (dbus_type_is_basic): Moved here from
4035         dbus-marshal-basic.c:_dbus_type_is_basic.
4036         (dbus_type_is_container): Moved here from
4037         dbus-marshal-basic.c:_dbus_type_is_container.
4038
4039         All callers of _dbus_type_is_container and _dbus_type_is_basic
4040         updated, and include dbus-signature.h.
4041
4042         * dbus/dbus-signature.h: New file; prototypes for the above.
4043
4044         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4045         dbus-signature.h.
4046
4047         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4048         function factored out of _dbus_first_type_in_signature.
4049         (_dbus_first_type_in_signature_c_str): New function; returns first
4050         type code for a type signature character.
4051
4052         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4053         handle function moves.
4054
4055         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4056
4057         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4058         function; skips to next complete type in type signature.
4059         Implemented using previous skip_one_complete_type.  Now
4060         skip_one_complete_type just delegates to
4061         _dbus_type_signature_next.
4062
4063         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4064         to dbus-signature.c
4065         (_dbus_type_is_container): Ditto.
4066
4067         * doc/dbus-specification.xml: Update introspection sample to
4068         use real type signatures.
4069
4070         * dbus/dbus-test.h: Prototype signature test.
4071
4072         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4073         signature tests.
4074
4075         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4076
4077 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4078
4079         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4080         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4081
4082 2005-02-21  Colin Walters  <walters@verbum.org>
4083
4084         * dbus/dbus-test-main.c (main): Take optional specific test
4085         argument.
4086
4087         * dbus/dbus-test.c (run_test): New function, runs a test function
4088         with no data directory.
4089         (run_data_test): Like above, but takes data directory.
4090         (dbus_internal_do_not_use_run_tests): Take
4091         specific test argument.  Replace lots of cut n' paste code
4092         with run_test and run_data_test.
4093
4094         * dbus/dbus-test.h: Update prototype for
4095         dbus_internal_do_not_use_run_tests.
4096
4097 2005-02-20  Havoc Pennington  <hp@redhat.com>
4098
4099         Fix bugs reported by Daniel P. Berrange
4100         
4101         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4102         (protected_change_watch): new function
4103         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4104         (_dbus_server_add_watch): change to work like the
4105         dbus-connection.c equivalents; like those, probably kind of
4106         busted, but should at least mostly work for now
4107         (dbus_server_disconnect): drop the lock if we were already
4108         disconnected, patch from Daniel P. Berrange
4109
4110         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4111         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4112         same stuff
4113
4114         * doc/TODO: todo about unscrewing this mess
4115
4116 2005-02-19  Colin Walters  <walters@verbum.org>
4117
4118         * glib/dbus-binding-tool-glib.c
4119         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4120
4121         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4122         as errno.h and sys/stat.h.
4123         (lose): New function, prints error with
4124         newline and exits.
4125         (lose_gerror): Similar, but takes GError for message.
4126         (main): Add --output argument to specify output file to write to,
4127         instead of always printing to stdout.  In this mode, determine
4128         timestamps on source files to see whether any are newer than the
4129         target file.  If not, exit.  Also convert a number of error
4130         messages to use lose (since it's shorter), and switch to using
4131         g_io_channel_shutdown.
4132
4133 2005-02-19  Havoc Pennington  <hp@redhat.com>
4134
4135         * glib/dbus-gobject.c
4136         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4137
4138         * glib/dbus-glib.c: fix doxygen warnings
4139
4140         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4141         is found on an <arg>
4142
4143 2005-02-17  Colin Walters  <walters@verbum.org>
4144
4145         * glib/dbus-gobject.h: Don't export
4146         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4147         
4148         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4149         (invoke_object_method): Handle it.
4150
4151         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4152         Handle rename.
4153         
4154 2005-02-17  Colin Walters  <walters@verbum.org>
4155
4156         * bus/.cvsignore, doc/.cvsignore
4157         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4158         Update.
4159
4160 2005-02-17  Colin Walters  <walters@verbum.org>
4161         
4162         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4163         Rename to DBUS_SERVICE_DBUS.
4164         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4165         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4166         Change the value from "org.freedesktop.Local"
4167         to "org.freedesktop.DBus.Local".
4168         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4169         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4170         DBUS_INTERFACE_INTROSPECTABLE.
4171         Change the value from "org.freedesktop.Introspectable"
4172         to "org.freedesktop.DBus.Introspectable".
4173         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4174         DBUS_INTERFACE_PROPERTIES.
4175         Change the value from "org.freedesktop.Properties"
4176         to "org.freedesktop.DBus.Properties".
4177         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4178         DBUS_INTERFACE_PEER.
4179         Change the value from "org.freedesktop.Peer"
4180         to "org.freedesktop.DBus.Peer".
4181         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4182         DBUS_INTERFACE_LOCAL.
4183         Change the value from "org.freedesktop.Local"
4184         to "org.freedesktop.DBus.Local".
4185
4186         All other users of those constants have been changed.
4187
4188         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4189
4190         * glib/dbus-gobject.c (handle_introspect): Use constants.
4191
4192         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4193
4194 2005-02-17  Colin Walters  <walters@verbum.org>
4195
4196         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4197         (parse_node, parse_interface, parse_method, parse_signal)
4198         (parse_property, parse_annotation): Lose if we're currently in an
4199         annotation.
4200         (parse_annotation): New function.
4201         (parser_start_element, parser_end_element): Handle annotation.
4202         (parse_method, parse_interface): Remove support for c_name attribute,
4203         switch to annotations.
4204
4205         * glib/dbus-gidl.h (interface_info_get_binding_names)
4206         (method_info_get_binding_names)
4207         (interface_info_get_binding_name, method_info_get_binding_name)
4208         (interface_info_set_binding_name, method_info_set_binding_name):
4209         Remove.
4210         (interface_info_get_annotations, method_info_get_annotations)
4211         (interface_info_get_annotation, method_info_get_annotation)
4212         (interface_info_add_annotation, method_info_add_annotation):
4213         Prototype.
4214
4215         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4216         for "bindings".
4217         (struct MethodInfo): Ditto.
4218         Straightfoward conversion of binding methods into annotation methods
4219         as prototyped.
4220
4221         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4222
4223         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4224
4225         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4226         Use new annotation API.
4227
4228         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4229         annotation element.
4230         
4231         * doc/dbus-specification.xml: Discuss introspection annotations,
4232         include list of well-known annotations.
4233
4234         * test/glib/test-service-glib.xml: Make validate against new DTD.
4235
4236 2005-02-17  Colin Walters  <walters@verbum.org>
4237
4238         This patch is based on initial work from
4239         Paul Kuliniewicz <kuliniew@purdue.edu>.
4240
4241         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4242         initialization of GValue from dbus type to here.
4243         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4244         for the "glib-genmarshal" program from a DBus type.
4245         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4246         into the C name for it we use in the glib bindings.
4247         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4248         glib C type (not GValue).
4249         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4250
4251         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4252         from dbus-gobject.c.
4253
4254         * glib/dbus-gutils.h: Prototype it.
4255
4256         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4257         (marshal_dbus_message_to_g_marshaller): Use new shared function
4258         dbus_glib_marshal_dbus_message_to_gvalue_array.
4259
4260         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4261         Will be changed once we have annotations.
4262
4263         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4264         GStaticRWLock.  Callers updated.
4265         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4266         (string_table_next): New function for iterating over zero-terminated
4267         string value array.
4268         (string_table_lookup): New function; retrieves specific entry in
4269         array.
4270         (get_method_data): New function; look up method data in object data chunk.
4271         (object_error_domain_prefix_from_object_info)
4272         (object_error_code_from_object_info): New functions, but not implemented yet.
4273         (method_interface_from_object_info): New function; retrieve interface name.
4274         (method_name_from_object_info): New function; retrieve method name.
4275         (method_arg_info_from_object_info): New function; retrieve argument data.
4276         (arg_iterate): New function; iterates over serialized argument data.
4277         (method_dir_signature_from_object_info): New function; returns a
4278         GString holding type signature for arguments for just one
4279         direction (input or output).
4280         (method_input_signature_from_object_info)
4281         (method_output_signature_from_object_info): New functions.
4282         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4283         converts dbus message arguments into a GValue array.  Used for both
4284         signal handling and method invocation.
4285         (struct DBusGlibWriteIterfaceData): New utility structure.
4286         (write_interface): New function; generate introspection XML for
4287         an interface.
4288         (introspect_interfaces): New function; gathers all interface->methods,
4289         generates introspection XML for them.
4290         (handle_introspect): Invoke introspect_interfaces.
4291         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4292         (lookup_object_and_method): New function; examines an incoming message
4293         and attempts to match it up (via interface, method name, and argument
4294         signature) with a known object and method.
4295         (gerror_domaincode_to_dbus_error_name): New function; converts a
4296         GError domain and code into a DBus error name.  Needs GError data
4297         added to object introspection to work well.
4298         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4299         GError.
4300         (invoke_object_method): New function to invoke an object method
4301         looked up via lookup_object_and_method.  Parses the incoming
4302         message, turns it into a GValue array, then invokes the marshaller
4303         specified in the DBusGMethodInfo.  Creates a new message with
4304         either return values or error message as appropriate.
4305         (gobject_message_function): Invoke lookup_object_and_method and
4306         invoke_object_method.
4307
4308         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4309         (enum DBusBindingOutputMode): New enum for binding output modes.
4310         (pretty_print): Print binding names.
4311         (dbus_binding_tool_error_quark): GError bits.
4312         (version): Fix typo.
4313         (main): Create GIOChannel for output.  Parse new --mode argument,
4314         possible values are "pretty-print", "glib-server", "glib-client".
4315         Use mode to invoke appropriate function.
4316         
4317         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4318
4319         * glib/dbus-glib-tool.h: New header, just includes GError bits
4320         for now.
4321
4322         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4323         maps binding style to name.
4324         (struct MethodInfo): Ditto.
4325         (get_hash_keys, get_hash_key): Utility function, returns keys for
4326         a GHashTable.
4327         (interface_info_new, method_info_new): Initialize bindings.
4328         (interface_info_unref, method_info_unref): Destroy bindings.
4329         (method_info_get_binding_names, method_info_get_binding_name)
4330         (interface_info_get_binding_names, interface_info_get_binding_name):
4331         Functions for retrieving binding names.
4332         (method_info_set_binding_name, interface_info_set_binding_name):
4333         Functions for setting binding names.
4334
4335         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4336         for glib binding generation.
4337
4338         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4339         and client-side glib glue generation.
4340
4341         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4342         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4343         dbus-glib-tool.h.
4344
4345         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4346         of using GClosureMarshal directly.
4347         (struct DBusGObjectInfo): Add n_infos member.
4348
4349         * test/glib/test-service-glib.xml: New file; contains introspection data
4350         for MyTestObject used in test-service-glib.c.
4351
4352         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4353         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4354         (my_object_uppercase, my_object_many_args): New test methods.
4355         (main): Use dbus_g_object_class_install_info to include generated object
4356         info.
4357
4358         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4359         as well as client-side bindings.
4360
4361         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4362         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4363         using both the dbus_gproxy stuff directly as well as the generated bindings.
4364
4365 2005-02-15  Havoc Pennington  <hp@redhat.com>
4366
4367         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4368         complete a pending call, don't run filters first.
4369
4370         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4371         dbus_pending_call_steal_reply
4372
4373         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4374         _dbus_connection_block_pending_call
4375         (dbus_pending_call_get_reply): change to steal_reply and return a
4376         ref
4377
4378         * dbus/dbus-connection.c
4379         (dbus_connection_send_with_reply_and_block): port to work in terms
4380         of DBusPendingCall
4381         (_dbus_connection_block_pending_call): replace block_for_reply
4382         with this
4383
4384 2005-02-14  Havoc Pennington  <hp@redhat.com>
4385
4386         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4387         properly handle looking up group information by name; fix 
4388         from j@bootlab.org
4389
4390 2005-02-13  Havoc Pennington  <hp@redhat.com>
4391
4392         * dbus/dbus-connection.c (dbus_connection_return_message) 
4393         (dbus_connection_borrow_message): hold dispatch lock while message
4394         is outstanding
4395         (_dbus_connection_block_for_reply): hold dispatch lock while we
4396         block for the reply, so nobody steals our reply
4397         (dbus_connection_pop_message): hold the dispatch lock while we
4398         pluck the message
4399
4400 2005-02-13  Havoc Pennington  <hp@redhat.com>
4401
4402         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4403         (_dbus_connection_release_dispatch)
4404         (_dbus_connection_acquire_io_path)
4405         (_dbus_connection_release_io_path): make the mutex and condvar
4406         control access to the "acquired" flag. Drop the connection lock
4407         while waiting on the condvar. Hopefully these are baby steps in
4408         roughly the right direction.
4409
4410 2005-02-13  Havoc Pennington  <hp@redhat.com>
4411
4412         * dbus/dbus-connection.c: use separate mutexes for the condition
4413         variables; this is some kind of baseline for sanity, but the
4414         condition variables still aren't used correctly afaict
4415
4416 2005-02-13  Havoc Pennington  <hp@redhat.com>
4417
4418         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4419         fix a double-unlock
4420
4421         * dbus/dbus-connection.c
4422         (_dbus_connection_detach_pending_call_unlocked): add this
4423
4424         Initial semi-correct pass through to fix thread locking; there are
4425         still some issues with the condition variable paths I'm pretty
4426         sure
4427         
4428         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4429         lock/unlock calls
4430
4431         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4432         rename to add _unlocked
4433         (struct DBusConnection): move "dispatch_acquired" and
4434         "io_path_acquired" to use only one bit each.
4435         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4436         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4437         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4438         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4439         (_dbus_connection_remove_timeout) 
4440         (_dbus_connection_toggle_timeout): drop lock when calling out to
4441         user functions; done in a hacky/bad way.
4442         (_dbus_connection_send_and_unlock): add a missing unlock
4443         (_dbus_connection_block_for_reply): add a missing unlock
4444
4445         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4446         drop lock in a hacky probably unsafe way to call out to user
4447         function
4448
4449 2005-02-12  Havoc Pennington  <hp@redhat.com>
4450
4451         * tools/dbus-tree-view.c (info_set_func_text): display more
4452         details on args
4453
4454         * bus/driver.c (bus_driver_handle_list_services): list the bus
4455         driver
4456
4457         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4458
4459         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4460         (method_info_get_n_args): new function
4461
4462 2005-02-12  Havoc Pennington  <hp@redhat.com>
4463
4464         * bus/driver.c (bus_driver_handle_introspect): add introspection
4465         for bus driver
4466
4467 2005-02-12  Havoc Pennington  <hp@redhat.com>
4468
4469         * bus/driver.c: put the signature of each bus driver method in the
4470         table of handlers and check it on incoming calls; this isn't
4471         really useful, but going to add introspect support in a minute.
4472
4473 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4474
4475         * mono/Connection.cs: The unpredictability of finalizers in mono
4476         prevents us from deterministically disconnecting the filters from
4477         the Service class's finalizer, so move tracking of filters and
4478         matches here.  Add API for that.
4479
4480         * mono/Service.cs: Remove the code, add code which calls the
4481         methods now on the Connection class.
4482
4483 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4484
4485         * python/dbus.py (class Sender): added to support dbus signals better
4486         (Bus::add_signal_receiver): added expand_args parameter which defaults
4487         to True.  When expand args is True the signal handler will pass the 
4488         message arguments as parameters to the signal handler.  If False
4489         revert to previous behavior where the signal handler must get the
4490         argument list from the message.  This is to help port applications
4491         like HAL that have a tendancy to send variable length argument lists.
4492         self._match_rule_to_receivers is now a dict of dicts.
4493         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4494         removing it from a list
4495         (Bus::_signal_func): change signal handlers so that interface,
4496         signal_name, service, path and message are packed into a Sender
4497         object and that is passed to the handler.  If expand_args is True
4498         extract the args list from the message and append it to the parameter
4499         list
4500         
4501         * python/dbus_bindings.pyx.in (class Signature): added to support 
4502         signiature types
4503         (MessageIter::__init__): changed iteration limit to match D-BUS
4504         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4505         STRUCT and VARIENT type support
4506         (MessageIter::python_value_to_dbus_sig): made recursive to support
4507         recursive types
4508         (MessageIter::append*): added Signature, dict, tuple 
4509         support
4510
4511         * python/examples/example-client.py: added examples of getting tuples
4512         and dicts
4513
4514         * python/examples/example-service.py: added examples of sending tuples
4515         and dicts
4516
4517         * python/examples/example-signal-recipient.py: Fixed to handle new
4518         signal callback format
4519
4520 2005-02-10  Havoc Pennington  <hp@redhat.com>
4521
4522         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4523         (call dbus_g_proxy_add_signal)
4524
4525         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4526         escape the hostname
4527         (_dbus_server_new_for_domain_socket): escape the path
4528
4529         * dbus/dbus-address.c (dbus_address_escape_value): new
4530         (dbus_address_unescape_value): new
4531         (dbus_parse_address): unescape values
4532
4533         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4534
4535         * doc/dbus-specification.xml: explain how to escape values in
4536         addresses
4537
4538 2005-02-10  Havoc Pennington  <hp@redhat.com>
4539
4540         * dbus/dbus-message-factory.c (generate_special): modify test to
4541         avoid using a non-basic dict key
4542
4543         * dbus/dbus-marshal-validate-util.c: add test for the below
4544
4545         * doc/dbus-specification.xml: require that dict keys are a basic
4546         type
4547
4548         * dbus/dbus-marshal-validate.c
4549         (_dbus_validate_signature_with_reason): require that dict key is a
4550         basic type
4551
4552 2005-02-10  Havoc Pennington  <hp@redhat.com>
4553
4554         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4555         change to be _and_unlock instead of _unlocked
4556
4557         * dbus/dbus-connection.c
4558         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4559         have no_update so we can find this bug quickly in future
4560
4561 2005-02-10  Havoc Pennington  <hp@redhat.com>
4562
4563         * dbus/dbus-message-util.c (verify_test_message): tests for string
4564         array
4565
4566         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4567         support for arrays of string/signature/path
4568
4569 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4570
4571         * dbus/dbus-connection.c
4572         (_dbus_connection_queue_received_message_link,
4573         _dbus_connection_message_sent): Add the path to
4574         the verbose output.
4575         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4576         _dbus_connection_send_preallocated_unlocked(), updated the
4577         dispatch status, and unlocks.  Fixes a bug where certain
4578         situations (like a broken pipe) could cause a Disconnect message
4579         to not be sent, tricking the bus into thinking a service was still
4580         there when the process had quit.
4581         (_dbus_connection_send_preallocated): Call
4582         _dbus_connection_send_preallocated_and_unlock().
4583         (_dbus_connection_send_and_unlock): Added.  Calls
4584         _dbus_connection_send_preallocated_and_unlock().
4585         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4586         (dbus_connection_send_with_reply): Update the dispatch status and
4587         unlock.
4588
4589         * mono/Service.cs (~Service): Added.  Removes the filter so that
4590         we don't get unmanaged code calling back into a GCed delegate.
4591         (RemoveFilter); Added.
4592
4593 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4594
4595         * dbus/dbus-message.c (dbus_message_iter_open_container):
4596         - Removed check for iterator type being an array because
4597         get_arg_type does not work with writer iterators
4598         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4599
4600 2005-02-07  Havoc Pennington  <hp@redhat.com>
4601
4602         * doc/dbus-specification.xml: some more language cleanups; add
4603         stuff about how to deal with invalid protocol and extension
4604         points; add _ to allowed chars in auth commands; add EXTENSION_
4605         auth command prefix
4606
4607 2005-02-06  Havoc Pennington  <hp@redhat.com>
4608
4609         * s/expected/required/ in a couple places for clarity
4610
4611 2005-02-07  Colin Walters  <walters@verbum.org>
4612
4613         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4614         sender or proposed_recipient.
4615
4616 2005-02-06  Havoc Pennington  <hp@redhat.com>
4617
4618         * dbus/dbus-message-factory.c (generate_special): more tests
4619
4620         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4621         array length that exceeds the maximum
4622
4623 2005-02-05  Havoc Pennington  <hp@redhat.com>
4624
4625         * dbus/dbus-message-factory.c (generate_special): more test cases,
4626         increasing coverage
4627
4628         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4629         reason why a signature was invalid
4630
4631         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4632         skip the length of the string before we look at it in validation
4633
4634         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4635         equal_substring
4636
4637         * dbus/dbus-message.c (_dbus_message_loader_new): default
4638         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4639
4640 2005-02-05  Havoc Pennington  <hp@redhat.com>
4641
4642         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4643         if the signature of a variant was empty
4644         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4645         struct with no element type)
4646
4647         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4648         mangled messages to break things
4649
4650 2005-02-04  Havoc Pennington  <hp@redhat.com>
4651
4652         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4653         g_quark_try_string() so it actually can return 0
4654         (dbus_g_proxy_connect_signal): ditto
4655
4656 2005-02-04  Havoc Pennington  <hp@redhat.com>
4657
4658         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4659         bogus warning
4660         (tristring_from_message): assert cleanly on null path/interface
4661         (should not be possible though I decided later)
4662         (dbus_g_proxy_dispose): move proxy manager unregistration here
4663         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4664         g_return_if_fail() checks
4665
4666 2005-02-04  Havoc Pennington  <hp@redhat.com>
4667
4668         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4669
4670         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4671         (with some minor changes)
4672
4673         * doc/dbus-specification.xml: add deprecated attribute to
4674         introspection format
4675
4676 2005-01-31  Havoc Pennington  <hp@redhat.com>
4677
4678         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4679         think it's sort of right
4680
4681 2005-01-30  Havoc Pennington  <hp@redhat.com>
4682
4683         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4684
4685 2005-01-30  Havoc Pennington  <hp@redhat.com>
4686
4687         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4688
4689         * autogen.sh: change to autotools 1.9
4690
4691         * glib/dbus-gproxy.c: completely change how signals work
4692         (dbus_g_proxy_add_signal): new function to specify signature of a
4693         signal
4694         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4695         and g_warning if the incoming message has the wrong signature.
4696
4697 2005-01-30  Havoc Pennington  <hp@redhat.com>
4698
4699         * tools/dbus-names-model.c (have_names_notify): fix this
4700
4701         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4702         up the string array handling a bit 
4703
4704 2005-01-30  Havoc Pennington  <hp@redhat.com>
4705
4706         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4707         (dbus_g_pending_call_cancel): new function
4708
4709         * dbus/dbus-glib.h: move GType decls for connection/message here;
4710         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4711         here, just kind of rationalizing how we handle all that
4712
4713         * tools/dbus-names-model.c: new file for a tree model listing the
4714         services on a bus
4715
4716         * tools/dbus-tree-view.c (model_new): use proper typing on the
4717         model rows
4718
4719 2005-01-30  Havoc Pennington  <hp@redhat.com>
4720
4721         * glib/dbus-gmain.c: add a custom GSource back that just checks
4722         whether the message queue has anything in it; otherwise, there are 
4723         cases where we won't see messages in the queue since there was no 
4724         IO visible to the glib main loop
4725
4726         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4727         increase default message timeout to 25 seconds
4728
4729 2005-01-30  Havoc Pennington  <hp@redhat.com>
4730
4731         * test/glib/test-profile.c (no_bus_stop_server): remove the
4732         warning about the g_warning that I just fixed
4733
4734         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4735         custom source, seems to be a lot easier to understand and work
4736         better.
4737
4738 2005-01-30  Havoc Pennington  <hp@redhat.com>
4739
4740         I think this main loop thing is conceptually broken, but here are 
4741         some band aids. I'll maybe rewrite it in a minute.
4742         
4743         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4744         custom GSource, so don't pass it in; confusing
4745         (gsource_server_finalize, gsource_connection_finalize): add
4746         finalize handlers that remove all the watches.  
4747
4748 2005-01-30  Havoc Pennington  <hp@redhat.com>
4749
4750         * glib/dbus-gobject.c (introspect_properties): fix the XML
4751         generated
4752
4753         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4754         which effectively detects the use of freed messages
4755
4756         * glib/dbus-gobject.c (handle_introspect): modify and return the
4757         reply message instead of the incoming message
4758
4759         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4760         gee, maybe it should SEND THE XML instead of just making a string
4761         and freeing it again ;-)
4762
4763         * tools/dbus-print-message.c (print_message): improve printing of
4764         messages
4765
4766         * configure.in: add debug-glib.service to the output
4767
4768 2005-01-30  Havoc Pennington  <hp@redhat.com>
4769
4770         dbus-viewer introspected and displayed the bus driver
4771         
4772         * dbus/dbus-object-tree.c 
4773         (object_tree_test_iteration): add tests for a handler registered on "/"
4774
4775         * dbus/dbus-object-tree.c
4776         (_dbus_decompose_path): fix to handle path "/" properly
4777         (run_decompose_tests): add tests for path decomposition
4778         
4779         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4780         properly
4781
4782         * glib/dbus-gobject.c (handle_introspect): fix quotes
4783
4784         * test/glib/run-test.sh: support launching the bus, then running
4785         dbus-viewer
4786
4787         * test/glib/test-service-glib.c (main): put in a trivial gobject
4788         subclass and register it on the connection
4789
4790         * bus/driver.c (bus_driver_handle_introspect): implement
4791         introspection of the bus driver service
4792
4793         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4794         identifiers, doctype decl
4795
4796         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4797         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4798         returning the service unchanged.
4799         (bus_driver_handle_message): remove old check for reply_serial in
4800         method calls, now the message type deals with that
4801         (bus_driver_handle_message): handle NULL interface
4802
4803         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4804
4805         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4806         -1 for len
4807
4808         * tools/dbus-viewer.c: add support for introspecting a service on
4809         a bus
4810
4811         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4812         (dbus_g_pending_call_unref): add
4813
4814 2005-01-29  Havoc Pennington  <hp@redhat.com>
4815
4816         * tools/dbus-tree-view.c: add support for displaying properties.
4817         (run dbus-viewer with an introspect xml file as arg, then resize
4818         the window so the tree elements show up, not sure what that is)
4819
4820         * glib/dbus-gobject.c (handle_introspect): return
4821         org.freedesktop.Properties and org.freedesktop.Introspectable
4822         interfaces when we are introspected.
4823
4824         * doc/dbus-specification.xml: allow empty interface name when 
4825         Get/Set a property
4826
4827 2005-01-29  Havoc Pennington  <hp@redhat.com>
4828
4829         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4830         though it uses glib, it could be extended for any binding in
4831         principle
4832
4833         * glib/dbus-gobject.c (gobject_message_function): change to the
4834         new way properties work
4835
4836         * dbus/dbus-protocol.h: add the new interfaces
4837
4838         * doc/dbus-specification.xml: document the introspection format,
4839         Introspectable interface, and add an org.freedesktop.Properties
4840         interface.
4841
4842         * glib/dbus-gparser.c: add support for a <property> element
4843
4844         * glib/dbus-gidl.c: add PropertyInfo
4845
4846         * glib/dbus-gobject.c (handle_introspect): put the outermost
4847         <node> outside the signal and property descriptions.
4848         (introspect_properties): export properties as <property> rather
4849         than as method calls
4850
4851 2005-01-28  Havoc Pennington  <hp@redhat.com>
4852
4853         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4854         related to authentication protocol
4855
4856 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4857
4858         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4859                 - BUS_ACTIVATION -> BUS_STARTER
4860                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4861                 - class MessageIter (__init__): Added recursion checking 
4862                 so we throw a nice error instead of just disconnecting from the
4863                 bus.
4864                 (get): Added arg_type parameter for recursion.
4865                 Removed the nil type
4866                 Added signiture type placeholder (not implemented)
4867                 Added struct type placeholder (not implemented)
4868                 Added varient type placeholder (not implemented)
4869                 Commented out dict type for now     
4870                 (get_element_type): renamed from get_array_type
4871                 (get_*): changed to use the dbus_message_iter_get_basic API
4872                 (get_*_array): removed in favor of recursive get_array method
4873                 (get_array): new recursive method which calls get to marshal
4874                 the elements of the array
4875                 (value_to_dbus_sig): New method returns the corrasponding
4876                 dbus signiture to a python value
4877                 (append): Comment out dict handling for now
4878                 Handle lists with the new recursive API
4879                 Comment out None handling for now
4880                 (append_nil): removed
4881                 (append_*): changed to use dbus_message_iter_append_basic API
4882                 (append_*_array): removed in favor of recursive append_array 
4883                 method
4884                 (__str__): Make it easier to print out recursive iterators
4885                 for debugging
4886                 - class Message (__str__): moved type inspection to the
4887                 MessageIter class' __str__ method
4888                 (get_iter): Added an append parameter wich defaults to False
4889                 If True use the new API's to create an append iterator
4890
4891         * python/dbus.py: Update to use new bindings API
4892                 - TYPE_ACTIVATION -> TYPE_STARTER
4893                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4894                 - class ActivationBus -> class StarterBus
4895                 - class RemoteObject (__call__): get an append iterator
4896                 - (_dispatch_dbus_method_call): get an append iterator
4897                 - class Object (emit_signal): get an append iterator
4898
4899         * python/examples/: Fixed up the examples to work with the new API
4900                 
4901 2005-01-28  Joe Shaw  <joeshaw@novell.com>
4902
4903         * configure.in: Bump version up to 0.30.
4904
4905         * HACKING: Add a release item to bump the version number up after 
4906         a release.
4907
4908 2005-01-28  Havoc Pennington  <hp@redhat.com>
4909
4910         * doc/dbus-specification.xml: update to describe 16-bit types and
4911         dict entries
4912
4913         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4914         assertion
4915
4916         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4917         type
4918
4919         * dbus/dbus-marshal-recursive.c: implement
4920
4921 2005-01-27  Havoc Pennington  <hp@redhat.com>
4922
4923         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4924
4925         * configure.in: find the right type for 16 and 32 bit ints as well
4926         as 64
4927
4928         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4929         the 16-bit types so people don't have to stuff them in 32-bit or
4930         byte arrays.
4931
4932 2005-01-27  Havoc Pennington  <hp@redhat.com>
4933
4934         * dbus/dbus-message.c: byteswap the message if you init an
4935         iterator to read/write from it
4936         
4937         * dbus/dbus-marshal-byteswap.c: new file implementing 
4938         _dbus_marshal_byteswap()
4939
4940         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4941
4942 2005-01-26  Havoc Pennington  <hp@redhat.com>
4943         
4944         * dbus/dbus-marshal-validate-util.c: break this out (and fix
4945         build, apparently - nobody noticed?)
4946         
4947 2005-01-26  Havoc Pennington  <hp@redhat.com>
4948
4949         * dbus/dbus-marshal-recursive.h: remove todo comment
4950
4951 2005-01-25  Joe Shaw  <joeshaw@novell.com>
4952
4953         * Land the mono binding changes to conform to the new APIs.
4954
4955         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4956         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4957
4958         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
4959         type code as a string.
4960         (InitAppending): Rename dbus_message_append_iter_init() to
4961         dbus_message_iter_init_append().
4962
4963         * mono/BusDriver.cs: Rename ServiceEventHandler to
4964         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
4965         Rename ServiceOwnerChanged to NameOwnerChanged.
4966
4967         * mono/Connection.cs: Rename BaseService to UniqueName, and the
4968         underlying C call.
4969
4970         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
4971
4972         * mono/Service.cs: Rename Exists to HasOwner, internally rename
4973         dbus_bus_acquire_service() to dbus_bus_request_name().
4974
4975         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4976         of Type.UnderlyingSystemType to get the correct element type for
4977         the array.
4978         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4979         dbus_message_get_{element|arg}_type() instead of
4980         dbus_message_iter_init_array_iterator().
4981         (Append): Replace dbus_message_iter_append_array() with
4982         dbus_message_iter_open_container() and
4983         dbus_message_iter_close_container().
4984
4985         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
4986         types have been removed.
4987         
4988         * mono/DBusType/*.cs: Replace calls of
4989         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4990         but specify the type in the DllImport extern declaration.  Ditto
4991         for dbus_message_iter_append_[type]() ->
4992         dbus_message_iter_append_basic().
4993
4994         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4995         NameOwnerChangedHandler.
4996
4997 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
4998
4999         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5000                 - get_base_service -> get_unique_name
5001                 - bus_get_base_service -> bus_get_unique_name
5002                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5003                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5004                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5005                 - bus_activate_service -> bus_start_service_by_name
5006                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5007                 - bus_acquire_service -> bus_request_name
5008                 - dbus_bus_acquire_service -> dbus_bus_request_name
5009                 - bus_service_exists -> bus_name_has_owner
5010                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5011
5012         * python/dbus.py: Rename of methods
5013                 - activate_service -> start_service_by_name
5014                 - bus_acquire_service -> bus_request_name
5015                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5016                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5017
5018         
5019 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5020
5021         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5022         signature for the method that can't be found.
5023
5024         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5025         the message has any arguments, we need to call
5026         _dbus_type_reader_get_current_type(), not
5027         _dbus_type_reader_has_next().
5028
5029 2005-01-24  Havoc Pennington  <hp@redhat.com>
5030
5031         * dbus/dbus-message-factory.c: more testing of message validation
5032
5033         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5034         header
5035
5036 2005-01-23  Havoc Pennington  <hp@redhat.com>
5037
5038         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5039         get this all working, not many tests in the framework yet though
5040
5041 2005-01-22  Havoc Pennington  <hp@redhat.com>
5042
5043         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5044         tutorial, based on work from David Wheeler.
5045
5046 2005-01-21  Havoc Pennington  <hp@redhat.com>
5047
5048         * dbus/dbus-bus.c: add more return_if_fail checks
5049
5050         * dbus/dbus-message.c (load_message): have the "no validation"
5051         mode (have to edit the code to toggle the mode for now though)
5052
5053         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5054         skips all validation; I want to use this at least for benchmark
5055         baseline, I'm not sure if it should be a publicly-available switch.
5056
5057 2005-01-21  Havoc Pennington  <hp@redhat.com>
5058
5059         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5060         toplevel doxygen group as the low-level API stuff
5061
5062         * dbus/dbus.h: note that libdbus is the low-level API
5063
5064 2005-01-20  Havoc Pennington  <hp@redhat.com>
5065
5066         * update-dbus-docs.sh: script to update docs on the web site, only
5067         works for me though. neener.
5068
5069 2005-01-20  Havoc Pennington  <hp@redhat.com>
5070
5071         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5072         code can reveal bugs in it
5073
5074 2005-01-20  Havoc Pennington  <hp@redhat.com>
5075
5076         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5077         select() version, patches from Tor Lillqvist
5078
5079 2005-01-20  Havoc Pennington  <hp@redhat.com>
5080
5081         * doc/dbus-tutorial.xml: replace > with &gt;
5082
5083         * bus/services.c (bus_registry_acquire_service): validate the name
5084         and return a better error if it's no good.
5085
5086         * doc/dbus-specification.xml: note NO_AUTO_START change
5087
5088         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5089         from AUTO_START, we're toggling the default
5090
5091         * bus/dispatch.c: adapt the tests to change of auto-start default
5092
5093 2005-01-18  Havoc Pennington  <hp@redhat.com>
5094
5095         * rename dbus-daemon-1 to dbus-daemon throughout
5096
5097 2005-01-18  Havoc Pennington  <hp@redhat.com>
5098
5099         * Throughout, grand renaming to strip out the use of "service",
5100         just say "name" instead (or "bus name" when ambiguous).  Did not
5101         change the internal code of the message bus itself, only the
5102         programmer-facing API and messages.
5103         
5104         * doc/dbus-specification.xml: further update the message bus section
5105         
5106         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5107         in error case
5108
5109 2005-01-17  Havoc Pennington  <hp@redhat.com>
5110
5111         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5112         ever
5113
5114         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5115         "invalid name character" not only non-ASCII
5116
5117         * doc/dbus-specification.xml: further update spec, message bus 
5118         parts are still out-of-date but the marshaling etc. stuff is now
5119         accurate-ish
5120
5121 2005-01-17  Havoc Pennington  <hp@redhat.com>
5122
5123         * doc/dbus-specification.xml: partially update spec
5124
5125 2005-01-17  Havoc Pennington  <hp@redhat.com>
5126
5127         * Throughout, align variant bodies according to the contained
5128         type, rather than always to 8. Should save a fair bit of space in
5129         message headers.
5130         
5131         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5132         fix handling of case where p == end
5133
5134         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5135
5136 2005-01-17  Havoc Pennington  <hp@redhat.com>
5137
5138         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5139
5140         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5141         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5142         are marshaling/unmarshaling a boolean.
5143
5144 2005-01-16  Havoc Pennington  <hp@redhat.com>
5145
5146         This is about it on what can be disabled/deleted from libdbus
5147         easily, back below 150K anyhow. Deeper cuts are more work than 
5148         just turning the code off as I've done here.
5149         
5150         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5151         signed int convenience funcs
5152
5153         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5154         verbose mode
5155
5156         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5157         things out of libdbus
5158
5159         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5160         
5161         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5162         tests-enabled-only, though it should probably be deleted)
5163
5164         * dbus/dbus-message-util.c: same stuff
5165
5166         * dbus/dbus-auth-util.c: same stuff
5167
5168 2005-01-16  Havoc Pennington  <hp@redhat.com>
5169
5170         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5171
5172         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5173         way for stripping down dbus-userdb.c stuff included in libdbus.
5174         Rename _dbus_parse_uid for consistency.
5175
5176 2005-01-16  Havoc Pennington  <hp@redhat.com>
5177
5178         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5179         name the assertion failed in
5180
5181         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5182         (_dbus_return_val_if_fail): assert that the name of the function
5183         containing the check doesn't start with '_', since we only want to 
5184         use checks on public functions
5185         
5186         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5187         checks to assertions
5188
5189         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5190         change checks to asserts for private function
5191
5192         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5193         to asserts for private function
5194
5195         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5196         broken assertion that was breaking make check
5197         (_dbus_type_reader_array_is_empty): remove this rather than fix
5198         it, was only used in assertions
5199
5200 2005-01-16  Havoc Pennington  <hp@redhat.com>
5201
5202         * test/unused-code-gc.py: hacky script to find code that's used
5203         only by the bus (not libdbus) or used only by tests or not used at
5204         all. It has some false alarms, but looks like we can clean up a
5205         lot of size from libdbus.
5206
5207         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5208         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5209         
5210 2005-01-16  Havoc Pennington  <hp@redhat.com>
5211
5212         * Add and fix docs according to Doxygen warnings throughout
5213         source.
5214         
5215         * dbus/dbus-marshal-recursive.c
5216         (_dbus_type_reader_array_is_empty): change this to just call
5217         array_reader_get_array_len() and make it static
5218
5219         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5220         from get_array_type
5221         (dbus_message_iter_init_append): rename from append_iter_init
5222
5223         * dbus/dbus-marshal-recursive.c
5224         (_dbus_type_reader_get_element_type): rename from
5225         _dbus_type_reader_get_array_type
5226
5227 2005-01-15  Havoc Pennington  <hp@redhat.com>
5228
5229         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5230
5231         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5232         when DBUS_DISABLE_ASSERT
5233         (_dbus_marshal_set_basic): be sure we align for the string length
5234
5235         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5236         this look faster
5237
5238         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5239         inline macro version
5240         (_dbus_string_set_byte): provide inline macro version
5241
5242 2005-01-15  Havoc Pennington  <hp@redhat.com>
5243
5244         * Land the new message args API and type system.
5245
5246         This patch is huge, but the public API change is not 
5247         really large. The set of D-BUS types has changed somewhat, 
5248         and the arg "getters" are more geared toward language bindings;
5249         they don't make a copy, etc.
5250
5251         There are also some known issues. See these emails for details
5252         on this huge patch:
5253         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5254         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5255         
5256         * dbus/dbus-marshal-*: all the new stuff
5257
5258         * dbus/dbus-message.c: basically rewritten
5259
5260         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5261         freed blocks to be all non-nul bytes so using freed memory is less
5262         likely to work right
5263
5264         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5265         DBUS_FAIL_MALLOC=N environment variable, so you can do
5266         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5267         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5268         thorough.
5269
5270         * qt/message.cpp: port to the new message args API
5271         (operator<<): use str.utf8() rather than str.unicode()
5272         (pretty sure this is right from the Qt docs?)
5273
5274         * glib/dbus-gvalue.c: port to the new message args API
5275
5276         * bus/dispatch.c, bus/driver.c: port to the new message args API
5277
5278         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5279         "locked" flag to TRUE and align_offset to 0; I guess we never
5280         looked at these anyhow, but seems cleaner.
5281
5282         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5283         move allocation padding macro to this header; use it to implement
5284         (_DBUS_STRING_STATIC): ability to declare a static string.
5285
5286         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5287         change to return TRUE if the interface is not set.
5288
5289         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5290         to dbus-marshal-validate.[hc]
5291
5292         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5293         dbus-internals.c
5294
5295         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5296         to dbus-marshal-*.[hc]
5297
5298         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5299         function here from dbus-marshal.c
5300
5301 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5302
5303         * NEWS: Update for 0.23.
5304
5305         * configure.in: Release 0.23.
5306
5307 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5308
5309         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5310         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5311         behind.
5312
5313         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5314         uninstall"
5315
5316         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5317         is an enum, get the enum's underlying type.  Another mono
5318         1.1.3 fix.
5319
5320 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5321
5322         Patch from Sjoerd Simons <sjoerd@luon.net>
5323
5324         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5325         DESTDIR.  It breaks stuff.
5326
5327 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5328
5329         Patch from Tambet Ingo <tambet@ximian.com>
5330
5331         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5332         calling type.GetElementType().  The code previously depended on
5333         broken Mono behavior, which was fixed in Mono 1.1.3.
5334
5335         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5336         Activator.CreateInstance() so that the class's constructor is
5337         called with the right parameters.
5338
5339 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5340
5341         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5342
5343         * dbus/dbus-connection.c
5344         (_dbus_connection_queue_received_message_link): Call
5345         _dbus_connection_remove_timeout() instead of the _locked()
5346         variant, since it's always called from
5347         _dbus_connection_handle_watch(), which handles the locking.
5348         Removed the _locked() variant since it's no longer used.
5349
5350 2005-01-03  Havoc Pennington  <hp@redhat.com>
5351
5352         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5353         return
5354         
5355 2004-12-26  Havoc Pennington  <hp@redhat.com>
5356
5357         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5358
5359 2005-01-03  Havoc Pennington  <hp@redhat.com>
5360
5361         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5362         floating point
5363
5364         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5365
5366 2005-01-02  Havoc Pennington  <hp@redhat.com>
5367
5368         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5369
5370 2005-01-01  Havoc Pennington  <hp@redhat.com>
5371
5372         * configure.in: add -Wfloat-equal
5373
5374 2005-01-01  Havoc Pennington  <hp@redhat.com>
5375
5376         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5377         for a variety of reasons '==' doesn't do this.
5378
5379 2004-12-31  Havoc Pennington  <hp@redhat.com>
5380
5381         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5382         I keep wishing I had
5383
5384 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5385
5386         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5387
5388 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5389
5390         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5391         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5392         dbus-protocol.h.  Because they are defines and not enums they are not
5393         autogenerated.
5394
5395 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5396
5397         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5398         dbus_bus_activate_service
5399
5400         * python/dbus.py (Bus.activate_service): activate a service on the
5401         bus.
5402
5403 2004-12-24  Havoc Pennington  <hp@redhat.com>
5404
5405         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5406         file format has also changed and I haven't adapted to that yet
5407         
5408         * Makefile.am: load .gcno files from latest gcc
5409
5410 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5411         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5412
5413         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5414         lowlevel binding
5415
5416         * python/dbus.py (get_unix_user): Added binding to 
5417         call dbus_bindings.bus_get_unix_user
5418
5419         * python/extract.py: Modified the proto_pat regex to
5420         handle unsigned long
5421
5422 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5423
5424         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5425         better POSIX compliance.
5426
5427 2004-12-19  Havoc Pennington  <hp@redhat.com>
5428
5429         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5430         (_dbus_string_insert_8_aligned): new functions
5431
5432         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5433
5434 2004-12-18  Havoc Pennington  <hp@redhat.com>
5435
5436         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5437         macro
5438
5439         * dbus/dbus-message.c: fix a comment, and add a still-unused
5440         not-implemented function
5441
5442         * dbus/dbus-marshal.h: fix comment
5443
5444         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5445
5446 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5447
5448         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5449         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5450         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5451         Type.UnderlyingSystemType to get the actual system type
5452         underneath.  This code previously depended on the broken Mono
5453         behavior, which was fixed in 1.1.3.
5454
5455 2004-11-27  Havoc Pennington  <hp@redhat.com>
5456
5457         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5458         are disabled
5459         (_dbus_string_get_const_data): inline when asserts are disabled
5460
5461         * dbus/dbus-message.c: record the _dbus_current_generation of
5462         creation so we can complain if dbus_shutdown() is used improperly.
5463         Do this only if checks are enabled.
5464
5465         * dbus/dbus-connection.c: ditto
5466         
5467 2004-11-26  Havoc Pennington  <hp@redhat.com>
5468
5469         * test/glib/test-profile.c: add with_bus mode to profile echoes
5470         that go through the bus.
5471
5472         * test/glib/run-test.sh: add ability to run test-profile
5473
5474         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5475         config file reload.
5476
5477 2004-11-26  Havoc Pennington  <hp@redhat.com>
5478
5479         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5480         thing was implemented
5481
5482 2004-11-26  Havoc Pennington  <hp@redhat.com>
5483
5484         * test/glib/test-profile.c: tweak a bit, add support for some
5485         made-up minimal malloc overhead with plain sockets, since in 
5486         real life some sort of buffers are unavoidable thus we could 
5487         count them in the theoretical best case
5488
5489 2004-11-26  Havoc Pennington  <hp@redhat.com>
5490
5491         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5492         where I was trying to cache one too many messages
5493
5494 2004-11-26  Havoc Pennington  <hp@redhat.com>
5495
5496         * dbus/dbus-message.c: reimplement message cache as an array which 
5497         makes the cache about twice as fast and saves maybe 1.5% overall
5498
5499 2004-11-26  Havoc Pennington  <hp@redhat.com>
5500
5501         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5502         message cache lock here
5503
5504 2004-11-26  Havoc Pennington  <hp@redhat.com>
5505
5506         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5507         the "char byte_order" next to each other to save 4 bytes
5508         (dbus_message_new_empty_header): reduce preallocation, since the
5509         message cache should achieve a similar effect
5510         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5511         message cache that keeps a few DBusMessage around in a pool,
5512         another 8% speedup or so.
5513
5514         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5515
5516 2004-11-25  Havoc Pennington  <hp@redhat.com>
5517
5518         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5519         to write, without reading or blocking, try it before the poll()
5520         and skip the poll() if nothing remains to write. This is about a
5521         3% speedup in the echo client/server
5522
5523 2004-11-25  Havoc Pennington  <hp@redhat.com>
5524
5525         The primary change here is to always write() once before adding
5526         the write watch, which gives us about a 10% performance increase.
5527         
5528         * dbus/dbus-transport-unix.c: a number of modifications to cope
5529         with removing messages_pending
5530         (check_write_watch): properly handle
5531         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5532         messages_pending stuff
5533         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5534         AUTHENTICATED cases
5535         (unix_handle_watch): after writing, see if the write watch can be
5536         removed
5537         (unix_do_iteration): assert that write_watch/read_watch are
5538         non-NULL rather than testing that they aren't, since they 
5539         aren't allowed to be NULL. check_write_watch() at the end so 
5540         we add the watch if we did not finish writing (e.g. got EAGAIN)
5541
5542         * dbus/dbus-transport-protected.h: remove messages_pending call,
5543         since it resulted in too much inefficient watch adding/removing; 
5544         instead we now require that the transport user does an iteration 
5545         after queueing outgoing messages, and after trying the first
5546         write() we add a write watch if we got EAGAIN or exceeded our 
5547         max bytes to write per iteration setting
5548
5549         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5550         function
5551
5552         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5553         freed and then accessed, valgrind flagged this bug, fix it
5554
5555         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5556         as the last valid field plus 1, where really it is equal to the
5557         last valid field. Corrects some message corruption issues.
5558
5559         * dbus/dbus-mainloop.c: verbosity changes
5560
5561         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5562         instead of aborting in one of the test codepaths
5563
5564         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5565         caused not printing the pid ever again if a verbose was missing
5566         the newline at the end
5567         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5568
5569         * dbus/dbus-connection.c: verbosity changes; 
5570         (dbus_connection_has_messages_to_send): new function
5571         (_dbus_connection_message_sent): no longer call transport->messages_pending
5572         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5573         try to write() immediately, so we can avoid the write watch. This
5574         is the core purpose of this patchset
5575         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5576         dump the outgoing message queue, so nobody will get confused
5577         trying to send them or thinking stuff is pending to be sent
5578
5579         * bus/test.c: verbosity changes
5580
5581         * bus/driver.c: verbosity/assertion changes
5582
5583         * bus/dispatch.c: a bunch of little tweaks to get it working again
5584         because this patchset changes when/where you need to block.
5585
5586 2004-11-23  Havoc Pennington  <hp@redhat.com>
5587
5588         * test/glib/test-profile.c: modify to accept a plain_sockets
5589         argument in which case it will bench plain sockets instead of
5590         libdbus, for comparison purposes.
5591
5592 2004-11-22  Havoc Pennington  <hp@redhat.com>
5593
5594         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5595         threads for more time, so sysprof can get a grip on it.
5596
5597         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5598         pointless variable
5599
5600 2004-11-13  Havoc Pennington  <hp@redhat.com>
5601
5602         * test/glib/test-profile.c: fix this thing up a bit
5603
5604         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5605         preallocation sizes by a fair bit; not sure if this will be an
5606         overall performance win or not, but it does reduce reallocs.
5607
5608         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5609         the test hack that forced constant realloc if asserts are
5610         disabled, so we can profile sanely. Sprinkle in some
5611         _DBUS_UNLIKELY() which are probably pointless, but before I
5612         noticed the real performance problem I put them in.
5613         (_dbus_string_validate_utf8): micro-optimize this thing a little
5614         bit, though callgrind says it didn't help; then special-case
5615         ascii, which did help a lot; then be sure we detect nul bytes as
5616         invalid, which is a bugfix.
5617         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5618         superstition; use memset to nul the padding instead of a manual
5619         loop.
5620         (_dbus_string_get_length): inline this as a
5621         macro; it showed up in the profile because it's used for loop
5622         tests and so forth
5623
5624 2004-11-10  Colin Walters  <walters@verbum.org>
5625
5626         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5627         for extra paranoia.
5628
5629 2004-11-09  Colin Walters  <walters@verbum.org>
5630
5631         * dbus/dbus-string.c (_dbus_string_get_length): New
5632         function, writes DBusString to C buffer.
5633
5634         * dbus/dbus-string.h: Prototype it.
5635
5636         * dbus/dbus-message.c (dbus_message_type_to_string): New
5637         function, converts message type into C string.
5638
5639         * dbus/dbus-message.h: Prototype it.
5640
5641         * bus/selinux.c (bus_selinux_check): Take source pid,
5642         target pid, and audit data.  Pass audit data to
5643         avc_has_perm.
5644         (log_audit_callback): New function, appends extra
5645         audit information.
5646         (bus_selinux_allows_acquire_service): Also take
5647         service name, add it to audit data.
5648         (bus_selinux_allows_send): Also take message
5649         type, interface, method member, error name,
5650         and destination, and add them to audit data.
5651         (log_cb): Initialize func_audit.
5652         
5653         * bus/selinux.h (bus_selinux_allows_acquire_service)
5654         (bus_selinux_allows_send): Update prototypes 
5655
5656         * bus/services.c (bus_registry_acquire_service): Pass
5657         service name to bus_selinux_allows_acquire_service.
5658
5659         * bus/bus.c (bus_context_check_security_policy): Pass
5660         additional audit data.  Move assignment of dest
5661         to its own line.
5662
5663 2004-11-07  Colin Walters  <walters@verbum.org>
5664
5665         * dbus/dbus-transport-unix.c (do_authentication): Always
5666         initialize auth_completed.
5667         
5668 2004-11-07  Colin Walters  <walters@verbum.org>
5669
5670         * bus/bus.c (load_config): Break into three
5671         separate functions: process_config_first_time_only,
5672         process_config_every_time, and process_config_postinit.
5673         (process_config_every_time): Move call of
5674         bus_registry_set_service_context_table into
5675         process_config_postinit.
5676         (process_config_postinit): New function, does
5677         any processing that needs to happen late
5678         in initialization (and also on reload).
5679         (bus_context_new): Instead of calling load_config,
5680         open config parser here and call process_config_first_time_only
5681         and process_config_every_time directly.  Later, after
5682         we have forked but before changing UID,
5683         invoke bus_selinux_full_init, and then call
5684         process_config_postinit.
5685         (bus_context_reload_config): As in bus_context_new,
5686         load parse file inside here, and call process_config_every_time
5687         and process_config_postinit.
5688
5689         * bus/services.h, bus/services.c
5690         (bus_registry_set_service_context_table): Rename
5691         from bus_registry_set_sid_table.  Take string hash from config
5692         parser, and convert them here into SIDs.
5693
5694         * bus/config-parser.c (struct BusConfigParser): Have
5695         config parser only store a mapping of service->context
5696         string.
5697         (merge_service_context_hash): New function.
5698         (merge_included): Merge context string hashes instead
5699         of using bus_selinux_id_table_union.
5700         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5701         simply create a new string hash.
5702         (bus_config_parser_unref): Unref it.
5703         (start_selinux_child): Simply insert strings into hash,
5704         don't call bus_selinux_id_table_copy_over.
5705
5706         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5707         (bus_selinux_id_table_copy_over): Delete.
5708
5709 2004-11-03  Colin Walters  <walters@verbum.org>
5710
5711         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5712         variables.
5713         
5714 2004-11-03  Colin Walters  <walters@verbum.org>
5715
5716         * bus/test-main.c (test_pre_hook): Fix test logic,
5717         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5718
5719 2004-11-02  Colin Walters  <walters@redhat.com>
5720
5721         * bus/selinux.c (bus_selinux_init): Split into two functions,
5722         bus_selinux_pre_init and bus_selinux_post_init.
5723         (bus_selinux_pre_init): Just determine whether SELinux is
5724         enabled.
5725         (bus_selinux_post_init): Do everything else.
5726
5727         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5728         config file, and bus_selinux_post_init after.  This ensures that
5729         we don't lose the policyreload notification thread that
5730         bus_selinux_init created before forking previously.
5731         
5732         * bus/test-main.c (test_pre_hook): Update for split.
5733
5734 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5735
5736         Patch from Johan Fischer <linux@fischaz.com>
5737         
5738         * mono/doc/Makefile.am (install-data-local): Added directory
5739         install for DESTDIR
5740
5741 2004-10-29  Colin Walters  <walters@redhat.com>
5742
5743         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5744         parameter for fd to write pid to.       
5745
5746         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5747         
5748         * bus/bus.c (bus_context_new): Pass print_pid_fd
5749         to _dbus_become_daemon (bug #1720)
5750
5751 2004-10-29  Colin Walters  <walters@redhat.com>
5752
5753         Patch from Ed Catmur <ed@catmur.co.uk>
5754
5755         * mono/doc/Makefile.am (install-data-local): Handle
5756         DESTDIR.
5757
5758 2004-10-29  Colin Walters  <walters@redhat.com>
5759
5760         * bus/.cvsignore, qt/.cvsignore: Update.
5761
5762 2004-10-29  Colin Walters  <walters@redhat.com>
5763
5764         Patch from Kristof Vansant <de_lupus@pandora.be>
5765
5766         * configure.in: Detect Slackware.
5767         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5768         * bus/rc.messagebus.in: New file.
5769
5770 2004-10-29  Colin Walters  <walters@redhat.com>
5771
5772         * tools/dbus-monitor.c (filter_func): Return
5773         DBUS_HANDLER_RESULT_HANDLED in filter function
5774         for now.  See:
5775         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5776
5777 2004-10-29  Colin Walters  <walters@redhat.com>
5778
5779         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5780
5781         * bus/services.c (bus_registry_acquire_service): 
5782         Correctly retrieve service name from DBusString
5783         for printing.
5784
5785 2004-10-29  Colin Walters  <walters@redhat.com>
5786
5787         * dbus/dbus-glib.h: Update documentation to not
5788         refer to internal APIs.
5789
5790 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5791
5792         * mono/Arguments.cs (GetDBusTypeConstructor):
5793         type.UnderlyingSystemType will return "System.Byte" if you do it
5794         on "byte[]", which is not what we want.  So check the type.IsArray
5795         property and use System.Array instead.
5796
5797 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5798
5799         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5800         the DBusUserInfo structure since this is passed into the function.
5801         This would cause a double free when the function that allocated
5802         the structure would try to free it when an error occured.
5803
5804         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5805         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5806         for service activation to avoid 32bit/64bit parallel install issues
5807
5808 2004-10-21  Colin Walters  <walters@verbum.org>
5809
5810         * AUTHORS: Fix my email address, the @gnu.org one
5811         has been bouncing for some time.  Also add J5.
5812         
5813 2004-10-21  Colin Walters  <walters@verbum.org>
5814
5815         * dbus/dbus-transport-unix.c (do_authentication): Return
5816         authentication status to callers.
5817         (unix_handle_watch): If we completed authentication this round,
5818         don't do another read.  Instead wait until the next iteration,
5819         after we've read any pending data in the auth buffer.
5820         (unix_do_iteration): Ditto.
5821         (unix_handle_watch): Updated for new do_authentication prototype.
5822
5823 2004-10-18  Colin Walters  <walters@verbum.org>
5824
5825         * bus/selinux.c (bus_selinux_enabled): Handle
5826         --disable-selinux case.
5827         
5828 2004-10-18  Colin Walters  <walters@verbum.org>
5829
5830         * bus/selinux.h: Add bus_selinux_enabled.
5831         
5832         * bus/selinux.c (bus_selinux_enabled): Implement it.
5833         
5834         * bus/config-parser.c (struct include): Add
5835         if_selinux_enabled member.
5836         (start_busconfig_child): Parse if_selinux_enabled
5837         attribute for include.
5838         (bus_config_parser_content): Handle it.
5839
5840         * bus/session.conf.in, bus/system.conf.in: Add
5841         inclusion of context mapping to default config files;
5842         conditional on SELinux being enabled.
5843         
5844         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5845         
5846         * test/data/invalid-config-files/badselinux-1.conf, 
5847         test/data/invalid-config-files/badselinux-2.conf:
5848         Test files for bad syntax.
5849         
5850 2004-10-17  Colin Walters  <walters@verbum.org>
5851
5852         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5853         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5854         format specifier mismatches.
5855
5856 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5857
5858         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5859         format string.
5860
5861         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5862         pointer (bug #1540, Leonardo Boiko).
5863
5864 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5865
5866         * mono/BusDriver.cs: Changed BusDriver struct to remove
5867         the ServiceCreated and ServiceDeleted events and replace them
5868         with the new ServiceOwnerChanged event.
5869
5870         * mono/example/BusListener.cs: Added a new example program,
5871         which listens for and reports any ServiceOwnerChanged events
5872         on the bus driver.
5873
5874         * mono/example/Makefile.am (DESTDIR): Build changes for the
5875         new BusListener.cs example.
5876
5877 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5878
5879         * bus/signals.c (bus_match_rule_parse): validate the components of
5880         match rules (bug #1439).
5881
5882         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5883
5884 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5885
5886         * doc/dbus-specification.xml: document ServiceOwnerChanged
5887         signal.
5888         
5889         * bus/driver.c, bus/driver.h, bus/services.c: Use
5890         ServiceOwnerChanged signal instead of ServiceCreated and
5891         ServiceDeleted.
5892         
5893         * bus/dispatch.c: update testcase for the new signal.
5894
5895 2004-09-20  Jon Trowbridge  <trow@ximian.com>
5896
5897         Patch from Nat Friedman <nat@novell.com>
5898
5899         * mono/Makefile.am: A number of small build fixes to allow "make
5900         distcheck" to succeed.
5901
5902         * mono/example/Makefile.am: "make distcheck" fixes.
5903
5904         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5905         key in @srcdir@.
5906
5907         * test/Makefile.am: "make distcheck" fixes.
5908
5909 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5910
5911         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5912
5913         * doc/busconfig.dtd: update the DTD for the at_console attribute.
5914
5915         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5916         messages after the first one (bug #1389).
5917         
5918         * bus/dispatch.c (check_double_hello_message): add a test case for
5919         the double hello message bug.
5920         (check_existent_service_activation): fix check of spawning error.
5921         
5922 2004-09-16  David Zeuthen  <david@fubar.dk>
5923
5924         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5925
5926 2004-09-12  David Zeuthen  <david@fubar.dk>
5927
5928         Patch from Kay Sievers <kay.sievers@vrfy.org>
5929
5930         * bus/bus.c (bus_context_new):
5931         * bus/bus.h:
5932         * bus/main.c (usage)
5933         (main):
5934         Add commandline option --nofork to override configuration file
5935         setting.
5936
5937 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5938
5939         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5940         compilers don't like it (bug #974).
5941
5942 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
5943
5944         * qt/connection.*: Applied patch by Jérôme Lodewyck
5945         <lodewyck@clipper.ens.fr> to integrate an existing
5946         connection into the Qt eventloop
5947
5948 2004-08-30  Jon Trowbridge  <trow@ximian.com>
5949
5950         * mono/BusDriver.cs: Added.  This is a class for interacting with
5951         the org.freedesktop.DBus service.
5952
5953         * mono/Message.cs: Added a mechanism to expose the message that is
5954         currently being dispatched via the static Message.Current
5955         property.  Added Message.Sender and Message.Destination
5956         properties.
5957
5958         * mono/Handler.cs: Expose the dispatched message via
5959         Message.Current when handling method calls.
5960
5961         * mono/Service.cs: Expose the dispatched message via
5962         Message.Current when handling signal emissions.
5963         
5964         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5965         Connection.BaseService property.
5966
5967 2004-08-28  Havoc Pennington  <hp@redhat.com>
5968
5969         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5970
5971         More fixes from Steve Grubb
5972         
5973         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5974         (_dbus_listen_tcp_socket): fix fd leak
5975
5976         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5977         EINTR to a bit lower in the code
5978
5979 2004-08-26  Jon Trowbridge  <trow@ximian.com>
5980
5981         * bus/driver.c (bus_driver_handle_service_exists): Respond with
5982         TRUE if we are inquiring about the existence of the built-in
5983         org.freedesktop.DBus service.
5984
5985 2004-08-25  John Palmieri  <johnp@redhat.com>
5986         * bus/config-parser.c:
5987         (struct PolicyType): Add POLICY_CONSOLE
5988         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5989         (start_busconfig_child): Sets up console element when
5990         <policy at_console=""> is encountered in a policy file
5991         (append_rule_from_element): Convert console elements to console
5992         rules.
5993
5994         * bus/policy.c: 
5995         (bus_policy_create_client_policy): Add console rules to the client
5996         policy based on if the client is at the console
5997         (bus_policy_append_console_rule): New function for adding a
5998         console rule to a policy
5999         (bus_policy_merge): Handle console rule merging
6000
6001         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6002         where we check for console user files
6003         
6004         * dbus/dbus-sysdeps.c:
6005         (_dbus_file_exists): New function which checks if the given
6006         file exists
6007         (_dbus_user_at_console): New function which does the system
6008         specific process of checking if the user is at the console
6009
6010         * dbus/dbus-userdb.c:
6011         (_dbus_is_console_user): New function converts a UID to user name
6012         and then calls the system specific _dbus_user_at_console to 
6013         see if the user is at the console and therefor a console user
6014
6015 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6016
6017         * bus/config-parser.c (set_limit):
6018         * bus/dbus-daemon-1.1.in:
6019         * test/data/valid-config-files/many-rules.conf: set the
6020         max_match_rules_per_connection limt from the config file. 
6021
6022         * doc/busconfig.dtd: update the DTD.
6023
6024         * bus/driver.c: remove some unused variables.
6025
6026 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6027
6028         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6029         it's been replaced by dbus_g_bus_get
6030
6031 2004-08-23  Colin Walters  <walters@redhat.com>
6032
6033         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6034
6035         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6036
6037         * bus/selinux.c: Create a thread for policy reload notification.
6038         (bus_selinux_get_policy_root): Implement.
6039
6040         * bus/config-parser.c (start_busconfig_child)
6041         (bus_config_parser_content): Support SELinux-root relative
6042         inclusion.
6043
6044         * configure.in <HAVE_SELINUX>: Add -lpthread.
6045         
6046         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6047         (test_post_hook): Move memory checking into here.
6048         (test_pre_hook, test_post_hook): Move SELinux checks in
6049         here, but conditional on a DBUS_TEST_SELINUX environment
6050         variable.  Unfortunately we can't run the SELinux checks
6051         as a normal user, since they won't have any permissions
6052         for /selinux.  So this will have to be tested manually
6053         for now, until we have virtualization for most of
6054         libselinux.
6055         
6056 2004-08-23  Havoc Pennington  <hp@redhat.com>
6057
6058         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6059         drop supplementary groups, suggested by Steve Grubb
6060
6061 2004-08-20  Colin Walters  <walters@redhat.com>
6062
6063         * bus/config-parser.c (start_busconfig_child): Remove some unused
6064         variables.
6065         
6066         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6067         warning.
6068
6069 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6070
6071         * configure.in: If --enable-mono is passed in, if we can't find
6072         mono error out.
6073
6074         * mono/Makefile.am: Use /gacutil to install assemblies into the
6075         GAC and not /root.
6076
6077 2004-08-12  Havoc Pennington  <hp@redhat.com>
6078
6079         * NEWS: update for 0.22
6080
6081         * configure.in: release 0.22
6082
6083 2004-08-11  Colin Walters  <walters@redhat.com>
6084
6085         * tools/dbus-send.c (main, usage): Add --reply-timeout
6086         argument.
6087
6088 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6089
6090         * bus/bus.c (process_config_first_time_only): get rid of an unused
6091         DBusError that was causing a memoy leak (bug #989).
6092
6093         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6094         fix compilation on Solaris/Forte C (bug #974)
6095
6096         * bus/main.c (main): plug two minuscule memleaks.
6097
6098 2004-08-10  Havoc Pennington  <hp@redhat.com>
6099
6100         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6101
6102 2004-08-09  Havoc Pennington  <hp@redhat.com>
6103
6104         * COPYING: switch to Academic Free License version 2.1 instead of
6105         2.0, to resolve complaints about patent termination clause.
6106
6107 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6108
6109         * README: added documentation for the --enable-python 
6110         configure switch.
6111
6112 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6113
6114         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6115         _unref in the SELinux support.
6116
6117         * doc/busconfig.dtd: update DTD for SELinux support.
6118
6119         * bus/config-loader-libxml.c: fix error handler and parser
6120         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6121
6122         * configure.in: remove the warning about libxml2.
6123
6124         * dbus/dbus-bus.c: silence doxygen warning.
6125
6126 2004-07-31  Colin Walters  <walters@redhat.com>
6127
6128         * configure.in: Move #error in SELinux check to its own line.
6129
6130 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6131
6132         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6133         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6134         dbus_error_set.
6135
6136         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6137         broken by the change in the _SET_OOM macros.
6138
6139 2004-07-31  Colin Walters  <walters@redhat.com>
6140
6141         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6142         BUS_SET_OOM.
6143
6144 2004-07-31  Colin Walters  <walters@redhat.com>
6145
6146         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6147         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6148         AC_MSG_CHECKING.
6149
6150 2004-07-24  Havoc Pennington  <hp@redhat.com>
6151
6152         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6153
6154         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6155         functionality
6156
6157         * configure.in: add --enable-selinux
6158         
6159         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6160
6161         * bus/main.c (main): initialize and shut down selinux
6162
6163         * bus/connection.c: store SELinux ID on each connection, to avoid 
6164         repeated getting of the string context and converting it into 
6165         an ID
6166
6167         * bus/bus.c (bus_context_get_policy): new accessor, though it
6168         isn't used
6169         (bus_context_check_security_policy): check whether the security
6170         context of sender connection can send to the security context of
6171         recipient connection
6172
6173         * bus/config-parser.c: add parsing for <selinux> and <associate>
6174         
6175         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6176         implement dbus_connection_get_unix_fd()
6177
6178         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6179         function, used by the selinux stuff
6180         
6181 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6182
6183         * bus/config-loader-libxml.c: complete the implementation of
6184         libxml backend for config file loader. Doesn't work with full OOM
6185         test yet. 
6186         
6187         * configure.in: change error when selecting libxml into a warning.
6188         
6189         * test/data/invalid-config-files: add two non-well-formed XML
6190         files. 
6191         
6192         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6193         
6194         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6195         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6196         be necessary to read all the buffer. (bug #894)
6197
6198         * bus/activation.c (bus_activation_activate_service): fix a
6199         potential assertion failure (bug #896). Small optimization in the
6200         case of auto-activation messages.
6201
6202         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6203         add test case for byte-through-vararg bug (#901). patch by Kimmo
6204         Hämäläinen. 
6205
6206 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6207
6208         * python/dbus.py:
6209         * python/dbus_bindings.pyx.in:
6210         Add dbus.init_gthreads (), allow emit_signal to pass
6211         arguments to the signal.
6212         
6213 2004-07-24  Havoc Pennington  <hp@redhat.com>
6214
6215         * AUTHORS: add some people, not really comprehensively, let me
6216         know if I missed you
6217
6218 2004-07-24  Havoc Pennington  <hp@redhat.com>
6219
6220         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6221         Owen
6222
6223         * test/Makefile.am (DIST_SUBDIRS): here also
6224
6225 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6226
6227         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6228         breaking build on Solaris, reported by Farhad Saberi on the ML.
6229
6230         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6231         va_arg invocation to account for integer promotion in the case of
6232         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6233
6234         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6235         _dbus_list_get_first_link, not _dbus_list_get_first.
6236
6237         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6238
6239         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6240         handler functions so that the asserts in _dbus_object_subtree_unref
6241         do not fail.
6242
6243         * dbus/dbus-transport-unix.c (do_reading):
6244         _dbus_transport_queue_messages return value is of type
6245         dbus_bool_t, not DBusDispatchStatus.
6246         
6247 2004-07-19  David Zeuthen  <david@fubar.dk>
6248
6249         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6250
6251         * bus/dispatch.c:
6252         (check_get_connection_unix_user): Debug says GetProperty; but the
6253         method is called GetConnectionUnixUser
6254         (check_get_connection_unix_process_id): New function
6255         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6256         also call check_get_connection_unix_process_id()
6257         
6258         * bus/driver.c:
6259         (bus_driver_handle_get_connection_unix_process_id): New function,
6260         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6261         interface
6262         
6263         * dbus/dbus-auth.c:
6264         (handle_server_data_external_mech): Set pid from the credentials
6265         obtained from the socket
6266         
6267         * dbus/dbus-connection.c:
6268         (dbus_connection_get_unix_process_id): New function
6269         
6270         * dbus/dbus-connection.h: 
6271         Add prototype for dbus_connection_get_unix_process_id
6272         
6273         * dbus/dbus-transport.c:
6274         (_dbus_transport_get_unix_process_id): New function
6275         
6276         * dbus/dbus-transport.h:
6277         Add prototype for _dbus_transport_get_unix_process_id
6278         
6279 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6280
6281         * dbus/dbus-message.c: Message counter fix, patch by Christian
6282         Hammond <chipx86@gnupdate.org>
6283
6284 2004-07-18  Seth Nickell  <seth@gnome.org>
6285
6286         * python/dbus.py:
6287         * python/dbus_bindings.pyx.in:
6288         * python/tests/test-client.py:
6289
6290         Add dbus.ByteArray and dbus_bindings.ByteArray
6291         types so that byte streams can be passed back.
6292
6293         Give jdahlin the heaps of credit that are so
6294         rightfully his.
6295         
6296 2004-07-12  Seth Nickell  <seth@gnome.org>
6297
6298         * python/dbus.py:
6299
6300         Add message argument to the default object_method_handler
6301         function.
6302         
6303         * python/dbus_bindings.pyx.in:
6304
6305         Automatically return NIL when passed an empty list
6306         (we can't pass back a list since lists are typed
6307         and we don't have any idea what type the the client
6308         intended the list to be... :-( )
6309         
6310 2004-07-10  Seth Nickell  <seth@gnome.org>
6311
6312         * python/examples/Makefile.am:
6313
6314         Fix distcheck breakage caused by new examples.
6315
6316 2004-07-10  Seth Nickell  <seth@gnome.org>
6317
6318         * python/dbus.py:
6319
6320         Add "message" argument to service-side dbus.Object
6321         methods. This will break existing services written
6322         using the python bindings, but will allow extraction
6323         of all the message information (e.g. who its from).
6324
6325         Add improved "object oriented" signal handling/emission.
6326         
6327         * python/examples/example-service.py:
6328
6329         Nix this example.
6330         
6331         * python/examples/example-signal-emitter.py:
6332         * python/examples/example-signal-recipient.py:
6333
6334         Two new examples that show how to emit and receive
6335         signals using the new APIs.
6336         
6337         * python/examples/example-signals.py:
6338         * python/examples/gconf-proxy-service.py:
6339         * python/examples/gconf-proxy-service2.py:
6340
6341         Add "message" argument to service methods.
6342
6343 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6344
6345         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6346         * dbus/bus.c (dbus_bus_get_unix_user)
6347         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6348         method of org.freedesktop.DBus interface.
6349
6350         * bus/dispatch.c: test case
6351
6352 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6353
6354         * python/Makefile.am: switched include directory from glib/ to dbus/
6355         since dbus-glib.h moved
6356  
6357 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6358
6359         * configure.in: prevent building the gcj stuff and libxml loader
6360         since they are broken.
6361
6362 2004-06-20  Havoc Pennington  <hp@redhat.com>
6363
6364         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6365         codes from the dbus error names
6366         
6367         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6368         as dbus/dbus-glib.h and that breakage is now visible due to 
6369         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6370         
6371         * glib/dbus-glib.h: s/gproxy/g_proxy/
6372
6373         * dbus/dbus-shared.h: new header to hold stuff shared with
6374         binding APIs
6375         
6376         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6377         than dbus-errors.h
6378
6379         * glib/dbus-glib.h (dbus_set_g_error): move to
6380         dbus-glib-lowlevel.h
6381
6382         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6383         of stuff to enable this
6384
6385         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6386
6387         * a bunch of other changes with the same basic "separate glib 
6388         bindings from dbus.h" theme
6389         
6390 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6391
6392         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6393
6394         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6395
6396 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6397
6398         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6399         the reply value of the ServiceExists message.
6400
6401 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6402
6403         * python/dbus_bindings.pyx.in: No longer need to parse path
6404         elements and pass them as arrays of strings.  The C API now
6405         accepts plain path strings.
6406         (_build_parsed_path): removed 
6407
6408 2004-06-07  Havoc Pennington  <hp@redhat.com>
6409
6410         * doc/TODO: remove auto-activation item since it's done; sort
6411         items by importance/milestone
6412
6413 2004-06-07  Havoc Pennington  <hp@redhat.com>
6414
6415         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6416         random signature when using REQUIRED_FIELDS (this hack won't work
6417         in the long term)
6418
6419         * dbus/dbus-message.c: change the signature to be a header field,
6420         instead of message->signature special-case string. Incremental
6421         step forward. Then we can fix up code to send the signature in the
6422         message, then fix up code to validate said signature, then fix up
6423         code to not put the typecodes inline, etc.
6424         (load_one_message): don't make up the signature after the fact
6425         (decode_header_data): require signature field for the known
6426         message types
6427
6428         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6429
6430         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6431
6432 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6433
6434         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6435
6436         * mono/Handler.cs: Updated to follow new path argument for
6437         (un-)registering objects.
6438
6439         * mono/example/Makefile.am:
6440         * mono/Makefile.am:
6441         * configure.in: Bumped required version for mono and use new -pkg
6442         syntax for deps
6443
6444 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6445
6446         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6447         registration functions take the path argument as char* instead of
6448         char**.
6449
6450         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6451         split off the path decompostion part of
6452         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6453         warnings. 
6454
6455         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6456         
6457 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6458  
6459         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6460         machine approach.  A state is implemented as a function that
6461         handles incoming events as specified for that state.
6462         
6463         * doc/dbus-specification.xml: Update auth protocol state machine
6464         specification to match implementation.  Remove some leftover
6465         base64 examples.
6466
6467 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6468
6469         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6470         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6471         quiet doxygen.
6472
6473         * Doxyfile.in: remove deprecated options.
6474
6475         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6476         glib/test-thread.h, glib/test-thread-client.c,
6477         glib/test-thread-server.c, glib/test-profile.c,
6478         glib/test-dbus-glib.c: remove these unused files.
6479
6480 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6481
6482         * dbus/dbus-object-tree.c
6483         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6484         non-fallback handlers (bug #684).
6485         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6486         (find_subtree_recurse): report wether the returned subtree is an
6487         exact match or a "fallback" match higher up in the tree.
6488         (object_tree_test_iteration): update test case.
6489
6490 2004-06-01  Seth Nickell  <seth@gnome.org>
6491
6492         * python/dbus_bindings.pyx.in:
6493         * python/tests/test-client.py:
6494
6495         Round off basic type support. Add dicts (yay!), and 
6496         remaining array types.
6497
6498         Make MessageIter more general so it works for dicts too.
6499
6500         Mark all loop variables as C integers.
6501         
6502 2004-05-31  Havoc Pennington  <hp@redhat.com>
6503
6504         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6505         "in" before "out"
6506
6507         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6508
6509         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6510         option that runs the tests, and start filling in some code
6511         including for starters just dumping the interfaces to stdout
6512
6513         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6514
6515         * test/data/valid-introspection-files/lots-of-types.xml: test of
6516         an example introspection file
6517
6518         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6519         "node" (I think...)
6520
6521 2004-05-31  Seth Nickell  <seth@gnome.org>
6522
6523         * python/dbus_bindings.pyx.in:
6524         * python/tests/test-client.py:
6525
6526         Test Suite: 1
6527         Python Bindings: 0
6528
6529         Fix string array memory trashing bug... oops...
6530
6531 2004-05-30  Seth Nickell  <seth@gnome.org>
6532
6533         * python/dbus.py:
6534
6535         Add a nicer-but-less-flexible alternate API for handling 
6536         calls to virtual objects in dbus.ObjectTree.
6537
6538         Screw up the argument order to the dbus.Object constructor
6539         for consistency with dbus.ObjectTree (and to make dbus_methods
6540         optional for future extension)
6541         
6542         * python/examples/Makefile.am:
6543         * python/examples/gconf-proxy-service.py:
6544         * python/examples/gconf-proxy-service2.py:
6545
6546         Alternate implementation of gconf-proxy-service using the
6547         nicer dbus.ObjectTree API.
6548         
6549         * python/examples/example-service.py:
6550         * python/tests/test-server.py
6551
6552         Reverse the argument order to deal with dbus.Object constructor
6553         changes.
6554         
6555 2004-05-30  Seth Nickell  <seth@gnome.org>
6556
6557         * python/examples/example-client.py:
6558         * python/examples/example-service.py:
6559
6560         Take it back. Lists seem to work but they're broken
6561         in the test suite. Make the base examples use
6562         lists (works fine).
6563
6564 2004-05-30  Seth Nickell  <seth@gnome.org>
6565
6566         * python/dbus_bindings.pyx.in:
6567         * python/tests/test-client.py:
6568
6569         Add some more tests and fix errors that crop up.
6570         Unfortunately, currently it seems like marshalling
6571         and unmarshalling of lists is completely broken :-(
6572
6573 2004-05-30  Seth Nickell  <seth@gnome.org>
6574
6575         * python/dbus_bindings.pyx.in:
6576
6577         Add support for ObjectPath type.
6578
6579         * python/dbus.py:
6580
6581         Refactor message handling code to a common function.
6582         
6583         * python/tests/test-client.py:
6584         * python/tests/test-server.py:
6585
6586         Add tests that check to make sure values of all types
6587         can be echoed from a service w/o mangling.
6588         
6589 2004-05-29  Seth Nickell  <seth@gnome.org>
6590
6591         * python/dbus.py:
6592
6593         Add ObjectTree class which allows implementation
6594         of trees of "virtual" objects. Basically the python
6595         wrapper for "register_fallback".
6596         
6597         * python/examples/Makefile.am
6598         * python/examples/gconf-proxy-client.py:
6599         * python/examples/gconf-proxy-service.py:
6600
6601         Implement a simple GConf proxy service that supports
6602         get/set on string and int GConf keys using the ObjectTree.
6603         
6604 2004-05-29  Seth Nickell  <seth@gnome.org>
6605
6606         * python/dbus.py:
6607         * python/examples/example-client.py:
6608         * python/examples/example-service.py:
6609         * python/examples/list-system-services.py:
6610
6611         Add SessionBus, SystemBus and ActivationBus classes
6612         so you don't need to know the special little BUS_TYPE
6613         flag.
6614         
6615 2004-05-29  Havoc Pennington  <hp@redhat.com>
6616
6617         * bus/config-parser.c (process_test_valid_subdir): temporarily
6618         stop testing config parser OOM handling, since expat has issues
6619         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6620
6621         * bus/dbus-daemon-1.1.in: change requested_reply to
6622         send_requested_reply/receive_requested_reply so we can send the
6623         replies, not just receive them.
6624
6625         * bus/config-parser.c: parse the new
6626         send_requested_reply/receive_requested_reply
6627
6628         * bus/policy.c (bus_client_policy_check_can_send): add
6629         requested_reply argument and use it
6630
6631         * bus/bus.c (bus_context_check_security_policy): pass through
6632         requested_reply status to message send check
6633
6634         * bus/system.conf.in: adapt to requested_reply change
6635         
6636 2004-05-28  Havoc Pennington  <hp@redhat.com>
6637
6638         * test/glib/test-service-glib.c (main): remove unused variable
6639
6640         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6641
6642         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6643         from the enum, no longer in use.
6644
6645         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6646         works right.
6647
6648         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6649         whether error_name passed in is a valid error name.
6650
6651 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6652
6653         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6654         OBJECT_PATH and OBJECT_PATH_ARRAY
6655
6656 2004-05-28  Seth Nickell  <seth@gnome.org>
6657
6658         * python/examples/Makefile.am:
6659
6660         Forget to add Makefile.am. Do not pass go.
6661
6662 2004-05-28  Michael Meeks  <michael@ximian.com>
6663
6664         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6665         fix no int64 case.
6666
6667         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6668
6669         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6670         (_dbus_message_iter_get_basic_type_array): impl.
6671         drastically simplify ~all relevant _get methods to use these.
6672         (_dbus_message_iter_append_basic_array),
6673         (dbus_message_iter_append_basic): impl
6674         drastically simplify ~all relevant _append methods to use these.
6675
6676         * dbus/dbus-message-builder.c (parse_basic_type) 
6677         (parse_basic_array, lookup_basic_type): impl.
6678         (_dbus_message_data_load): prune scads of duplicate /
6679         cut & paste coding.
6680
6681         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6682         (_dbus_demarshal_basic_type): implement,
6683         (demarshal_and_validate_len/arg): beef up debug.
6684         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6685
6686 2004-05-27  Seth Nickell  <seth@gnome.org>
6687
6688         * configure.in:
6689         * python/Makefile.am:
6690
6691         Include the example python apps in the tarball.
6692         
6693         * python/examples/list-system-services.py
6694
6695         Add a python new example that fetches the list of services
6696         from the system bus.
6697         
6698 2004-05-27  Seth Nickell  <seth@gnome.org>
6699
6700         * python/dbus.py:
6701         * python/dbus_bindings.pyx.in:
6702
6703         Fix failure to notify that a signal was not handled,
6704         resulted in hung functions.
6705         
6706 2004-05-25  Colin Walters  <walters@redhat.com>
6707
6708         * tools/dbus-monitor.c (main): Monitor all types of messages.
6709
6710 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6711
6712         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6713         which unregisters the object path and disposes the handler.
6714
6715 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6716  
6717         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6718          
6719         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6720         operands to && so we call dbus_message_iter_next () for the last
6721         argument also.
6722
6723 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6724
6725         * dbus/dbus-object-tree.c
6726         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6727         children even if the requested path isn't registered.
6728         (object_tree_test_iteration): test object_tree_list_registered.
6729
6730         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6731         it to 0.
6732         
6733 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6734
6735         * doc/TODO: Remove resolved items.
6736
6737         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6738         field.
6739         
6740         * bus/connection.c (bus_connections_expect_reply): Enforce the
6741         per-connection limit on pending replies.
6742         
6743         Patch from Jon Trowbridge <trow@ximian.com>:
6744  
6745         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6746         up a watch that triggers a config reload when one end of the pipe
6747         becomes readable.
6748         (signal_handler): Instead of doing the config reload in our SIGHUP
6749         handler, just write to the reload pipe and let the associated
6750         watch handle the reload when control returns to the main loop.
6751  
6752         * bus/driver.c (bus_driver_handle_reload_config): Added.
6753         Implements a ReloadConfig method for requesting a configuration
6754         file reload via the bus driver.
6755  
6756 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6757
6758         * HACKING: Updated release instructions concerning the wiki page.
6759
6760 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6761
6762         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6763         filter against auth->allowed_mechs; we only add allowed mechs in
6764         record_mechanisms().
6765  
6766         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6767         ALLOWED_MECHS to auth-script format so we can set the list of
6768         allowed mechanisms.
6769  
6770         * data/auth/client-out-of-mechanisms.auth-script: New test to
6771         check client disconnects when it is out of mechanisms to try.
6772  
6773         * dbus/dbus-auth.c (process_command): Remove check for lines
6774         longer that 1 MB; we only buffer up maximum 16 kB.
6775  
6776         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6777         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6778         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6779         assume there might be unused bytes.
6780  
6781         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6782         client-out-of-mechs, it is handled in process_reject(). Move check
6783         for max failures to send_rejected(), as it's a server-only thing.
6784
6785         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6786         send_auth(), send_data(), send_rejected(), send_error(),
6787         send_ok(), send_begin() and send_cancel().
6788
6789 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6790
6791         Remove base64 encoding, replace with hex encoding. Original patch
6792         from trow@ximian.com, added error handling.
6793
6794         * dbus/dbus-string.c (_dbus_string_base64_encode)
6795         (_dbus_string_base64_decode): Remove.
6796         (_dbus_string_hex_decode): Add end_return argument so we can
6797         distinguish between OOM and invalid hex encoding.
6798         (_dbus_string_test): Remove base64 tests and add test case for
6799         invalid hex.
6800
6801         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6802         Replace base64 with hex.
6803
6804         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6805         for invalid hex encoded data in auth protocol.
6806
6807 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6808
6809         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6810         leak.
6811
6812 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6813
6814         * mono/dbus-sharp.dll.config.in: Added for GAC
6815         * mono/dbus-sharp.snk: Added for GAC
6816         * mono/Assembly.cs.in: Added for GAC
6817         * mono/Makefile.am: Changes for GAC installation        
6818         * configure.in: Added refs for dbus-sharp.dll.config.in and
6819         Assembly.cs.in. More fixes for mono testing
6820         * mono/example/Makefile.am: Changed var to CSC
6821         * Makefile.am: Changed flag name to DBUS_USE_CSC
6822
6823 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6824
6825         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6826         * mono/doc/*: Added documentation framework
6827         * configure.in: Added monodoc check
6828         * README: Added description of mono configure flags
6829
6830 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6831
6832         * doc/dbus-specification.xml: Added a "Required" column to the 
6833         header fields table and changed the "zero or more" verbage in
6834         the above paragraph to read "The header must contain the required 
6835         named header fields and zero or more of the optional named header 
6836         fields".
6837         * test/data/invalid-messages/*.message: Added the required PATH 
6838         named header field to the tests so that they don't fail on 
6839         'Missing path field'
6840
6841 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6842
6843         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6844         the stack by implicitly defining variable and parameter types and
6845         removing the hack of defining C pointers as python objects and later
6846         casting them.
6847
6848 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6849
6850         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6851
6852 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6853
6854         * mono/DBusType/Dict.cs: Handle empty dicts
6855         * mono/DBusType/Array.cs: Handle empty arrays
6856         * mono/Arguments.cs: Handle empty arguments
6857
6858 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6859
6860         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6861         field
6862
6863 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6864
6865         * test/data/valid-messages/standard-*.message: Update message
6866         test scripts to new header field names.
6867
6868 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6869
6870         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6871         overflow to times_we_did_each_thing array which would chop off the
6872         first character of the failure_dir string. Increased the size of
6873         the array to 7 to reflect the number of random mutation functions
6874         we have.
6875
6876 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6877
6878         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6879         unix_server->watch here, it is unreffed in disconnect.
6880         (_dbus_server_new_for_tcp_socket): convert NULL host to
6881         "localhost" here so we don't append NULL to address.
6882         
6883         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6884         various addresses, including tcp with no explicit host.
6885
6886 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6887
6888         * dbus/dbus-message.c (decode_header_data, decode_string_field):
6889         fix incorrect setting of .name_offset in the HeaderField (it was
6890         off by two bytes, positioned right after the name and typecode)
6891
6892         * bus/bus.c (bus_context_new, bus_context_unref): test before
6893         calling dbus_server_free_data_slot and _dbus_user_database_unref
6894         in case of an error.
6895
6896         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6897         by libdbus-gtool.
6898
6899 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
6900
6901         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6902         _dbus_poll() instead of select().
6903
6904 2004-04-15  Jon Trowbridge  <trow@ximian.com>
6905
6906         * bus/main.c (signal_handler): Reload the configuration files
6907         on SIGHUP.
6908         (main): Set up our SIGHUP handler.
6909
6910         * bus/bus.c (struct BusContext): Store the config file, user and
6911         fork flag in the BusContext.
6912         (process_config_first_time_only): Added.  Contains the code
6913         (previously in bus_context_new) for setting up the BusContext from
6914         the BusConfigParser that should only be run the first time the
6915         config files are read.
6916         (process_config_every_time): Added.  Contains the code (previously
6917         in bus_context_new) for setting up the BusContext from the
6918         BusConfigParser that should be run every time the config files are
6919         read.
6920         (load_config): Added.  Builds a BusConfigParser from the config
6921         files and passes the resulting structure off to
6922         process_config_first_time_only (assuming this is the first time)
6923         and process_config_every_time.
6924         (bus_context_new): All of the config-related code has been moved
6925         to process_config_first_time_only and process_config_every_time.
6926         Now this function just does the non-config-related initializations
6927         and calls load_config.
6928         (bus_context_reload_config): Added.
6929
6930 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6931
6932         * bus/driver.c (bus_driver_handle_get_service_owner):
6933         implement a GetServiceOwner method.
6934         * doc/dbus-specification.xml: document it.
6935         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6936         
6937         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6938         implement, using the bus GetServiceOwner method.
6939
6940         * test/glib/test-dbus-glib.c:
6941         use dbus_gproxy_new_for_service_owner so that we can receive the
6942         signal. 
6943
6944 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
6945
6946         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6947         dbus/dbus-message.c, dbus/dbus-protocol.h
6948         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6949
6950         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6951         dbus/dbus-message.c, dbus/dbus-protocol.h
6952         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6953
6954         * dbus/dbus-internals.c (_dbus_header_field_to_string):
6955         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6956         DBUS_HEADER_FIELD_SENDER resolves to "sender"
6957
6958         * doc/dbus-specification.xml (Header Fields Table):
6959         s/SERVICE/DESTINATION
6960         s/SENDER_SERVICE/SENDER
6961
6962
6963 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6964
6965         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6966         a few seconds.
6967
6968 2004-04-13  Michael Meeks  <michael@ximian.com>
6969
6970         * glib/dbus-gobject.c (handle_introspect): split out
6971         (introspect_properties): this.
6972         (handle_introspect): implement this.
6973
6974         * test/glib/Makefile.am: use the absolute path so the bus
6975         daemon's chdir ("/") doesn't kill us dead.
6976
6977         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6978
6979 2004-04-12  Jon Trowbridge  <trow@ximian.com>
6980
6981         * bus/config-parser.c (struct BusConfigParser): Added
6982         included_files field.
6983         (seen_include): Added.  Checks whether or not a file has already
6984         been included by any parent BusConfigParser.
6985         (bus_config_parser_new): Copy the parent's included_files.
6986         (include_file): Track which files have been included, and fail on
6987         circular inclusions.
6988         (process_test_valid_subdir): Changed printf to report if we are
6989         testing valid or invalid conf files.
6990         (all_are_equiv): Changed printf to be a bit clearer about
6991         what we are actually doing.
6992         (bus_config_parser_test): Test invalid configuration files.
6993
6994 2004-04-09  Jon Trowbridge  <trow@ximian.com>
6995
6996         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6997         argument.  If non-null, the newly-constructed BusConfigParser will
6998         be initialized with the parent's BusLimits instead of the default
6999         values.
7000         (include_file): When including a config file, pass in
7001         the current parser as the parent and then copy the BusLimits
7002         from the included BusConfigParser pack to the current parser.
7003         (process_test_valid_subdir): Renamed from process_test_subdir.
7004         (process_test_equiv_subdir): Added.  Walks through a directory,
7005         descending into each subdirectory and loading the config files
7006         it finds there.  If any subdirectory contains two config files
7007         that don't produce identical BusConfigParser structs, fail.
7008         For now, the BusConfigParser's BusPolicies are not compared.
7009         (bus_config_parser_test): Call both process_test_valid_subdir and
7010         process_test_equiv_subdir.
7011
7012         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7013         argument and pass it along to the call to bus_config_parser_new.
7014         Also made a few small changes to allow this code to compile.
7015
7016         * bus/config-loader-expat.c (bus_config_load): Take a parent
7017         argument and pass it along to the call to bus_config_parser_new.
7018
7019         * bus/bus.c (bus_context_new): Load the config file
7020         with a NULL parent argument.
7021
7022 2004-03-29  Michael Meeks  <michael@ximian.com>
7023
7024         * glib/dbus-gobject.c (introspect_properties): split
7025         out, fix mangled 'while' flow control.
7026         (introspect_signals): implement.
7027         (handle_introspect): update.
7028
7029 2004-03-29  Michael Meeks  <michael@ximian.com>
7030
7031         * glib/dbus-gobject.c (set_object_property): split out / 
7032         re-work, use the property type, and not the message type(!)
7033         (get_object_property): ditto.
7034
7035         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7036         (dbus_gvalue_marshal): make this code re-usable, needed
7037         for signals too, also on both proxy and server side.
7038         Re-write for more efficiency / readability.
7039
7040 2004-03-29  Michael Meeks  <michael@ximian.com>
7041
7042         * dbus/dbus-message.c
7043         (dbus_message_new_error_printf): impl.
7044
7045         * dbus/dbus-connection.c
7046         (dbus_connection_unregister_object_path): fix warning.
7047
7048         * configure.in: fix no-mono-installed situation.
7049
7050 2004-03-27  Havoc Pennington  <hp@redhat.com>
7051
7052         Patch from Timo Teräs:
7053         
7054         * tools/dbus-send.c (main): if --print-reply, assume type is
7055         method call; support boolean type args
7056         
7057         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7058         bunch of memleak and logic bugs
7059         
7060 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7061
7062         * mono/Arguments.cs:
7063         * mono/Introspector.cs:
7064         * mono/Handler.cs:
7065         * mono/InterfaceProxy.cs:
7066         * mono/Message.cs
7067         * mono/ProxyBuilder.cs:
7068         * mono/Service.cs:
7069         Added InterfaceProxy class to avoid building proxies for every
7070         object.
7071
7072         * dbus-message.h:
7073         * dbus-message.c (dbus_message_append_args_valist)
7074         (dbus_message_iter_get_object_path)
7075         (dbus_message_iter_get_object_path_array)
7076         (dbus_message_iter_append_object_path)
7077         (dbus_message_iter_append_object_path_array):
7078         Added object_path iter functions to handle OBJECT_PATH arguments
7079         
7080 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7081
7082         First checkin of mono bindings.
7083         * configure.in:
7084         * Makefile.am:
7085         Build stuff for the bindings
7086         * dbus-sharp.pc.in: Added for pkgconfig
7087         
7088 2004-03-21  Havoc Pennington  <hp@redhat.com>
7089
7090         * test/test-service.c (main): remove debug spew
7091
7092 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7093
7094         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7095         arrays
7096
7097         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7098         (dbus_message_iter_init_array_iterator)
7099         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7100         indicate whether the iterator is empty
7101
7102         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7103         warnings
7104
7105 2004-03-19  Havoc Pennington  <hp@redhat.com>
7106
7107         * NEWS: 0.21 updates
7108
7109         * configure.in: 0.21
7110
7111         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7112         
7113         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7114         you don't need pyrex to make dist
7115
7116         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7117         sources; run moc
7118         
7119 2004-03-18  Richard Hult  <richard@imendio.com>
7120
7121         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7122         (dbus_message_set_auto_activation): Add doxygen docs.
7123
7124 2004-03-16  Richard Hult  <richard@imendio.com>
7125
7126         * bus/activation.c: (bus_activation_service_created),
7127         (bus_activation_send_pending_auto_activation_messages),
7128         (bus_activation_activate_service):
7129         * bus/activation.h:
7130         * bus/dispatch.c: (bus_dispatch),
7131         (check_nonexistent_service_auto_activation),
7132         (check_service_auto_activated),
7133         (check_segfault_service_auto_activation),
7134         (check_existent_service_auto_activation), (bus_dispatch_test):
7135         * bus/driver.c: (bus_driver_handle_activate_service):
7136         * bus/services.c: (bus_registry_acquire_service):
7137         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7138         (dbus_message_get_auto_activation):
7139         * dbus/dbus-message.h:
7140         * dbus/dbus-protocol.h: Implement auto-activation.
7141         
7142         * doc/dbus-specification.xml: Add auto-activation to the spec.
7143
7144 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7145
7146         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7147         fix a bug with CUSTOM types.
7148
7149         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7150         a unit test for this bug (used to fail).
7151
7152 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7153
7154         * bus/activation.c:
7155         (babysitter_watch_callback): notify all pending activations waiting for
7156           the same exec that the activation failed.
7157         (bus_activation_activate_service): shortcut the activation if we 
7158           already waiting for the same executable to start up.
7159
7160 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7161
7162         * bus/activation.c: 
7163         - Added service file reloading. 
7164           Each service files directory is kept in an hash table in 
7165           BusActivation and each BusActivationEntry knows what .service-file it
7166           was read from. So when you try to activate a service the bus will 
7167           check if it's been updated, removed or if new .service-files has 
7168           been installed.
7169         - Test code at the bottom for the service file reloading.
7170         * bus/test-main.c: (main):
7171         * bus/test.h:
7172         - added service reloading test.
7173         * dbus/dbus-sysdeps.c: 
7174         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7175
7176 2004-03-08  Michael Meeks  <michael@ximian.com>
7177
7178         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7179         bail immediately if disconnected, to avoid busy loop.
7180
7181         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7182         cleanup cut/paste/inefficiency.
7183
7184 2004-03-01  David Zeuthen  <david@fubar.dk>
7185
7186         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7187         bug where args were used twice. This bug resulted in a segfault
7188         on a Debian/PPC system when starting the messagebus daemon. Include
7189         dbus-sysdeps.h for DBUS_VA_COPY
7190
7191         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7192
7193         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7194         appropriate va_copy implementation. From GLib
7195         
7196 2004-02-24  Joe Shaw  <joe@ximian.com>
7197
7198         * bus/services.c (bus_registry_acquire_service): We need to pass
7199         in the service name to dbus_set_error() to prevent a crash.
7200
7201 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7202
7203         * AUTHORS: Reveal my True identity.
7204
7205 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7206
7207         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7208         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7209
7210 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7211
7212         * doc/TODO: Added not about better error check of configuration files.
7213
7214 2003-12-02  Richard Hult  <richard@imendio.com>
7215
7216         * Update AFL version to 2.0 throughout the source files to reflect
7217         the update that was done a while ago.
7218
7219 2003-12-02  Richard Hult  <richard@imendio.com>
7220
7221         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7222         wrote_dict_key to FALSE on the iter that the dict is appended to,
7223         just like when appending other types. Fixes a bug where a dict
7224         couldn't be put inside a dict.
7225         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7226         (message_iter_test, _dbus_message_test): Add test case for dict
7227         inside dict.
7228
7229 2003-12-01  David Zeuthen  <david@fubar.dk>
7230
7231         * python/dbus.py: Add the actual message when calling the reciever
7232         of a signal such that parameters can be inspected. Add the method
7233         remove_signal_receiver
7234         
7235 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7236
7237         * bus/*.[ch]:
7238         * dbus/*.[ch]:
7239         * glib/*.[ch]: Made ref functions return the pointer
7240
7241 2003-11-25  Zack Rusin  <zack@kde.org>
7242
7243         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7244
7245         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7246         wrappers,
7247
7248         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7249         the Integrator and to better fit with the server,
7250
7251 2003-11-24  Zack Rusin  <zack@kde.org>
7252
7253         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7254         the integrator handles it now
7255
7256         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7257         since QTimer wasn't really meant to be used the way DBusTimeout is
7258
7259 2003-11-24  Zack Rusin  <zack@kde.org>
7260
7261         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7262         Integrator class which integrates D-BUS with the Qt event loop,
7263
7264         * qt/connection.h, qt/connection.cpp: Move all the code which
7265         was dealing with D-BUS integration to the Integrator class,
7266         and start using Integrator,
7267
7268 2003-11-23  Zack Rusin  <zack@kde.org>
7269
7270         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7271         wrapper
7272
7273         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7274         switching namespaces to DBusQt, reworking the class,
7275
7276         * Makefile.cvs: switching dependencies so that it matches KDE 
7277         schematics,
7278         
7279         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7280         the library
7281
7282 2003-11-19  Havoc Pennington  <hp@redhat.com>
7283
7284         * NEWS: update
7285
7286         * configure.in: bump version to 0.20
7287
7288         * configure.in (have_qt): add yet another place to look for qt
7289         (someone hand trolltech a .pc file...)
7290
7291 2003-11-01  Havoc Pennington  <hp@redhat.com>
7292
7293         * doc/dbus-specification.xml: add state machine docs on the auth
7294         protocol; just a first draft, I'm sure it's wrong.      
7295
7296 2003-10-28  David Zeuthen  <david@fubar.dk>
7297
7298         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7299         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7300         
7301 2003-10-28  Havoc Pennington  <hp@redhat.com>
7302
7303         * dbus/dbus-message.c (get_next_field): delete unused function
7304
7305 2003-10-28  Havoc Pennington  <hp@redhat.com>
7306
7307         * bus/expirelist.c (do_expiration_with_current_time): detect
7308         failure of the expire_func due to OOM
7309
7310         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7311
7312         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7313         NoReply error that's now created by the bus when the service exits
7314
7315 2003-10-28  Havoc Pennington  <hp@redhat.com>
7316
7317         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7318         tests for set_path, set_interface, set_member, etc.
7319
7320         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7321
7322         * dbus/dbus-message.c (set_string_field): always just delete and
7323         re-append the field; accept NULL for deletion
7324         (re_align_fields_recurse): reimplement
7325         
7326 2003-10-26  Havoc Pennington  <hp@redhat.com>
7327
7328         * dbus/dbus-connection.c: fix docs to properly describe the
7329         disconnected message
7330         (_dbus_connection_notify_disconnected): remove this function; 
7331         we can't synchronously add the disconnected message, we have to 
7332         do it after we've queued any remaining real messages
7333         (_dbus_connection_get_dispatch_status_unlocked): queue the
7334         disconnect message only if the transport has finished queueing all
7335         its real messages and is disconnected.
7336         (dbus_connection_disconnect): update the dispatch status here
7337
7338 2003-10-22  Havoc Pennington  <hp@redhat.com>
7339
7340         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7341
7342         * bus/connection.c (bus_transaction_send_from_driver): set the
7343         destination to the connection's base service
7344
7345 2003-10-20  Havoc Pennington  <hp@redhat.com>
7346
7347         hmm, make check is currently not passing.
7348         
7349         * doc/dbus-specification.xml: add requirement that custom type
7350         names follow the same rules as interface names.
7351
7352         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7353         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7354         'map'
7355
7356         * doc/dbus-specification.xml: update type codes to match
7357         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7358         CUSTOM. Add type OBJECT_PATH to the spec.
7359
7360 2003-10-17  Havoc Pennington  <hp@redhat.com>
7361
7362         * bus/driver.c (create_unique_client_name): use "." as separator
7363         in base service names instead of '-'
7364
7365         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7366         byte at the end of the string
7367
7368         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7369         optimization macros since string validation seems to be a slow
7370         point.
7371         
7372         * doc/dbus-specification.xml: restrict valid
7373         service/interface/member/error names. Add test suite code for the
7374         name validation.
7375
7376         * dbus/dbus-string.c: limit service/interface/member/error names 
7377         to [0-9][A-Z][a-z]_
7378
7379         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7380         format arg to verbose spew
7381
7382         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7383         memory, return instead of g_error
7384
7385         * test/test-service.c (path_message_func): support emitting a
7386         signal on request
7387
7388         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7389         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7390         assuming the activation bus was the session bus so that services
7391         started manually will still register.
7392         (init_connections_unlocked): fix so that in OOM situation we get
7393         the same semantics when retrying the function
7394         
7395         * test/test-service.c (main): change to use path registration, to
7396         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7397         than DBUS_BUS_SESSION
7398
7399 2003-10-16  Havoc Pennington  <hp@redhat.com>
7400
7401         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7402
7403         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7404         coverage of the tests
7405         (coverage-report.txt): don't move the .da and .bbg files around
7406
7407 2003-10-16  Havoc Pennington  <hp@redhat.com>
7408
7409         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7410         to put there
7411
7412 2003-10-16  Havoc Pennington  <hp@redhat.com>
7413
7414         * bus/connection.c (bus_pending_reply_expired): either cancel or
7415         execute, not both
7416         (bus_connections_check_reply): use unlink, not remove_link, as we
7417         don't want to free the link; fixes double free mess
7418
7419         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7420         where no reply was received
7421
7422         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7423         fix a refcount leak
7424
7425         * bus/signals.c (match_rule_matches): add special cases for the
7426         bus driver, so you can match on sender/destination for it.
7427
7428         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7429         DBUS_PRINT_BACKTRACE is set
7430
7431         * dbus/dbus-internals.c: add pid to assertion failure messages
7432
7433         * dbus/dbus-connection.c: add message type code to the debug spew
7434
7435         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7436         sender=foo not service=foo
7437
7438         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7439         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7440         DBUS_ACTIVATION_ADDRESS instead
7441
7442         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7443         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7444
7445         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7446         context struct
7447
7448         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7449         (dbus_message_iter_get_object_path_array): new function (half
7450         finished, disabled for the moment)
7451         
7452         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7453         DBUS_MESSAGE_TYPE_ERROR
7454
7455         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7456         avoid redirecting stderr to /dev/null
7457         (babysit): close stdin if not doing the "exit_with_session" thing
7458
7459         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7460         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7461         stdout/stdin, so things don't get confused
7462         
7463         * bus/system.conf.in: fix to allow replies, I modified .conf
7464         instead of .conf.in again.
7465
7466 2003-10-14  David Zeuthen  <david@fubar.dk>
7467
7468         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7469         argtype to arg_type when raising unknown arg type exception.
7470         Changed type list to reflect the changes in dbus-protocol.h so 
7471         the bindings actually work.
7472
7473 2003-10-14  Havoc Pennington  <hp@redhat.com>
7474
7475         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7476         to have a bug keeping it from outputting the .da files sometimes
7477         (string_get_string): don't append garbage nul bytes to the string.
7478
7479 2003-10-15  Seth Nickell  <seth@gnome.org>
7480
7481         * python/Makefile.am:
7482
7483         Include dbus_h_wrapper.h in the dist tarball.
7484
7485 2003-10-14  Havoc Pennington  <hp@redhat.com>
7486
7487         * bus/bus.c (bus_context_check_security_policy): revamp this to
7488         work more sanely with new policy-based requested reply setup
7489
7490         * bus/connection.c (bus_transaction_send_from_driver): set bus
7491         driver messages as no reply
7492
7493         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7494         requested_reply attribute on allow/deny rules
7495
7496         * bus/system.conf: add <allow requested_reply="true"/>
7497
7498         * bus/driver.c (bus_driver_handle_message): fix check for replies
7499         sent to the bus driver, which was backward. How did this ever work
7500         at all though? I think I'm missing something.
7501
7502         * dbus/dbus-message.c (decode_header_data): require error and
7503         method return messages to have a reply serial field to be valid
7504         (_dbus_message_loader_queue_messages): break up this function;
7505         validate that reply serial and plain serial are nonzero; 
7506         clean up the OOM/error handling.
7507         (get_uint_field): don't return -1 from this
7508         (dbus_message_create_header): fix signed/unsigned bug
7509
7510         * bus/connection.c (bus_connections_expect_reply): save serial of
7511         the incoming message, not reply serial
7512
7513 2003-10-14  Havoc Pennington  <hp@redhat.com>
7514
7515         * bus/connection.c: implement pending reply tracking using
7516         BusExpireList
7517
7518         * bus/bus.c (bus_context_check_security_policy): verify that a
7519         reply is pending in order to allow a reply to be sent. Deny 
7520         messages of unknown type.
7521
7522         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7523
7524         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7525         (bus_context_get_reply_timeout): new
7526
7527 2003-10-13  Seth Nickell  <seth@gnome.org>
7528
7529         * python/Makefile.am:
7530
7531         Pass "make distcheck": remove a couple files from DIST_FILES
7532         that weren't included in the final version.
7533
7534 2003-10-12  Havoc Pennington  <hp@pobox.com>
7535
7536         Added test code that 1) starts an actual bus daemon and 2) uses
7537         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7538         more testing possible, but this is the basic framework.
7539         
7540         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7541         empty proxy lists from the proxy list hash
7542
7543         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7544         couple of return_if_fail checks
7545
7546         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7547         to allocate, so everything is cleared to NULL as it should be.
7548
7549         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7550         source as data to dbus_connection_set_timeout_functions() as the 
7551         timeout functions expected
7552
7553         * test/glib/run-test.sh: add a little script to start up a message
7554         bus and run tests using it
7555
7556         * tools/dbus-launch.1: updates
7557
7558         * tools/dbus-launch.c (main): add --config-file option
7559
7560         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7561         that could never be reached.
7562
7563         * dbus/dbus-message.c (dbus_message_new_method_return) 
7564         (dbus_message_new_error, dbus_message_new_signal): set the
7565         no-reply-expected flag on all these. Redundant, but may
7566         as well be consistent.
7567
7568 2003-10-11  Havoc Pennington  <hp@pobox.com>
7569
7570         * test/decode-gcov.c (function_solve_graph): make broken block
7571         graph a nonfatal error since it seems to be broken. Need to debug
7572         this.
7573
7574         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7575         can't just check type > INVALID < LAST anymore
7576
7577         * dbus/dbus-message.c (dbus_message_get_signature): new function
7578         (dbus_message_has_signature): new function
7579         (struct DBusMessage): add signature field (right now it isn't sent
7580         over the wire, just generated on the fly)
7581         (dbus_message_copy): copy the signature, and init strings to
7582         proper length to avoid some reallocs
7583         (dbus_message_iter_init_array_iterator): return void, since it
7584         can't fail
7585         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7586         (_dbus_message_loader_queue_messages): add silly temporary hack to
7587         fill in message->signature on load
7588
7589         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7590         characters, so they are relatively human-readable.
7591
7592 2003-10-11  Havoc Pennington  <hp@pobox.com>
7593
7594         * dbus/dbus-message.c (_dbus_message_test): add more test
7595         coverage, but #if 0 for now since they uncover a bug 
7596         not fixed yet; I think in re_align_field_recurse()
7597         (re_align_field_recurse): add FIXME about broken assertion
7598
7599         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7600
7601         * bus/connection.c: share a couple code bits with expirelist.c
7602
7603         * bus/expirelist.h, bus/expirelist.c: implement a generic
7604         expire-items-after-N-seconds facility, was going to share between
7605         expiring connections and replies, decided not to use for expiring
7606         connections for now.
7607
7608         * COPYING: include AFL 2.0 (still need to change all the file headers)
7609
7610 2003-10-09  Havoc Pennington  <hp@redhat.com>
7611
7612         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7613         gcc 3.3. Not that we do anything about it yet.
7614
7615         * bus/signals.c (bus_match_rule_parse): impose max length on the
7616         match rule text
7617
7618         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7619
7620 2003-10-09  Havoc Pennington  <hp@redhat.com>
7621
7622         Make matching rules theoretically work (add parser).
7623         
7624         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7625         the case where destination is explicitly specified as bus driver
7626         and someone else is eavesdropping.
7627         
7628         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7629         definition of eavesdropping and assertion
7630
7631         * tools/dbus-send.c (main): use dbus_message_type_from_string
7632
7633         * bus/signals.c (bus_match_rule_parse): implement
7634
7635         * dbus/dbus-message.c (dbus_message_type_from_string): new
7636
7637         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7638
7639 2003-10-02  Havoc Pennington  <hp@pobox.com>
7640
7641         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7642         dbus_gproxy_oneway_call
7643
7644         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7645         (dbus_server_setup_with_g_main): fix to allow calling them more
7646         than once on the same args
7647         (dbus_bus_get_with_g_main): new function
7648
7649 2003-10-02  Havoc Pennington  <hp@redhat.com>
7650
7651         * doc/dbus-tutorial.xml: write some stuff
7652
7653 2003-09-29  Havoc Pennington  <hp@pobox.com>
7654
7655         * configure.in: split checks for Doxygen from XML docs, check for
7656         xmlto
7657
7658         * doc/Makefile.am: XML-ify all the docs, and add a blank
7659         dbus-tutorial.xml
7660
7661 2003-09-29  Havoc Pennington  <hp@pobox.com>
7662
7663         * Merge dbus-object-names branch. To see the entire patch 
7664         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7665         it's huuuuge though.
7666         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7667         
7668 2003-09-28  Havoc Pennington  <hp@pobox.com>
7669
7670         * HACKING: update to reflect new server
7671
7672 2003-09-26  Seth Nickell  <seth@gnome.org>
7673
7674         * python/dbus.py:
7675         * python/examples/example-signals.py:
7676
7677         Start implementing some notions of signals. The API
7678         is really terrible, but they sort of work (with the
7679         exception of being able to filter by service, and to
7680         transmit signals *as* a particular service). Need to
7681         figure out how to make messages come from the service
7682         we registered :-(
7683         
7684         * python/dbus_bindings.pyx.in:
7685
7686         Removed duplicate message_handler callbacks.
7687         
7688 2003-09-25  Havoc Pennington  <hp@redhat.com>
7689
7690         * bus/session.conf.in: fix my mess
7691
7692 2003-09-25  Havoc Pennington  <hp@pobox.com>
7693
7694         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7695
7696 2003-09-25  Seth Nickell  <seth@gnome.org>
7697
7698         * python/examples/example-service.py:
7699
7700         Johan notices complete wrong code in example-service, but
7701         completely wrong in a way that works exactly the same (!).
7702         Johan is confused, how could this possibly work? Example
7703         code fails to serve purpose of making things clear.
7704         Seth fixes.
7705
7706 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7707
7708         * doc/dbus-specification.sgml: don't require header fields
7709         to be 4-byte aligned and specify that fields should be
7710         distinguished from padding by the fact that zero is not
7711         a valid field name.
7712         
7713         * doc/TODO: remove re-alignment item and add item to doc
7714         the OBJECT_PATH type.
7715         
7716         * dbus/dbus-message.c:
7717         (HeaderField): rename the original member to value_offset
7718         and introduce a name_offset member to keep track of where
7719         the field actually begins.
7720         (adjust_field_offsets): remove.
7721         (append_int_field), (append_uint_field),
7722         (append_string_field): don't align the start of the header
7723         field to a 4-byte boundary.
7724         (get_next_field): impl finding the next marhsalled field
7725         after a given field.
7726         (re_align_field_recurse): impl re-aligning a number of
7727         already marshalled fields.
7728         (delete_field): impl deleting a field of any type and
7729         re-aligning any following fields.
7730         (delete_int_or_uint_field), (delete_string_field): remove.
7731         (set_int_field), (set_uint_field): no need to re-check
7732         that we have the correct type for the field.
7733         (set_string_field): ditto and impl re-aligning any
7734         following fields.
7735         (decode_header_data): update to take into account that
7736         the fields aren't 4-byte aligned any more and the new
7737         way to distinguish padding from header fields. Also,
7738         don't exit when there is too much header padding.
7739         (process_test_subdir): print the directory.
7740         (_dbus_message_test): add test to make sure a following
7741         field is re-aligned correctly after field deletion.
7742         
7743         * dbus/dbus-string.[ch]:
7744         (_dbus_string_insert_bytes): rename from insert_byte and
7745         allow the insert of multiple bytes.
7746         (_dbus_string_test): test inserting multiple bytes.
7747
7748         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7749         warning note to docs about having to re-align any
7750         marshalled values following the string.
7751         
7752         * dbus/dbus-message-builder.c:
7753         (append_string_field), (_dbus_message_data_load):
7754         don't align the header field.
7755         
7756         * dbus/dbus-auth.c: (process_test_subdir): print the
7757         directory.
7758         
7759         * test/break-loader.c: (randomly_add_one_byte): upd. for
7760         insert_byte change.
7761         
7762         * test/data/invalid-messages/bad-header-field-alignment.message:
7763         new test case.
7764         
7765         * test/data/valid-messages/unknown-header-field.message: shove
7766         a dict in the unknown field.
7767
7768 2003-09-25  Seth Nickell  <seth@gnome.org>
7769
7770         * python/dbus.py:
7771         * python/dbus_bindings.pyx.in:
7772
7773         Handle return values.
7774         
7775         * python/examples/example-client.py:
7776         * python/examples/example-service.py:
7777
7778         Pass back return values from the service to the client.
7779         
7780 2003-09-24  Seth Nickell  <seth@gnome.org>
7781
7782         * python/dbus.py:
7783
7784         Connect Object methods (when you are sharing an object) up... pass
7785         in a list of methods to be shared. Sharing all the methods just
7786         worked out too weird. You can now create nice Services over the
7787         DBus in Python. :-)
7788         
7789         * python/dbus_bindings.pyx.in:
7790
7791         Keep references to user_data tuples passed into C functions so 
7792         Python doesn't garbage collect on us.
7793
7794         Implement MethodReturn and Error subclasses of Message for creating
7795         DBusMessage's of those types.
7796         
7797         * python/examples/example-client.py:
7798         * python/examples/example-service.py:
7799
7800         Simple example code showing both how create DBus services and objects,
7801         and how to use them.
7802
7803 2003-09-23  Havoc Pennington  <hp@pobox.com>
7804
7805         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7806
7807 2003-09-23  Havoc Pennington  <hp@redhat.com>
7808
7809         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7810         (dbus_gproxy_disconnect_signal): implement
7811         (dbus_gproxy_manager_remove_signal_match): implement
7812         (dbus_gproxy_manager_add_signal_match): implement
7813         (dbus_gproxy_oneway_call): implement
7814
7815 2003-09-23  Havoc Pennington  <hp@pobox.com>
7816
7817         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7818         subclass. This means dropping the transparent thread safety of the
7819         proxy; you now need a separate proxy per-thread, or your own
7820         locking on the proxy. Probably right anyway.
7821         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7822
7823 2003-09-22  Havoc Pennington  <hp@redhat.com>
7824
7825         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7826
7827 2003-09-21  Seth Nickell  <seth@gnome.org>
7828
7829         First checkin of the Python bindings.
7830         
7831         * python/.cvsignore:
7832         * python/Makefile.am:
7833         * python/dbus_bindings.pyx.in:
7834         * python/dbus_h_wrapper.h:
7835
7836         Pieces for Pyrex to operate on, building a dbus_bindings.so
7837         python module for low-level access to the DBus APIs.
7838         
7839         * python/dbus.py:
7840
7841         High-level Python module for accessing DBus objects.
7842
7843         * configure.in:
7844         * Makefile.am:
7845
7846         Build stuff for the python bindings.
7847
7848         * acinclude.m4:
7849
7850         Extra macro needed for finding the Python C header files.
7851
7852 2003-09-21  Havoc Pennington  <hp@pobox.com>
7853
7854         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7855         implementing the proxy manager, didn't get very far.
7856
7857         * dbus/dbus-bus.c (dbus_bus_add_match): new
7858         (dbus_bus_remove_match): new
7859
7860         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7861         path_name argument; adjust the other not-yet-implemented 
7862         gproxy constructors to be what I think they should be.
7863
7864 2003-09-21  Havoc Pennington  <hp@pobox.com>
7865
7866         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7867         by default for message bus connections.
7868
7869         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7870         exit_on_disconnect flag is set and we process the disconnected
7871         signal.
7872         (dbus_connection_set_exit_on_disconnect): new function
7873
7874 2003-09-21  Havoc Pennington  <hp@pobox.com>
7875
7876         Get matching rules mostly working in the bus; only actually
7877         parsing the rule text remains. However, the client side of
7878         "signal connections" hasn't been started, this patch is only the
7879         bus side.
7880         
7881         * dbus/dispatch.c: fix for the matching rules changes
7882         
7883         * bus/driver.c (bus_driver_handle_remove_match)
7884         (bus_driver_handle_add_match): send an ack reply from these
7885         method calls
7886
7887         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7888         arguments, reported by Seth Nickell
7889
7890         * bus/config-parser.c (append_rule_from_element): support
7891         eavesdrop=true|false attribute on policies so match rules 
7892         can be prevented from snooping on the system bus.
7893
7894         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7895         and "destination" in attribute names; fix some docs bugs; 
7896         add eavesdrop=true|false attribute
7897
7898         * bus/driver.c (bus_driver_handle_add_match)
7899         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7900         messages
7901
7902         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7903         rid of broadcast service concept, signals are just always broadcast
7904
7905         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7906         mostly implement matching rules stuff (currently only exposed as signal
7907         connections)
7908
7909 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
7910
7911         * doc/dbus-specification.sgml: Change the header field name
7912         to be an enum and update the rest of the spec to reference
7913         the fields using the conventinal name.
7914
7915         * dbus/dbus-protocol.h: update to reflect the spec.
7916
7917         * doc/TODO: add item to remove the 4 byte alignment requirement.
7918         
7919         * dbus/dbus-message.c: Remove the code to generalise the
7920         header/body length and serial number header fields as named
7921         header fields so we can reference field names using the 
7922         protocol values.
7923         (append_int_field), (append_uint_field), (append_string_field):
7924         Append the field name as a byte rather than four chars.
7925         (delete_int_or_uint_field), (delete_string_field): reflect the
7926         fact that the field name and typecode now occupy 4 bytes instead
7927         of 8.
7928         (decode_string_field), (decode_header_data): update to reflect
7929         protocol changes and move the field specific encoding from
7930         decode_string_field() back into decode_header_data().
7931         
7932         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7933         Add utility to aid debugging.
7934         
7935         * dbus/dbus-message-builder.c:
7936         (append_string_field), (_dbus_message_data_load): Update to
7937         reflect protocol changes; Change the FIELD_NAME directive
7938         to HEADER_FIELD and allow it to take the field's conventional
7939         name rather than the actual value.
7940         
7941         * test/data/*/*.message: Update to use HEADER_FIELD instead
7942         of FIELD_NAME; Always align the header on an 8 byte boundary
7943         *before* updating the header length.
7944
7945 2003-09-15  Havoc Pennington  <hp@pobox.com>
7946
7947         * dbus/dbus-pending-call.c: add the get/set object data
7948         boilerplate as for DBusConnection, etc. Use generic object data
7949         for the notify callback.
7950
7951         * glib/dbus-gparser.c (parse_node): parse child nodes
7952
7953         * tools/dbus-viewer.c: more hacking on the dbus-viewer
7954         
7955         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7956         contain functions shared between the convenience lib and the
7957         installed lib
7958
7959         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7960         -export-symbols-regex to the GLib library
7961
7962         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7963         fix the locking in here, and add a default handler for
7964         Introspect() that just returns sub-nodes.
7965
7966 2003-09-14  Havoc Pennington  <hp@pobox.com>
7967
7968         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7969         rather than gfoo consistent
7970
7971         * glib/dbus-gproxy.h: delete for now, move contents to
7972         dbus-glib.h, because the include files don't work right since we
7973         aren't in the dbus/ subdir.
7974         
7975         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7976         (dbus_gproxy_end_call): finish
7977         (dbus_gproxy_begin_call): finish
7978
7979         * glib/dbus-gmain.c (dbus_set_g_error): new
7980
7981         * glib/dbus-gobject.c (handle_introspect): include information
7982         about child nodes in the introspection
7983
7984         * dbus/dbus-connection.c (dbus_connection_list_registered): new
7985         function to help in implementation of introspection
7986
7987         * dbus/dbus-object-tree.c
7988         (_dbus_object_tree_list_registered_and_unlock): new function
7989
7990 2003-09-12  Havoc Pennington  <hp@pobox.com>
7991
7992         * glib/dbus-gidl.h: add common base class for all the foo_info
7993         types
7994
7995         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7996         similar to kdcop
7997
7998         * test/Makefile.am: try test srcdir -ef . in addition to test
7999         srcdir = ., one of them should work (yeah lame)
8000         
8001         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8002         library
8003         
8004         * glib/dbus-gparser.h: make description_load routines return
8005         NodeInfo* not Parser*
8006
8007         * Makefile.am (SUBDIRS): build test dir after all library dirs
8008
8009         * configure.in: add GTK+ detection
8010
8011 2003-09-07  Havoc Pennington  <hp@pobox.com>
8012
8013         * Make Doxygen contented.
8014
8015 2003-09-07  Havoc Pennington  <hp@pobox.com>
8016
8017         * doc/dbus-specification.sgml: more updates
8018
8019 2003-09-06  Havoc Pennington  <hp@pobox.com>
8020
8021         * doc/dbus-specification.sgml: partial updates
8022
8023         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8024         zillionth time; hopefully I edited the right file this time.
8025
8026         * bus/config-parser.c (append_rule_from_element): support
8027         send_type, send_path, receive_type, receive_path
8028
8029         * bus/policy.c: add message type and path to the list of things
8030         that can be "firewalled"
8031
8032 2003-09-06  Havoc Pennington  <hp@pobox.com>
8033
8034         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8035         (dbus_connection_register_object_path): make this not handle
8036         messages to paths below the given path
8037
8038 2003-09-03  Havoc Pennington  <hp@pobox.com>
8039
8040         * test/glib/Makefile.am: add this with random glib-linked test
8041         programs
8042
8043         * glib/Makefile.am: remove the random test programs from here,
8044         leave only the unit tests
8045
8046         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8047         uscore/javacaps conversion, and fix     
8048         (get_object_property, set_object_property): change to .NET
8049         convention for mapping props to methods, set_FooBar/get_FooBar, 
8050         since one language has such a convention we may as well copy it. 
8051         Plus real methods in either getFooBar or get_foo_bar style won't 
8052         collide with this convention.
8053
8054 2003-09-01  Havoc Pennington  <hp@pobox.com>
8055
8056         * glib/dbus-gparser.c: implement
8057
8058         * glib/dbus-gobject.c: start implementing skeletons support
8059
8060         * configure.in: when disabling checks/assert, also define
8061         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8062
8063 2003-09-01  Havoc Pennington  <hp@pobox.com>
8064
8065         * glib/Makefile.am: rearrange a bunch of files and get "make
8066         check" framework set up
8067
8068 2003-08-31  Havoc Pennington  <hp@pobox.com>
8069
8070         * fix build with --disable-tests
8071
8072 2003-08-30  Havoc Pennington  <hp@pobox.com>
8073
8074         * dbus/dbus-connection.c: purge DBusMessageHandler
8075
8076         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8077         use callbacks everywhere
8078
8079 2003-08-30  Havoc Pennington  <hp@pobox.com>
8080
8081         * test/data/valid-config-files/system.d/test.conf: change to 
8082         root for the user so warnings don't get printed
8083
8084         * dbus/dbus-message.c: add dbus_message_get_path,
8085         dbus_message_set_path
8086         
8087         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8088         dispatching to a path
8089
8090         * dbus/dbus-string.c (_dbus_string_validate_path): add
8091
8092         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8093         (_dbus_marshal_object_path): implement
8094
8095         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8096         to contain the path to the target object
8097         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8098         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8099
8100 2003-08-30  Havoc Pennington  <hp@pobox.com>
8101
8102         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8103
8104 2003-08-29  Havoc Pennington  <hp@pobox.com>
8105
8106         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8107         registered
8108         (struct DBusObjectSubtree): shrink this
8109         a lot, since we may have a lot of them
8110         (_dbus_object_tree_free_all_unlocked): implement
8111         (_dbus_object_tree_dispatch_and_unlock): implement
8112
8113 2003-08-29  Havoc Pennington  <hp@pobox.com>
8114
8115         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8116
8117 2003-08-28  Havoc Pennington  <hp@pobox.com>
8118
8119         purge DBusObjectID
8120         
8121         * dbus/dbus-connection.c: port to no ObjectID, create a
8122         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8123
8124         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8125         everything except UnregisterFunction and MessageFunction
8126         
8127         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8128         add DBUS_TYPE_OBJECT_PATH
8129         
8130         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8131         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8132         path-based object IDs
8133
8134 2003-08-25  Havoc Pennington  <hp@pobox.com>
8135
8136         Just noticed that dbus_message_test is hosed, I wonder when I
8137         broke that. I thought make check was passing earlier...
8138         
8139         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8140         container tree, will replace most of dbus-object-registry
8141
8142         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8143         screwup
8144
8145 2003-08-19  Havoc Pennington  <hp@pobox.com>
8146
8147         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8148         (dbus_message_is_error): fix this function
8149
8150         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8151         match
8152
8153         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8154         reflect clarified man page
8155         (bus_client_policy_check_can_send): ditto
8156         
8157         * bus/session.conf.in: fixup
8158
8159         * bus/system.conf.in: fixup
8160
8161 2003-08-18  Havoc Pennington  <hp@redhat.com>
8162
8163         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8164
8165         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8166         dumb bug created earlier (wrong order of args to
8167         decode_header_data())
8168         
8169         * tools/dbus-send.c: port
8170
8171         * tools/dbus-print-message.c (print_message): port
8172
8173         * test/data/*messages: port all messages over
8174         
8175         * dbus/dbus-message-builder.c: support including 
8176         message type
8177         
8178         * bus/driver.c: port over
8179         
8180         * bus/dispatch.c: port over to new stuff
8181
8182         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8183         rename disconnect signal to "Disconnected"
8184
8185 2003-08-17  Havoc Pennington  <hp@pobox.com>
8186
8187         This doesn't compile yet, but syncing up so I can hack on it from
8188         work. What are branches for if not broken code? ;-)
8189         
8190         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8191         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8192         DBUS_HEADER_FIELD_ERROR_NAME
8193         
8194         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8195         for the interface+member pairs
8196         (string_hash): change to use g_str_hash algorithm
8197         (find_direct_function, find_string_function): refactor these to
8198         share most code.
8199         
8200         * dbus/dbus-message.c: port all of this over to support 
8201         interface/member fields instead of name field
8202
8203         * dbus/dbus-object-registry.c: port over
8204         
8205         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8206         from _dbus_string_validate_name
8207
8208         * bus/dbus-daemon-1.1: change file format for the 
8209         <deny>/<allow> stuff to match new message naming scheme
8210
8211         * bus/policy.c: port over
8212
8213         * bus/config-parser.c: parse new format
8214         
8215 2003-08-16  Havoc Pennington  <hp@pobox.com>
8216
8217         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8218         broken assertion
8219
8220         * glib/dbus-gproxy.c: some hacking
8221
8222 2003-08-15  Havoc Pennington  <hp@redhat.com>
8223
8224         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8225
8226         * dbus/dbus-connection.c
8227         (dbus_connection_send_with_reply_and_block): factor out internals;
8228         change to convert any error replies to DBusError instead of 
8229         returning them as a message
8230
8231 2003-08-15  Havoc Pennington  <hp@pobox.com>
8232
8233         * dbus/dbus-connection.c, 
8234         dbus/dbus-pending-call.c: Finish the pending call stuff
8235
8236 2003-08-14  Havoc Pennington  <hp@redhat.com>
8237
8238         * dbus/dbus-pending-call.c: start on new object that will replace
8239         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8240         replies
8241
8242         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8243         with remote interfaces
8244
8245         * dbus/dbus-gidl.c: do the boring boilerplate in here
8246         
8247 2003-08-12  Havoc Pennington  <hp@pobox.com>
8248
8249         * bus/dispatch.c (bus_dispatch): make this return proper 
8250         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8251
8252         * dbus/dbus-errors.c (dbus_set_error): use
8253         _dbus_string_append_printf_valist
8254
8255         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8256         (_dbus_string_append_printf): new
8257
8258         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8259         UNKNOWN_METHOD
8260
8261         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8262         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8263         message is unhandled.
8264
8265 2003-08-11  Havoc Pennington  <hp@pobox.com>
8266
8267         * bus/test.c (client_disconnect_handler): change to return
8268         HANDLED (would have been REMOVE_MESSAGE)
8269
8270         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8271         HANDLED/NOT_YET_HANDLED instead of
8272         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8273         should be used.
8274
8275 2003-08-10  Havoc Pennington  <hp@pobox.com>
8276
8277         * tools/dbus-send.c (main): add --type argument, for now
8278         supporting only method_call and signal types.
8279
8280         * tools/dbus-print-message.c: print message type
8281
8282         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8283         init connection->objects
8284
8285         * doc/dbus-specification.sgml: fix sgml
8286
8287         * bus/*.c: port over to object-instance API changes
8288
8289         * test/test-service.c: ditto
8290         
8291         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8292         name, we will have to fix up the rest of the code to also handle
8293         this
8294         (dbus_message_new): generic message-creation call
8295         (set_string_field): allow appending name field
8296
8297 2003-08-06  Havoc Pennington  <hp@pobox.com>
8298
8299         * dbus/dbus-object-registry.c: implement signal connection 
8300         and dispatch
8301
8302         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8303
8304         * dbus/dbus-internals.c (_dbus_memdup): new function
8305
8306 2003-08-02  Havoc Pennington  <hp@pobox.com>
8307
8308         * dbus/dbus-message.c (dbus_message_get_no_reply)
8309         (dbus_message_set_no_reply): add these and remove
8310         set_is_error/get_is_error
8311
8312         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8313         remove the ERROR flag, since there's now an ERROR type
8314
8315 2003-08-01  Havoc Pennington  <hp@pobox.com>
8316
8317         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8318         implement
8319
8320         * dbus/dbus-message.c (dbus_message_get_type): new function
8321
8322         * doc/dbus-specification.sgml: add "type" byte to messages
8323
8324 2003-08-01  Havoc Pennington  <hp@pobox.com>
8325
8326         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8327         a message type enum to distinguish kinds of message
8328         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8329         that need not be replied to
8330
8331 2003-08-01  Havoc Pennington  <hp@pobox.com>
8332
8333         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8334         (unpack_8_octets): fix no-64-bit-int bug
8335
8336         * dbus/dbus-object-registry.c (validate_id): validate the 
8337         connection ID bits, not just the instance ID.
8338
8339         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8340         the connection-global 33 bits of the object ID
8341
8342         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8343         object ID in the new way
8344
8345         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8346         define server/client/instance bits.
8347
8348 2003-07-30  Havoc Pennington  <hp@pobox.com>
8349
8350         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8351         build
8352
8353 2003-07-13  Havoc Pennington  <hp@pobox.com>
8354
8355         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8356         fields to DBusObjectVTable and DBusObjectInfo
8357
8358 2003-07-12  Havoc Pennington  <hp@pobox.com>
8359
8360         * dbus/dbus-object-registry.c: implement unit test,
8361         fix bugs discovered in process
8362
8363         * dbus/dbus-connection.c: remove handler_table and
8364         register_handler(), add DBusObjectRegistry usage
8365
8366         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8367         (dbus_object_id_set_null): new functions
8368
8369 2003-07-08  Havoc Pennington  <hp@pobox.com>
8370
8371         * dbus/dbus-object.c: implement some of this
8372
8373         * dbus/dbus-object-registry.c
8374         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8375         param
8376         (_dbus_object_registry_new): handle OOM
8377
8378 2003-07-08  Havoc Pennington  <hp@pobox.com>
8379
8380         * dbus/dbus-object.h: sketch out an API for registering objects
8381         with a connection, that allows us to use as little as 24 bytes
8382         per object and lets application code represent an object in 
8383         any conceivable way.
8384
8385         * dbus/dbus-object-registry.c: implement the hard bits of the
8386         DBusConnection aspect of object API. Not yet wired up.
8387         
8388 2003-07-06  Havoc Pennington  <hp@pobox.com>
8389
8390         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8391         (_dbus_marshal_object_id): new
8392         (_dbus_demarshal_object_id): new
8393         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8394         consolidate identical switch cases. Don't conditionalize handling
8395         of DBUS_TYPE_UINT64, need to handle the type always.
8396         (_dbus_marshal_validate_arg): consolidate identical cases, and
8397         handle DBUS_TYPE_OBJECT_ID
8398
8399         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8400
8401         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8402
8403 2003-09-28  Havoc Pennington  <hp@pobox.com>
8404
8405         * real 0.13 release
8406
8407 2003-09-28  Havoc Pennington  <hp@pobox.com>
8408
8409         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8410         to work with Debian db2html
8411
8412 2003-09-28  Havoc Pennington  <hp@pobox.com>
8413
8414         * configure.in: 0.13
8415
8416         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8417         stylesheet-images for benefit of Debian
8418         
8419         Change back to using filesystem-linked sockets for the system
8420         bus, so only root can create the default system bus address.
8421         
8422         * bus/system.conf.in: change to use
8423         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8424
8425         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8426         from here.
8427
8428         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8429         here, and AC_DEFINE DBUS_SYSTEM_PATH
8430
8431 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8432
8433         * doc/TODO:
8434         * doc/busconfig.dtd:
8435         Add busconfig DTD.
8436         
8437 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8438
8439         * doc/dbus-specification.sgml:
8440         Add activation reply values.
8441         
8442 2003-08-05  Havoc Pennington  <hp@redhat.com>
8443
8444         * configure.in: 0.12
8445
8446 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8447
8448         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8449         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8450         (add_watch), (remove_watch), (create_source):
8451         Refcount fds, fixes some reentrancy issues.
8452         
8453 2003-07-30  Havoc Pennington  <hp@redhat.com>
8454
8455         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8456         bus address to be abstract if we have abstract sockets
8457
8458         * NEWS: update
8459
8460 2003-07-28  Havoc Pennington  <hp@redhat.com>
8461
8462         * bus/messagebus.in: fix to avoid processname/servicename 
8463         confusion, from Michael Kearey
8464         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8465         
8466 2003-07-23  Havoc Pennington  <hp@pobox.com>
8467
8468         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8469         fix from Andy Hanton to remove broken "+1"
8470
8471 2003-07-16  Havoc Pennington  <hp@pobox.com>
8472
8473         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8474         babysitter process, as suggested by Thomas Leonard, so 
8475         an "eval `dbus-launch --exit-with-session`" will actually 
8476         return
8477
8478 2003-07-16  Havoc Pennington  <hp@pobox.com>
8479
8480         * configure.in: print out EXPANDED_* variables in the summary at
8481         the end; clean up the code that computes EXPANDED_ variables and
8482         get the ones using exec_prefix right. Should make things work
8483         when you build without --prefix
8484
8485 2003-06-29  Havoc Pennington  <hp@pobox.com>
8486
8487         * mono/Test.cs (class Test): fire up a main loop and run it
8488
8489         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8490         done once, the app has to do it
8491
8492 2003-06-26  Havoc Pennington  <hp@pobox.com>
8493
8494         * mono/Connection.cs: set up connection with the glib main loop
8495
8496 2003-07-01  Havoc Pennington  <hp@redhat.com>
8497
8498         * doc/dbus-specification.sgml: clarify the format of a type code,
8499         change suggested by Jim Blandy
8500
8501 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8502
8503         * doc/Makefile.am:
8504         * tools/Makefile.am: Don't assume srcdir == builddir.
8505
8506         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8507         the allocated block.
8508         (_dbus_memory_test): New function.
8509         * dbus/dbus-test.h: Add _dbus_memory_test ().
8510         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8511
8512         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8513         of %c%c%c%c.
8514         (dbus_message_new): Remove obsolete @todo.
8515
8516         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8517         (_dbus_marshal_set_uint64): Fix comment.
8518
8519         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8520         hardcode FIELD_REPLY_SERIAL.
8521
8522         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8523         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8524
8525         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8526         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8527
8528 2003-06-24  Havoc Pennington  <hp@pobox.com>
8529
8530         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8531
8532 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8533
8534         * configure.in:
8535         * gcj/.cvsignore:
8536         * gcj/Hello.java:
8537         * gcj/Makefile.am:
8538         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8539         * gcj/org/.cvsignore:
8540         * gcj/org/Makefile.am:
8541         * gcj/org/freedesktop/.cvsignore:
8542         * gcj/org/freedesktop/Makefile.am:
8543         * gcj/org/freedesktop/dbus/.cvsignore:
8544         * gcj/org/freedesktop/dbus/Makefile.am:
8545         * gcj/org/freedesktop/dbus/Message.java: (Message),
8546         (Message.Message):
8547         * gcj/org/freedesktop/dbus/natMessage.cc:
8548         Fix the build system.
8549
8550 2003-06-22  Havoc Pennington  <hp@pobox.com>
8551
8552         * mono/Connection.cs: add more bindings
8553
8554         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8555         more than once.
8556
8557 2003-06-22  Havoc Pennington  <hp@pobox.com>
8558
8559         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8560         Start wrapping more stuff.
8561
8562 2003-06-22  Havoc Pennington  <hp@pobox.com>
8563
8564         * mono/Message.cs: implement Message.Wrap() that ensures we only
8565         have a single C# wrapper per DBusMessage, assuming it works which
8566         it probably doesn't.
8567
8568         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8569         (dbus_message_free_data_slot): new
8570         (dbus_message_set_data): new
8571         (dbus_message_get_data): new
8572
8573 2003-06-22  Havoc Pennington  <hp@pobox.com>
8574
8575         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8576         (_dbus_data_slot_allocator_alloc): rework these to keep a
8577         reference count on each slot and automatically manage a global
8578         slot ID variable passed in by address
8579
8580         * bus/bus.c: convert to new dataslot API
8581
8582         * dbus/dbus-bus.c: convert to new dataslot API
8583
8584         * dbus/dbus-connection.c: convert to new dataslot API
8585
8586         * dbus/dbus-server.c: convert to new dataslot API
8587
8588         * glib/dbus-gmain.c: ditto
8589
8590         * bus/test.c: ditto
8591
8592         * bus/connection.c: ditto
8593
8594 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8595
8596         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8597         after the gcj checks so that the correct configuration tags
8598         will be added to libtool.
8599
8600         * dbus-glib-1.pc.in: No need to specify any includes since
8601         dbus-1.pc.in has those.
8602
8603 2003-06-22  Havoc Pennington  <hp@pobox.com>
8604
8605         * mono/*, gcj/*, configure.in, Makefile.am:
8606         Check in makefiles and subdirs for mono and gcj bindings.
8607         Neither binding actually exists, just trying to get through
8608         all the build and other boring bits.
8609
8610 2003-06-21  Philip Blundell  <philb@gnu.org>
8611
8612         * tools/dbus-monitor.1: Updated.
8613
8614         * tools/dbus-send.1: Likewise.
8615
8616 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8617
8618         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8619         for hangup and error after checking read so we won't discard
8620         pending data if both hangup and read are set.
8621
8622 2003-06-19  Philip Blundell  <philb@gnu.org>
8623
8624         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8625
8626         * tools/dbus-send.c: Accept both --system and --session.
8627
8628         * tools/dbus-monitor.c: Same here.
8629
8630 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8631
8632         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8633         from C++ (Patch by Miloslav Trmac).
8634
8635 2003-06-15  Joe Shaw  <joe@assbarn.com>
8636
8637         * configure.in: Check for socklen_t.
8638
8639         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8640
8641         * test/test-segfault.c: Add #include <sys/time.h>
8642
8643         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8644         dbus-launch needs it.
8645
8646 2003-06-09  Havoc Pennington  <hp@redhat.com>
8647
8648         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8649         SUN_LEN, it breaks abstract socket usage
8650
8651         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8652         starts of lines.
8653
8654 2003-06-04  Havoc Pennington  <hp@pobox.com>
8655
8656         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8657         using unix:abstract=/foo, and when listening in a tmpdir
8658         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8659
8660         * dbus/dbus-transport.c (_dbus_transport_open): support
8661         unix:abstract=/foo
8662
8663         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8664         support abstract sockets
8665
8666         * dbus/dbus-transport-unix.c
8667         (_dbus_transport_new_for_domain_socket): support abstract sockets
8668
8669         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8670         toggle as an argument, implement abstract namespace support
8671         (_dbus_listen_unix_socket): ditto
8672
8673         * configure.in: add --enable-abstract-sockets and implement
8674         a configure check for autodetection of the right value.
8675
8676 2003-06-01  Havoc Pennington  <hp@pobox.com>
8677
8678         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8679         in /tmp (though on Linux this will end up being useless,
8680         when we add abstract namespace support)
8681
8682         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8683         subst'ing it
8684
8685 2003-05-28  Colin Walters  <walters@verbum.org>
8686
8687         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8688
8689 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8690
8691         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8692
8693 2003-05-17  Colin Walters  <walters@gnu.org>
8694
8695         * tools/dbus-send.c: Don't exit with an error code if --help was
8696         passed.  Default to using the session bus instead of the system
8697         one.
8698
8699         * tools/dbus-launch.c: Ditto.
8700
8701         * tools/dbus-monitor.c: Ditto.
8702
8703         * tools/dbus-send.1: Update with new arguments.
8704
8705         * tools/dbus-launch.c: Emit code to export variables.  New
8706         arguments -s and -c to specify shell syntax, and a bit of code to
8707         autodetect syntax.  Also, allow specifying a program to run.
8708
8709         * tools/dbus-launch.1: Update with new arguments.
8710
8711         * tools/dbus-send.1: Ditto.
8712
8713         * tools/dbus-monitor.1: Ditto.
8714
8715 2003-05-17  Havoc Pennington  <hp@pobox.com>
8716
8717         * bus/config-parser.c (merge_included): merge in policies from
8718         child configuration file.
8719
8720         * bus/policy.c (bus_policy_merge): function to merge two policies
8721         together
8722
8723 2003-05-16  Havoc Pennington  <hp@redhat.com>
8724
8725         * dbus/dbus-connection.c: disable verbose lock spew
8726
8727         * tools/dbus-send.c: add --print-reply command line option
8728
8729         * tools/dbus-print-message.h (print_message): new util function
8730         shared by dbus-send and dbus-monitor
8731
8732         * tools/dbus-monitor.c (handler_func): exit on disconnect
8733
8734         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8735         disconnected, don't try to use the read_watch
8736
8737         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8738         so we can find this bug more easily
8739
8740 2003-05-16  Havoc Pennington  <hp@redhat.com>
8741
8742         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8743         NULL as DBusHashTable is annoyingly likely to do.
8744
8745 2003-05-16  Colin Walters  <walters@verbum.org>
8746
8747         * tools/dbus-monitor.c: Add --session argument and usage()
8748         function.
8749
8750         * tools/dbus-monitor.1: Update with new --session arg.
8751
8752         * bus/Makefile.am (install-data-hook): Create
8753         $(libdir)/dbus-1.0/services so that the session bus is happy.
8754
8755 2003-05-15  Havoc Pennington  <hp@redhat.com>
8756
8757         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8758         on non-x86. ifdef's are evil.
8759
8760 2003-05-15  Havoc Pennington  <hp@redhat.com>
8761
8762         * configure.in: 0.11
8763
8764         * NEWS: update
8765
8766         * bus/Makefile.am (initddir): apparently we are supposed to put
8767         init scripts in /etc/rc.d/init.d not /etc/init.d
8768
8769         * bus/Makefile.am: remove the "you must --enable-tests to make
8770         check" as it broke distcheck
8771
8772         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8773
8774 2003-05-13  James Willcox  <jwillcox@gnome.org>
8775
8776         * configure.in:
8777         * bus/activation.c: (bus_activation_service_created),
8778         (bus_activation_activate_service):
8779         * bus/driver.c: (bus_driver_send_service_deleted),
8780         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8781         (bus_driver_send_service_acquired),
8782         (bus_driver_send_welcome_message),
8783         (bus_driver_handle_list_services):
8784         * bus/session.conf.in:
8785         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8786         (dbus_bus_service_exists), (dbus_bus_activate_service):
8787         * dbus/dbus-bus.h:
8788
8789         Add some convenience API which lets you activate a service, and did a
8790         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8791         and dbus_message_get_args()
8792
8793 2003-05-11  Havoc Pennington  <hp@pobox.com>
8794
8795         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8796         calling _dbus_marshal_validate_arg() for every byte in a byte
8797         array, etc.
8798
8799         * dbus/dbus-message-handler.c: use atomic reference counting to
8800         reduce number of locks slightly; the global lock in here sucks
8801
8802         * dbus/dbus-connection.c
8803         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8804         update_dispatch_status that can be called with lock held; then use
8805         in a couple places to reduce locking/unlocking
8806         (dbus_connection_send): hold the lock over the whole function
8807         instead of acquiring it twice.
8808
8809         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8810
8811         * bus/connection.c (bus_connections_setup_connection): fix access
8812         to already-freed memory.
8813
8814         * dbus/dbus-connection.c: keep a little cache of linked list
8815         nodes, to avoid using the global linked list alloc lock in the
8816         normal send-message case. Instead we just use the connection lock
8817         that we already have to take.
8818
8819         * dbus/dbus-list.c (_dbus_list_find_last): new function
8820
8821         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8822         change to use a struct for the atomic type; fix docs,
8823         they return value before increment, not after increment.
8824
8825         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8826         (_dbus_string_append_8_aligned): new functions to try to
8827         microoptimize this operation.
8828         (reallocate_for_length): break this out of set_length(), to
8829         improve profile info, and also so we can consider inlining the
8830         set_length() part.
8831
8832         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8833         strings with some preallocation, cuts down on our calls to realloc
8834         a fair bit. Though if we can get the "move entire string to empty
8835         string" optimization below to kick in here, it would be better.
8836
8837         * dbus/dbus-string.c (_dbus_string_move): just call
8838         _dbus_string_move_len
8839         (_dbus_string_move_len): add a special case for moving
8840         an entire string into an empty string; we can just
8841         swap the string data instead of doing any reallocs.
8842         (_dbus_string_init_preallocated): new function
8843
8844 2003-05-11  Havoc Pennington  <hp@pobox.com>
8845
8846         Write a "test-profile" that does echo client-server with threads;
8847         profile reveals lock contention, memcpy/realloc of buffers, and
8848         UTF-8 validation as hot spots. 20% of lock contention eliminated
8849         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8850         contention is global mempool locks for GList and DBusList.
8851
8852         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8853         x86 implementation
8854
8855         * dbus/dbus-connection.c (struct DBusConnection): use
8856         dbus_atomic_t for the reference count
8857
8858         * dbus/dbus-message.c (struct DBusMessage): declare
8859         dbus_atomic_t values as volatile
8860
8861         * configure.in: code to detect ability to use atomic integer
8862         operations in assembly, from GLib patch
8863
8864         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8865         time, tired of it being wrong in threads and forked processes
8866
8867         * glib/test-profile.c: a little program to bounce messages back
8868         and forth between threads and eat CPU
8869
8870         * dbus/dbus-connection.c: add debug spew macros for debugging
8871         thread locks; include config.h at top; fix deadlock in
8872         dbus_connection_flush()
8873
8874 2003-05-08  Havoc Pennington  <hp@pobox.com>
8875
8876         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8877         data from getting written, and there wasn't a good reason to
8878         use _exit really.
8879
8880         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8881         dbus_verbose lines in test coverage
8882         (main): add list of functions sorted by # of untested blocks
8883         to the coverage report
8884
8885         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8886
8887         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8888
8889         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8890         extend test coverage
8891
8892         * test/data/auth/cancel.auth-script: test canceling an
8893         authentication
8894
8895         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8896         aren't used. in CVS history if we end up needing them.
8897
8898 2003-05-04  Havoc Pennington  <hp@pobox.com>
8899
8900         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8901         unit test
8902
8903         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8904         function, which assumed length was in # of strings, not bytes
8905
8906         * dbus/dbus-message.c (_dbus_message_test): add tests for some
8907         missing coverage
8908
8909         * dbus/dbus-connection.c
8910         (_dbus_connection_queue_received_message): disable function for
8911         now, we are only using it in test mode
8912
8913         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8914         remove a mistaken FIXME
8915
8916 2003-05-04  Havoc Pennington  <hp@pobox.com>
8917
8918         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8919         unlock mutex on successful return, patch from Anders Gustafsson
8920
8921 2003-05-04  Havoc Pennington  <hp@pobox.com>
8922
8923         * dbus-glib-1.pc.in (Requires): fix dependencies, from
8924         Anders Gustafsson
8925
8926 2003-05-04  Havoc Pennington  <hp@pobox.com>
8927
8928         * tools/dbus-launch.c: implement
8929
8930         * bus/main.c (main), bus/bus.c (bus_context_new):
8931         implement --print-pid and --fork
8932
8933 2003-05-03  Havoc Pennington  <hp@redhat.com>
8934
8935         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8936         the address had no value, and add to test suite. Fix and
8937         regression test from Miloslav Trmac
8938
8939 2003-05-03  Havoc Pennington  <hp@pobox.com>
8940
8941         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8942         watch is invalid when handled
8943
8944         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8945         dbus-launch utility to launch the bus from a shell script.  Didn't
8946         actually implement dbus-launch yet, it's just a placeholder still.
8947
8948 2003-05-03  Havoc Pennington  <hp@pobox.com>
8949
8950         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8951         daemon; also documents daemon config file, so replaces
8952         doc/config-file.txt. Corrected some stuff from config-file.txt in
8953         the process of moving it.
8954
8955 2003-05-03  Havoc Pennington  <hp@pobox.com>
8956
8957         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8958         add some man pages
8959
8960 2003-05-03  Colin Walters  <walters@verbum.org>
8961
8962         * dbus/dbus-sysdeps.c (fill_user_info): Test against
8963         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8964
8965         * Makefile.am: Update to use new .pc versioning scheme.
8966
8967 2003-05-02  Havoc Pennington  <hp@redhat.com>
8968
8969         * bus/system.conf.in: allow send/receive to/from message bus
8970         service
8971
8972 2003-04-30  Havoc Pennington  <hp@redhat.com>
8973
8974         * configure.in: print a note when building with unit tests and
8975         without assertions
8976
8977 2003-04-30  Havoc Pennington  <hp@redhat.com>
8978
8979         * Makefile.am: add a check-local that complains if you didn't
8980         configure with --enable-tests
8981
8982 2003-04-29  Havoc Pennington  <hp@redhat.com>
8983
8984         * glib/dbus-gmain.c: docs cleanups
8985
8986         * dbus/dbus-types.h: add docs on int64 types
8987
8988         * dbus/dbus-memory.c: fix docs to avoid putting private API in
8989         public API docs section
8990
8991 2003-04-29  Havoc Pennington  <hp@redhat.com>
8992
8993         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8994         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8995         parallel install API version, not with the D-BUS package version.
8996
8997         * HACKING: move some of README over here
8998
8999         * README: updates, and document API/ABI policy
9000
9001         * configure.in: reindentation
9002
9003 2003-04-29  Havoc Pennington  <hp@redhat.com>
9004
9005         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9006         to use this library" to be sure people have the right
9007         expectations.
9008
9009 2003-04-28  Havoc Pennington  <hp@redhat.com>
9010
9011         * configure.in: add --enable-docs which by default is auto yes if
9012         doxygen and db2html found, no otherwise; but can be forced on/off
9013
9014         * doc/Makefile.am: conditionalize whether to build docs on
9015         --enable-docs
9016
9017 2003-04-28  Havoc Pennington  <hp@redhat.com>
9018
9019         * configure.in: 0.10
9020
9021         * NEWS: update
9022
9023         * bus/system.conf.in: add <includedir>system.d</includedir>
9024
9025         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9026         username was provided but not uid
9027
9028         * bus/config-parser.c (struct BusConfigParser): keep track of
9029         whether the parser is toplevel or was included; change some
9030         of the error handling if it's included.
9031
9032 2003-04-27  Havoc Pennington  <hp@pobox.com>
9033
9034         Unbreak my code...
9035
9036         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9037         report correct status if we finish processing authentication
9038         inside this function.
9039
9040         * bus/activation.c (try_send_activation_failure): use
9041         bus_transaction_send_error_reply
9042
9043         * bus/connection.c (bus_connection_get_groups): return an error
9044         explaining the problem
9045
9046         * bus/bus.c (bus_context_check_security_policy): implement
9047         restriction here that inactive connections can only send the
9048         hello message. Also, allow bus driver to send anything to
9049         any recipient.
9050
9051         * bus/connection.c (bus_connection_complete): create the
9052         BusClientPolicy here instead of on-demand.
9053         (bus_connection_get_policy): don't return an error
9054
9055         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9056         sender field in message being replied to
9057
9058         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9059         causing it to return FALSE always
9060
9061         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9062         we checked sender rather than destination
9063
9064 2003-04-25  Havoc Pennington  <hp@redhat.com>
9065
9066         test suite is slightly hosed at the moment, will fix soon
9067
9068         * bus/connection.c (bus_connections_expire_incomplete): fix to
9069         properly disable the timeout when required
9070         (bus_connection_set_name): check whether we can remove incomplete
9071         connections timeout after we complete each connection.
9072
9073         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9074         probably still broken.
9075
9076         * bus/services.c (bus_registry_acquire_service): implement max
9077         number of services owned, and honor allow/deny rules on which
9078         services a connection can own.
9079
9080         * bus/connection.c (bus_connection_get_policy): report errors here
9081
9082         * bus/activation.c: implement limit on number of pending
9083         activations
9084
9085 2003-04-25  Havoc Pennington  <hp@redhat.com>
9086
9087         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9088         where we used >= 0 instead of != DBUS_UID_UNSET.
9089
9090 2003-04-25  Havoc Pennington  <hp@redhat.com>
9091
9092         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9093         were toggled without add/remove, fix from Anders Gustafsson
9094
9095 2003-04-24  Havoc Pennington  <hp@redhat.com>
9096
9097         * test/data/valid-config-files/basic.conf: add <limit> tags to
9098         this test
9099
9100         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9101         <limit> tag in configuration file.
9102
9103 2003-04-24  Havoc Pennington  <hp@redhat.com>
9104
9105         * bus/dispatch.c: somehow missed some name_is
9106
9107         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9108         (_dbus_timeout_set_interval): new
9109
9110         * bus/connection.c (bus_connections_setup_connection): record time
9111         when each connection is first set up, and expire them after the
9112         auth timeout passes.
9113
9114 2003-04-24  Havoc Pennington  <hp@redhat.com>
9115
9116         * dbus/dbus-message.c (dbus_message_name_is): rename
9117         (dbus_message_service_is): rename
9118         (dbus_message_sender_is): rename
9119         (dbus_message_get_service): rename
9120
9121 2003-04-24  Havoc Pennington  <hp@redhat.com>
9122
9123         * configure.in: add --enable-checks
9124
9125         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9126
9127         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9128         to use thread locks.
9129         (_dbus_connection_handler_destroyed_locked): move some private
9130         functions into proper docs group
9131
9132         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9133         _dbus_return_val_if_fail
9134
9135         Throughout: use dbus_return_if_fail
9136
9137 2003-04-23  James Willcox  <jwillcox@gnome.org>
9138
9139         * glib/dbus-glib.h:
9140         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9141         (dbus_connection_setup_with_g_main),
9142         (dbus_server_setup_with_g_main):
9143         * glib/test-dbus-glib.c: (main):
9144         * glib/test-thread-client.c: (main):
9145         * glib/test-thread-server.c: (new_connection_callback), (main):
9146         * tools/dbus-monitor.c: (main):
9147
9148         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9149         and dbus_server_setup_with_g_main().
9150
9151 2003-04-20  Havoc Pennington  <hp@pobox.com>
9152
9153         * doc/dbus-specification.sgml: document the restrictions on
9154         message and service names
9155
9156 2003-04-22  Havoc Pennington  <hp@redhat.com>
9157
9158         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9159         support, and do some code cleanups to share more code and
9160         speed up array marshal/demarshal.
9161
9162         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9163
9164         * configure.in: generate dbus-arch-deps.h
9165
9166         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9167         64-bit typecodes
9168
9169 2003-04-22  Havoc Pennington  <hp@redhat.com>
9170
9171         * test/data/valid-messages/opposite-endian.message: fix test
9172         to use proper type for rply field
9173
9174         * test/data/invalid-messages: add tests for below validation
9175
9176         * dbus/dbus-message.c (decode_header_data): validate field types,
9177         and validate that named fields are valid names
9178         (decode_name_field): consider messages in the
9179         org.freedesktop.Local. namespace to be invalid.
9180
9181         * dbus/dbus-string.c (_dbus_string_validate_name): new
9182
9183 2003-04-19  Havoc Pennington  <hp@pobox.com>
9184
9185         * bus/driver.c (bus_driver_handle_hello): check limits and
9186         return an error if they are exceeded.
9187
9188         * bus/connection.c: maintain separate lists of active and inactive
9189         connections, and a count of each. Maintain count of completed
9190         connections per user. Implement code to check connection limits.
9191
9192         * dbus/dbus-list.c (_dbus_list_unlink): export
9193
9194         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9195         number of bytes in the message queue for a connection
9196
9197 2003-04-18  Havoc Pennington  <hp@pobox.com>
9198
9199         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9200
9201         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9202         memleaks
9203
9204         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9205         on realloc be sure to update the pointer in the keyring
9206
9207         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9208         offset to avoid writing to unallocated memory
9209
9210         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9211         try the next mechanism, so we properly handle OOM
9212
9213         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9214         on OOM.
9215         (_dbus_keyring_new): fix OOM bug
9216         (_dbus_keyring_new_homedir): always set error; impose a maximum
9217         number of keys we'll load from the file, mostly to speed up the
9218         test suite and make its OOM checks more useful, but also for
9219         general sanity.
9220
9221         * dbus/dbus-auth.c (process_error_server): reject authentication
9222         if we get an error from the client
9223         (process_cancel): on cancel, send REJECTED, per the spec
9224         (process_error_client): send CANCEL if we get an error from the
9225         server.
9226
9227 2003-04-18  Havoc Pennington  <hp@pobox.com>
9228
9229         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9230         debug spew
9231
9232         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9233         handling problem
9234
9235         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9236         about DBUS_TEST_HOMEDIR once
9237
9238         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9239         the environment
9240
9241         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9242         config file so we test the right thing
9243
9244         Throughout: assorted docs improvements
9245
9246 2003-04-18  Havoc Pennington  <hp@pobox.com>
9247
9248         * glib/dbus-gmain.c: adapt to watch changes
9249
9250         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9251
9252         * dbus/dbus-server.h: remove dbus_server_handle_watch
9253
9254         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9255
9256         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9257         like DBusTimeout, so we don't need dbus_connection_handle_watch
9258         etc.
9259
9260 2003-04-17  Havoc Pennington  <hp@redhat.com>
9261
9262         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9263         database usage so it all goes via the DBusUserDatabase cache.
9264
9265 2003-04-17  Havoc Pennington  <hp@redhat.com>
9266
9267         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9268         there was an OOM watch we skipped, we always return TRUE so we
9269         iterate again to have a look at it again. Fixes test suite hang.
9270         Code rearrangement also lets us lose some memset and only iterate
9271         over callbacks once.
9272
9273         * bus/driver.c (bus_driver_handle_message): sense of test for
9274         reply was backward
9275
9276 2003-04-16  Havoc Pennington  <hp@pobox.com>
9277
9278         * doc/dbus-specification.sgml: make spec say serials are unsigned
9279
9280         * dbus/dbus-message.h: change message serials to unsigned
9281
9282         * dbus/dbus-connection.c: adapt to message serials being unsigned
9283
9284 2003-04-15  Havoc Pennington  <hp@pobox.com>
9285
9286         * bus/bus.c: create and keep around a shared DBusUserDatabase
9287         object.
9288
9289         * bus/connection.c (bus_connection_get_groups): don't cache
9290         groups for user in the connection object, since user database
9291         object now does that.
9292
9293 2003-04-16  Havoc Pennington  <hp@redhat.com>
9294
9295         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9296         list of size counters
9297         (_dbus_message_loader_putback_message_link): put back a popped link
9298
9299         * dbus/dbus-connection.c
9300         (dbus_connection_set_max_live_messages_size): rename
9301         max_received_size
9302         (dbus_connection_get_outgoing_size): get size of outgoing
9303         queue
9304         (_dbus_connection_set_connection_counter): remove this cruft
9305
9306 2003-04-14  Havoc Pennington  <hp@redhat.com>
9307
9308         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9309         caching, but at some point we might want to be able to use a
9310         different database.
9311
9312         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9313         SHA1 conf file to test the sha1 auth mechanism, since the regular
9314         test always uses EXTERNAL when available.
9315
9316         * configure.in,
9317         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9318         add conf file that requires use of sha1 auth
9319
9320 2003-04-13  Havoc Pennington  <hp@pobox.com>
9321
9322         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9323         from Philip Blundell to send messages and monitor them.
9324
9325 2003-04-13  Havoc Pennington  <hp@pobox.com>
9326
9327         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9328         callbacks
9329
9330         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9331         users
9332
9333         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9334         fix to only recover unused bytes if we're already authenticated
9335         (_dbus_transport_get_is_authenticated): fix to still mark us
9336         authenticated if there are unused bytes.
9337
9338         * bus/dispatch.c: implement security policy checking
9339
9340         * bus/connection.c (bus_transaction_send_from_driver): new
9341
9342         * bus/bus.c (bus_context_check_security_policy): new
9343
9344         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9345         now we just set the DBusError and it gets converted to an error
9346         reply.
9347
9348         * bus/connection.c (allow_user_function): enable code using actual
9349         data from the config file
9350
9351         * bus/policy.c (list_allows_user): handle wildcard rules for
9352         user/group connection perms
9353
9354 2003-04-13  Havoc Pennington  <hp@pobox.com>
9355
9356         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9357
9358         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9359
9360         * bus/policy.c (bus_policy_append_mandatory_rule)
9361         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9362         (bus_policy_append_group_rule): new functions
9363
9364 2003-04-12  Havoc Pennington  <hp@pobox.com>
9365
9366         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9367
9368         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9369         the pid/gid/uid, just for paranoia.
9370
9371         * test/break-loader.c (randomly_do_n_things): find a byte
9372         containing a type code, and randomly change it to a different
9373         type code.
9374
9375 2003-04-12  Havoc Pennington  <hp@pobox.com>
9376
9377         * bus/policy.h: change BusPolicy to be the thing from the config
9378         file, and rename old BusPolicy to BusClientPolicy
9379
9380         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9381         match change in how policy works
9382
9383         * dbus/dbus-internals.h: mark assert_not_reached as
9384         __attribute((noreturn))__
9385
9386 2003-04-11  Havoc Pennington  <hp@redhat.com>
9387
9388         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9389         the broadcast service. Use boolean return for ServiceExists.
9390
9391 2003-04-11  Havoc Pennington  <hp@redhat.com>
9392
9393         * configure.in: add another directory to look for qt in.
9394
9395 2003-04-11  Havoc Pennington  <hp@redhat.com>
9396
9397         * AUTHORS: add Colin Walters
9398
9399 2003-04-11  Havoc Pennington  <hp@redhat.com>
9400
9401         * NEWS: update
9402
9403         * configure.in: 0.9
9404
9405 2003-04-11  Havoc Pennington  <hp@redhat.com>
9406
9407         * bus/messagebus.in: remove pid file when stopping the
9408         message bus, since the bus won't have privileges to remove it
9409         itself.
9410
9411 2003-04-11  Havoc Pennington  <hp@redhat.com>
9412
9413         * bus/bus.c (bus_context_new): move credentials change after
9414         creating pidfile
9415
9416 2003-04-11  Havoc Pennington  <hp@pobox.com>
9417
9418         * test/decode-gcov.c: add "below average functions" to the
9419         coverage report, and change how some of the code works.
9420
9421         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9422         not in the coverage stats.
9423
9424         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9425         couple places so running the test suite doesn't result in megaspam.
9426
9427 2003-04-11  Havoc Pennington  <hp@pobox.com>
9428
9429         * bus/dispatch.c (check_existent_service_activation): accept a no
9430         memory error in a place we didn't before
9431
9432         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9433         in case the first one failed," since the test suite is less
9434         broken now.
9435
9436 2003-04-10  Havoc Pennington  <hp@pobox.com>
9437
9438         * bus/dispatch.c (check_segfault_service_activation): add test
9439         for launching an executable that just crashes.
9440
9441         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9442         don't leave a million cores. We'll see how portable this is.
9443
9444 2003-04-10  Havoc Pennington  <hp@pobox.com>
9445
9446         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9447         the possible parent failures before we fork, so that we don't
9448         fail to create a babysitter after creating the child.
9449
9450         * bus/activation.c (bus_activation_activate_service): kill child
9451         if we don't successfully complete the activation.
9452
9453 2003-04-10  Havoc Pennington  <hp@redhat.com>
9454
9455         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9456         the connection if it's disconnected
9457
9458         * bus/activation.c (bus_activation_service_created): use new
9459         transaction features to roll back removal of pending activation if
9460         we don't successfully create the service after all. Don't remove
9461         pending activation if the function fails.
9462
9463         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9464         (_dbus_list_insert_after_link): new code to facilitate
9465         services.c fixes
9466
9467         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9468         new functionality, so we can preallocate the ability to insert
9469         into a hash table.
9470
9471         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9472         allowing us to put custom hooks in a transaction to be used for
9473         cancelling said transaction
9474
9475         * doc/dbus-specification.sgml: add some discussion of secondary
9476         service owners, and disallow zero-length service names
9477
9478         * bus/services.c (bus_registry_acquire_service): new function,
9479         splits out part of bus_driver_handle_acquire_service() and fixes
9480         a bug where we didn't remove the service doing the acquiring
9481         from the secondary queue if we failed to remove the current owner
9482         from the front of the queue.
9483
9484 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9485
9486         * doc/dbus-specification.sgml:
9487         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9488
9489 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9490
9491         * bus/.cvsignore:
9492         * glib/.cvsignore:
9493         * test/.cvsignore:
9494         Added files to cvsignore
9495
9496         * dbus/dbus-message.h:
9497         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9498         Make get_named() take two out argument and return a boolean.
9499         (dbus_message_iter_get_args_valist):
9500         Update usage of get_named().
9501         (dbus_message_iter_append_byte):
9502         Fix typo
9503         (dbus_message_iter_append_named)
9504         Fix typo
9505         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9506         More tests.
9507
9508 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9509
9510         * dbus/dbus-marshal.[ch]:
9511         Add array_type_pos argument to _dbus_marshal_validate_arg.
9512         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9513
9514         * dbus/dbus-message.[ch]:
9515         Multi-dimensional arrays have full type specification in the
9516         outermost array. Iter code re-arranged to handle this.
9517         Added some more iter tests.
9518
9519         * doc/dbus-specification.sgml:
9520         Add me to authors.
9521         Remove old FIXME.
9522         Update new array encoding description.
9523         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9524
9525         * test/data/invalid-messages/array-with-mixed-types.message:
9526         * test/data/valid-messages/array-of-array-of-uint32.message:
9527         Change to the new array format.
9528
9529         * test/data/invalid-messages/too-short-dict.message:
9530         Fix bug in test.
9531
9532         * test/data/valid-messages/recursive-types.message:
9533         Fix up and extend test.
9534
9535 2003-04-10  Havoc Pennington  <hp@pobox.com>
9536
9537         * bus/dispatch.c: lots of fixes
9538
9539         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9540         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9541         that was crack, broke the test service.
9542
9543         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9544         handling to avoid piling up errors if we get a failure on the
9545         first address.
9546
9547         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9548         pid in assertion failures.
9549
9550         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9551         to some fixed size of file descriptor array. Don't return TRUE
9552         anytime a timeout exists, that led to lots of busy loop silliness
9553         in the tests.
9554
9555 2003-04-09  Havoc Pennington  <hp@redhat.com>
9556
9557         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9558         I'd checked this in earlier but hadn't.
9559
9560 2003-04-09  Havoc Pennington  <hp@redhat.com>
9561
9562         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9563         the activation test (man this is getting old!)
9564
9565 2003-04-09  Havoc Pennington  <hp@redhat.com>
9566
9567         * test/test-utils.c: use dispatch status function to fix this up
9568
9569         * bus/connection.c (connection_watch_callback): don't dispatch
9570         from here
9571         (connection_timeout_callback): don't dispatch from here
9572         (bus_connections_setup_connection): set the dispatch status function
9573         (bus_connection_disconnected): unset it
9574
9575         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9576         used to add a connection to be dispatched
9577         (_dbus_loop_iterate): do the dispatching at the end of each
9578         iteration
9579
9580         * dbus/dbus-connection.c
9581         (dbus_connection_set_dispatch_status_function): new function
9582         allowing us to fix up main loop usage
9583         (_dbus_connection_last_unref): free all the various function
9584         user data
9585         (dbus_connection_dispatch): call the DispatchStatusFunction
9586         whenever this function returns
9587         (dbus_connection_handle_watch): call DispatchStatusFunction
9588         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9589         (reply_handler_timeout): call DispatchStatusFunction
9590         (dbus_connection_flush): call DispatchStatusFunction
9591
9592 2003-04-09  Havoc Pennington  <hp@redhat.com>
9593
9594         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9595         a memory leak
9596
9597         * bus/dispatch.c (check_service_activated): fix bug in test
9598
9599         * dbus/dbus-mainloop.c (check_timeout): fix this up
9600
9601         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9602         verbose output so we can sort out output from different processes,
9603         e.g. in the activation case.
9604
9605 2003-04-08  Colin Walters  <walters@gnu.org>
9606
9607         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9608         the pid file.
9609         (bus_context_new): Set it.
9610         (bus_context_unref): Use it to delete the pid file.
9611
9612 2003-04-08  Havoc Pennington  <hp@redhat.com>
9613
9614         * test/data/invalid-messages/array-with-mixed-types.message:
9615         regression test that fails for the moment
9616
9617         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9618         tests for convenience
9619
9620         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9621         array of nil, it broke things.
9622
9623         * test/data/invalid-messages/array-of-nil.message: regression test
9624
9625         * test/data/valid-messages/array-of-array-of-uint32.message:
9626         happened to write this so added it to suite
9627
9628 2003-04-08  Havoc Pennington  <hp@redhat.com>
9629
9630         * bus/driver.c (bus_driver_handle_acquire_service): init
9631         retval/reply before checking name
9632
9633         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9634         recursion depth argument
9635
9636         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9637         in the public struct for future extension
9638
9639         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9640         typo
9641
9642         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9643         message
9644
9645         * doc/dbus-specification.sgml: fix typo
9646
9647 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9648
9649         Implemented recursive types, named types and new-style iters
9650
9651         * bus/driver.c:
9652         * glib/test-thread-client.c: (thread_func):
9653         * glib/test-thread-server.c: (handle_test_message):
9654         * test/test-service.c: (handle_echo):
9655         Update to new api
9656
9657         * dbus/Makefile.am:
9658         * dbus/dbus-dict.c:
9659         * dbus/dbus-dict.h:
9660         * dbus/dbus.h
9661         Remove DBusDict
9662
9663         * dbus/dbus-internals.c: (_dbus_type_to_string):
9664         Update for new types.
9665
9666         * dbus/dbus-marshal.[ch]:
9667         Implement recursive types and the new marshalling format.
9668         Remove hardcoded dict marshalling.
9669         Marshal named types.
9670
9671         * dbus/dbus-message-builder.c:
9672         Add BYTE_ARRAY.
9673         Remove references to old types
9674
9675         * dbus/dbus-message.[ch]:
9676         New non-refcounted iter API that supports recursive iters.
9677         Use iters for appending, including support for recursive
9678         iters.
9679         Add byte and named type support.
9680         Update everything to new marshalling formats.
9681         Add tests for new API.
9682
9683         * dbus/dbus-protocol.h:
9684         Remove old array types.
9685         Add types: BYTE, ARRAY, DICT, NAMED
9686
9687         * dbus/dbus-string.c:
9688         * dbus/dbus-sysdeps.c:
9689         Make parse_double locale safe.
9690
9691         * dbus/dbus-test-main.c:
9692         Call setlocale.
9693
9694         * dbus/dbus-test.c:
9695         Kill dict test
9696
9697         * doc/dbus-specification.sgml:
9698         Update spec
9699
9700         * test/data/incomplete-messages/missing-body.message:
9701         * test/data/invalid-messages/bad-boolean.message:
9702         * test/data/invalid-messages/bad-boolean-array.message:
9703         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9704         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9705         * test/data/invalid-messages/too-short-dict.message:
9706         * test/data/valid-messages/dict-simple.message:
9707         * test/data/valid-messages/dict.message:
9708         * test/data/valid-messages/emptiness.message:
9709         * test/data/valid-messages/lots-of-arguments.message:
9710         * test/data/valid-messages/no-padding.message:
9711         * test/data/valid-messages/recursive-types.message:
9712         Add missing NAME fields
9713         Fix up dicts & arrays
9714
9715         * test/data/invalid-messages/dict-with-nil-value.message:
9716         Removed, this is not invalid anymore.
9717
9718         * test/data/valid-messages/recursive-types.message:
9719         Add new test for deeply recursive types.
9720
9721 2003-04-07  Havoc Pennington  <hp@pobox.com>
9722
9723         * bus/driver.c (bus_driver_handle_acquire_service): return an
9724         error if you try to acquire a service that starts with ':'
9725
9726 2003-04-07  Havoc Pennington  <hp@redhat.com>
9727
9728         * doc/dbus-specification.sgml: require that base service names
9729         start with ':' and that the base service is created/deleted
9730         as first and last things a connection does on the bus
9731
9732         * bus/dispatch.c (check_existent_service_activation): lots more
9733         work on the activation test; it doesn't fully pass yet...
9734
9735         * test/test-service.c (main): fix so we don't memleak the
9736         connection to the message bus
9737         (filter_func): accept a message asking us to exit
9738
9739 2003-04-06  Havoc Pennington  <hp@pobox.com>
9740
9741         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9742         from Colin Walters
9743
9744         * configure.in: fixes to Qt detection from Colin Walters
9745
9746         * doc/Makefile.am: Only remove generated docbook dirs if they
9747         exist, from Colin Walters
9748
9749         * dbus/dbus-bus.c: change how we set well-known connections to
9750         NULL, so that it works if a single connection is stored in
9751         two well-known array slots.
9752
9753         * test/Makefile.am: remove a lot of stuff that isn't immediately
9754         useful, it's in CVS history if we want it.
9755
9756         * test/test-service.c: use dbus-mainloop instead of that
9757         watch.[hc] crack
9758
9759 2003-04-06  Havoc Pennington  <hp@pobox.com>
9760
9761         * dbus/Makefile.am: split lists of sources into stuff that goes in
9762         the library, util functions that go in the lib and are also used
9763         elsewhere, and util functions that are used in tests/daemon but
9764         don't go in the lib.
9765
9766         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9767         here so it can be used in test binaries also
9768
9769 2003-04-06  Havoc Pennington  <hp@pobox.com>
9770
9771         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9772         here in the parent process, so we can return an error if it
9773         fails. Also, move some of the code into the child so the parent
9774         is less hosed if we fail midway through.
9775
9776         * bus/bus.c (bus_context_new): move pidfile detection further up
9777         in the function, before we start overwriting sockets and such.
9778
9779         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9780
9781         * configure.in: add --with-system-pid-file and --with-system-socket
9782
9783 2003-04-06  Colin Walters  <walters@verbum.org>
9784
9785         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9786
9787         * bus/system.conf.in: Declare a pidfile.
9788
9789         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9790         create one (if appropriate).
9791
9792         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9793         (struct BusConfigParser) [pidfile]: New.
9794         (element_type_to_name, merge_included, start_busconfig_child)
9795         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9796         (bus_config_parser_unref): Free it.
9797         (bus_config_parser_get_pidfile): New function.
9798
9799         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9800
9801         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9802
9803         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9804
9805         * dbus/dbus-sysdeps.h: Prototype it.
9806
9807 2003-04-06  Havoc Pennington  <hp@pobox.com>
9808
9809         * bus/bus.c (bus_context_new): print the address in here, rather
9810         than in main(), because we need to do it before forking the daemon
9811
9812         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9813         on the service nonexistent error
9814
9815         * bus/driver.c (bus_driver_handle_acquire_service): set the
9816         sender on the AcquireService reply
9817
9818         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9819         server also listen on a UNIX socket so services can connect to it.
9820
9821 2003-04-06  Havoc Pennington  <hp@pobox.com>
9822
9823         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9824         so it detects deadlocks and also we actually init threads when
9825         debugging.
9826
9827 2003-04-06  Havoc Pennington  <hp@pobox.com>
9828
9829         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9830         save the domain socket name, and unlink it when we disconnect the
9831         server. Means that at least when we exit normally, we won't leave
9832         a bunch of junk in /tmp
9833
9834         * dbus/dbus-transport-unix.c
9835         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9836         memory management). (I was making a real change here but then
9837         didn't)
9838
9839 2003-04-06  Havoc Pennington  <hp@pobox.com>
9840
9841         * bus/bus.c (bus_context_new): fix wrong handling of
9842         server_data_slot_unref() in the error case.
9843
9844         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9845         "(condition) != 0" to _dbus_real_assert so that
9846         "_dbus_assert (pointer)" doesn't cause a warning
9847
9848         * bus/main.c (main): accept --print-address option to print out
9849         the message bus address
9850
9851         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9852
9853         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9854         "tmpdir" option to unix: address on client side
9855
9856         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9857         to unix: address
9858
9859         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9860         we can use to create sockets in the test suite.
9861
9862         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9863         cleanly. To be used for testing.
9864
9865         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9866
9867         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9868
9869         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9870         handle trying to call this when there's no servers active
9871
9872 2003-04-05  Havoc Pennington  <hp@pobox.com>
9873
9874         * NEWS: update
9875
9876         * configure.in: 0.8
9877
9878 2003-04-05  Havoc Pennington  <hp@pobox.com>
9879
9880         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9881         crash on startup. Need to get "try starting the daemon"
9882         in the test suite I guess. ;-)
9883
9884         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9885         tracked the number of open connections; it's better done in
9886         application-specific code as you want it to span all servers etc.
9887
9888 2003-04-05  Havoc Pennington  <hp@pobox.com>
9889
9890         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9891         patch from Colin Walters
9892
9893 2003-04-05  Havoc Pennington  <hp@pobox.com>
9894
9895         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9896         reality; in fact multiple mechanisms are allowed.
9897
9898         * dbus/dbus-internals.c (_dbus_real_assert)
9899         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9900         _dbus_assert_not_reached() into functions, so that they don't show
9901         up in basic block counts for test coverage, and don't use up as
9902         much disk space. Does mean slower execution speed though, so
9903         assumes --disable-asserts is the normal production case.
9904
9905 2003-04-05  Havoc Pennington  <hp@pobox.com>
9906
9907         * test/Makefile.am (dist-hook): also dist *.in files
9908
9909         * NEWS: update
9910
9911         * configure.in: 0.7
9912
9913 2003-04-05  Havoc Pennington  <hp@pobox.com>
9914
9915         * dbus/dbus-string.c: docs warning
9916
9917         * dbus/dbus-spawn.c: missing docs
9918
9919         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9920
9921 2003-04-05  Havoc Pennington  <hp@pobox.com>
9922
9923         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9924         magic from GLib
9925
9926         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9927         to -1 once we've reaped the babysitter
9928         (_dbus_babysitter_handle_watch): do as much work as we can, not
9929         just one go of it
9930
9931         * bus/activation.c: add code using DBusBabysitter so that we
9932         handle it when a service fails to start up properly.
9933         (bus_activation_service_created): don't remove the activation
9934         entries as we go, just let them get removed when we free the pending
9935         activation. Unref reply messages after sending them.
9936
9937 2003-04-05  Havoc Pennington  <hp@pobox.com>
9938
9939         * test/decode-gcov.c (main): print per-directory stats in the report
9940
9941         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9942
9943 2003-04-05  Havoc Pennington  <hp@pobox.com>
9944
9945         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9946
9947         * test/decode-gcov.c: hack up a little program to suck data
9948         out of gcov files. Yes this is sort of silly.
9949
9950         * configure.in: define something in config.h and do an
9951         AM_CONDITIONAL when gcov is enabled
9952
9953 2003-04-04  Havoc Pennington  <hp@redhat.com>
9954
9955         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9956         return a "babysitter" object that is used to monitor the status of
9957         the spawned process and reap it when required.
9958
9959         * test/test-segfault.c, test/test-exit.c,
9960         test/test-sleep-forever.c: binaries that do various lame things,
9961         used in the test suite.
9962
9963         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9964
9965 2003-04-03  Havoc Pennington  <hp@pobox.com>
9966
9967         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9968         in preparation for modifying it, dbus-sysdeps is getting
9969         a bit unmanageable.
9970
9971 2003-04-03  Havoc Pennington  <hp@redhat.com>
9972
9973         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9974         have multiple ones
9975
9976         * bus/*.[hc]: adapt to mainloop change
9977
9978 2003-04-03  Havoc Pennington  <hp@redhat.com>
9979
9980         * bus/activation.c (load_directory): fix up memleaks
9981         (bus_activation_entry_free): free the entry
9982
9983         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9984         we get one from the message bus; fix memleaks.
9985
9986         * dbus/dbus-message.c (dbus_set_error_from_message): new function
9987
9988 2003-04-03  Havoc Pennington  <hp@pobox.com>
9989
9990         * bus/config-parser.c (bus_config_parser_unref): free
9991         list of mechanisms, bug discovered by test suite enhancements
9992         (putting system.conf and session.conf into suite)
9993
9994         * test/Makefile.am, test/test-service.c: add placeholder for a
9995         test service that we'll activate as part of test suite. Doesn't
9996         do anything yet.
9997
9998         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9999         setting NULL value, and use system malloc not dbus_malloc()
10000         when we have unavoidable memleakage.
10001
10002         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10003         didn't work, and support DBUS_BUS_ACTIVATION.
10004
10005         * bus/activation.c (child_setup): pass our well-known bus type to
10006         the child
10007
10008         * bus/config-parser.c: support <type> to specify well-known type
10009
10010         * doc/dbus-specification.sgml: document the env variables to
10011         locate well-known buses and find service activator
10012
10013 2003-04-02  Havoc Pennington  <hp@redhat.com>
10014
10015         * test/Makefile.am (all-local): add a rule to copy tests to
10016         builddir, so we can have generated tests. Use this to remove the
10017         silly hack for testing system.conf and session.conf. Will use this
10018         shortly to generate .service files pointing to test binaries.
10019
10020 2003-04-02  Havoc Pennington  <hp@redhat.com>
10021
10022         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10023         current alloc and needed new length, not max of the doubled
10024         allocation and needed new length. Also, when building tests,
10025         don't do the double-allocation stuff, just realloc every time.
10026
10027 2003-04-02  Havoc Pennington  <hp@redhat.com>
10028
10029         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10030         in error messages
10031         (_dbus_string_get_dirname): new
10032         (_dbus_sysdeps_test): new
10033         (_dbus_directory_open): include dirnames in error messages
10034
10035         * bus/config-parser.c: interpret <include> and <includedir> and
10036         <servicedir> relative to config file location if the given
10037         filename is not absolute.
10038
10039         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10040
10041 2003-04-02  Havoc Pennington  <hp@redhat.com>
10042
10043         * bus/connection.c (bus_transaction_send_error_reply): set sender
10044         service for the error, and unref the reply on success
10045
10046         * bus/activation.c: convert to use BusTransaction so OOM can be
10047         handled correctly
10048         (bus_activation_service_created): set sender of the message
10049
10050 2003-04-01  Havoc Pennington  <hp@redhat.com>
10051
10052         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10053         <includedir> (at least mostly)
10054
10055         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10056         first, then the user ID
10057
10058 2003-04-01  Havoc Pennington  <hp@pobox.com>
10059
10060         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10061         function
10062
10063         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10064
10065         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10066
10067         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10068         socket 0777, and unlink any existing socket.
10069
10070         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10071         the configuration file so specifies; set up auth mechanism
10072         restrictions
10073
10074         * bus/config-parser.c (bus_config_parser_content): add support
10075         for <fork> option and fill in code for <auth>
10076
10077         * bus/system.conf.in: add <fork/> to default configuration,
10078         and limit auth mechanisms to EXTERNAL
10079
10080         * doc/config-file.txt (Elements): add <fork>
10081
10082         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10083         (_dbus_change_identity): new function
10084
10085 2003-03-31  Havoc Pennington  <hp@redhat.com>
10086
10087         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10088         (_dbus_listen_unix_socket): fix off-by-one error in null
10089         termination spotted by Nalin
10090
10091 2003-03-31  Havoc Pennington  <hp@redhat.com>
10092
10093         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10094         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10095         having a real home directory available.
10096
10097 2003-03-31  Havoc Pennington  <hp@redhat.com>
10098
10099         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10100
10101         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10102
10103         * configure.in: add support for specifying a style of init script
10104         to install
10105
10106 2003-03-31  Havoc Pennington  <hp@redhat.com>
10107
10108         Fix some annoying DBusString API and fix all affected code.
10109
10110         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10111         max_length argument
10112         (_dbus_string_get_data): change to return string instead of using
10113         an out param
10114         (_dbus_string_get_const_data): ditto
10115         (_dbus_string_get_data_len): ditto
10116         (_dbus_string_get_const_data_len): ditto
10117
10118 2003-03-31  Havoc Pennington  <hp@redhat.com>
10119
10120         * bus/main.c (main): fix up the command line arguments to be nicer
10121
10122 2003-03-31  Havoc Pennington  <hp@redhat.com>
10123
10124         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10125         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10126         final location that lands in the config file
10127
10128         * bus/config-loader-expat.c (bus_config_load): fix type of
10129         XML_Parser variable
10130
10131         * doc/TODO: remove TODO item for dbus_bus_get()
10132
10133         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10134
10135 2003-03-31  Havoc Pennington  <hp@pobox.com>
10136
10137         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10138         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10139         argument since they are always client side
10140
10141         * dbus/dbus-server.c (dbus_server_get_address): new function
10142
10143         * bus/main.c (main): take the configuration file as an argument.
10144
10145         * test/data/valid-config-files/debug-allow-all.conf: new file to
10146         use with dispatch.c tests for example
10147
10148         * bus/test-main.c (main): require test data dir
10149
10150         * bus/bus.c (bus_context_new): change this to take a
10151         configuration file name as argument
10152
10153         * doc/config-file.txt (Elements): add <servicedir>
10154
10155         * bus/system.conf, bus/session.conf: new files
10156
10157         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10158         well-known socket if none set
10159
10160         * configure.in: create system.conf and session.conf
10161
10162 2003-03-30  Havoc Pennington  <hp@pobox.com>
10163
10164         * bus/config-parser.c: hacking
10165
10166         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10167         to shut down, since it could cause weirdness with the DBusList
10168         lock
10169
10170         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10171         link-oriented stack routines
10172         (alloc_link): free the mempool if the first alloc from it fails
10173
10174         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10175
10176         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10177         from GLib
10178         (_dbus_string_skip_white): new
10179
10180         * doc/config-file.txt (Elements): add <includedir>
10181
10182 2003-03-28  Havoc Pennington  <hp@pobox.com>
10183
10184         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10185         (_dbus_string_copy_data): new functions
10186
10187 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10188
10189         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10190         * dbus/dbus-bus.h:
10191         Add dbus_bus_get.
10192
10193         * dbus/dbus-memory.c:
10194         Fix a doc comment.
10195
10196 2003-03-28  Havoc Pennington  <hp@pobox.com>
10197
10198         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10199         I think it may have just been superstition. Not sure.
10200
10201         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10202         failures that were not being handled.
10203
10204         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10205
10206         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10207         row that will fail on out-of-memory.
10208
10209         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10210         function for testing out-of-memory handling.
10211
10212         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10213         allocation functions, they do map exactly to the expat ones.
10214
10215 2003-03-27  Havoc Pennington  <hp@redhat.com>
10216
10217         * bus/config-loader-libxml.c (bus_config_load): add another error
10218         check
10219
10220 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10221
10222         * doc/TODO:
10223         Add note about automatic service activation.
10224
10225         * doc/dbus-specification.sgml:
10226         Rename the specification and clarify a few things.
10227
10228 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10229
10230         * Doxyfile.in:
10231         * dbus/dbus-address.c:
10232         * dbus/dbus-dict.c:
10233         * dbus/dbus-marshal.c:
10234         * dbus/dbus-server-debug-pipe.c:
10235         * dbus/dbus-transport-unix.c:
10236         Fix documentation warnings.
10237
10238 2003-03-26  Havoc Pennington  <hp@pobox.com>
10239
10240         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10241         after every test so it's quick and easy to see which leaked, and
10242         so we test multiple dbus_shutdown() calls
10243
10244         * configure.in: change configure.in XML stuff to also support
10245         expat
10246
10247         * config-loader-libxml.c: some hacking
10248
10249         * config-loader-expat.c: some hacking
10250
10251         * config-parser.c: some hacking, plus tests
10252
10253 2003-03-25  Havoc Pennington  <hp@redhat.com>
10254
10255         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10256
10257         * configure.in: add --with-xml option to specify XML library,
10258         right now only libxml is supported.
10259
10260         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10261         nonworking code between home and work, still just stubs
10262
10263 2003-03-24  Havoc Pennington  <hp@redhat.com>
10264
10265         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10266         file
10267
10268         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10269         NULL argument for "message" if the error is a well-known one,
10270         fill in a generic message in this case.
10271
10272         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10273         favor of DBusError
10274
10275         * bus/test.c (bus_test_flush_bus): add
10276
10277         * bus/policy.c (bus_policy_test): test code stub
10278
10279 2003-03-24  Havoc Pennington  <hp@pobox.com>
10280
10281         * bus/connection.c (bus_connections_setup_connection): set up
10282         the "can this user connect" function, but it always returns
10283         TRUE until we have a config file parser so we can have a config
10284         file that allows connections.
10285
10286 2003-03-23  Havoc Pennington  <hp@pobox.com>
10287
10288         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10289         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10290         the mutex, so we can check for proper memory management
10291         and OOM handling.
10292
10293         * dbus/dbus-dataslot.c: remove the mutex from
10294         DBusDataSlotAllocator and lock it manually when using it,
10295         to simplify fitting it into the global slots framework.
10296
10297         * dbus/dbus-threads.c (init_static_locks): rework how we're
10298         handling global locks so they are easily shut down.
10299
10300         * bus/policy.c (bus_policy_append_rule): fix
10301
10302         * bus/test-main.c (main): check for memleaks
10303
10304         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10305         test suite check for memleaks
10306
10307         * dbus/dbus-memory.c: add support in test mode for tracking
10308         number of outstanding blocks
10309
10310 2003-03-23  Havoc Pennington  <hp@pobox.com>
10311
10312         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10313         policies code
10314
10315         * dbus/dbus-hash.h: add ULONG hash keys
10316
10317         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10318         (_dbus_get_group_id): new function
10319
10320 2003-03-20  Havoc Pennington  <hp@redhat.com>
10321
10322         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10323         new function
10324         (dbus_connection_get_unix_user): new function
10325
10326 2003-03-20  Havoc Pennington  <hp@pobox.com>
10327
10328         * bus/connection.c (bus_connection_send_oom_error): assert that
10329         message has a sender
10330         (connection_execute_transaction): ditto
10331         (bus_connection_preallocate_oom_error): fix to set the sender, and
10332         set recipient to the destination service, not the bus driver
10333
10334         * bus/policy.c: hacking
10335
10336         * dbus/dbus-message.c (dbus_message_service_is): new function
10337         (dbus_message_sender_is): new
10338
10339 2003-03-19  Havoc Pennington  <hp@redhat.com>
10340
10341         * bus/policy.c: start sketching code for policy restrictions on
10342         what connections can do.
10343
10344 2003-03-18  Havoc Pennington  <hp@redhat.com>
10345
10346         * doc/TODO: some notes on high-level todo items. Little nitpick
10347         stuff is all in @todo, so no need to add it here.
10348
10349         * doc/config-file.txt: some notes on how config file might look
10350
10351 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10352
10353         * configure.in: 0.6
10354
10355         * NEWS: Update.
10356
10357 2003-03-17  Havoc Pennington  <hp@redhat.com>
10358
10359         * dbus/dbus-internals.h: add gcc attributes so that
10360         our printf-style functions warn on bad arguments to
10361         format
10362
10363         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10364         format bug
10365
10366         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10367         printf format bug
10368
10369 2003-03-17  Havoc Pennington  <hp@redhat.com>
10370
10371         * bus/test-main.c (main): make it print something as it runs
10372         so make check doesn't look stuck
10373
10374         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10375         from CVS, now obsolete
10376
10377 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10378
10379         * bus/dispatch.c: (bus_dispatch):
10380         Refetch the service name since it may have been reallocated
10381         when dbus_message_set_sender was called.
10382
10383         * dbus/dbus-sysdeps.c: (_dbus_accept):
10384         Add address and address length variables and use them to stop
10385         valgrind from complaining.
10386
10387 2003-03-17  Havoc Pennington  <hp@pobox.com>
10388
10389         All tests pass, no memleaks, no valgrind complaints.
10390
10391         * bus/test.c: refcount handler_slot
10392
10393         * bus/connection.c (bus_connections_new): refcount
10394         connection_data_slot
10395
10396         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10397         bytes so that auth scripts pass.
10398
10399         * bus/dispatch.c: init message_handler_slot so it gets allocated
10400         properly
10401
10402         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10403
10404         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10405         dealloc server_pipe_hash when no longer used for benefit of
10406         leak checking
10407
10408         * dbus/dbus-auth.c (process_command): memleak fix
10409
10410         * bus/dispatch.c (check_hello_message): memleak fix
10411
10412 2003-03-16  Havoc Pennington  <hp@pobox.com>
10413
10414         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10415
10416 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10417
10418         * bus/activation.c (bus_activation_activate_service): Append
10419         the pending activation entry to the list of pending activations.
10420
10421 2003-03-16  Havoc Pennington  <hp@pobox.com>
10422
10423         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10424         connections
10425
10426         * dbus/dbus-address.c (create_entry): fix OOM handling when
10427         failing to alloc entry->method
10428
10429 2003-03-16  Havoc Pennington  <hp@pobox.com>
10430
10431         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10432         the watch
10433
10434         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10435         add some missing dbus_set_result
10436
10437         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10438         alloc the DBusMessageHandler
10439
10440         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10441         the transport here, since we call this from the finalizer; it
10442         resulted in a double-finalize.
10443
10444         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10445         where we tried to use transport->connection that was NULL,
10446         happened when transport was disconnected early on due to OOM
10447
10448         * bus/*.c: adapt to handle OOM for watches/timeouts
10449
10450         * dbus/dbus-transport-unix.c: port to handle OOM during
10451         watch handling
10452
10453         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10454         reference to unused bytes instead of a copy
10455
10456         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10457         out of memory
10458
10459         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10460         FALSE on OOM
10461
10462         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10463         of memory
10464
10465 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10466
10467         * doc/dbus-specification.sgml:
10468         Document reply message for ActivateService.
10469
10470 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10471
10472         * bus/activation.c: (bus_pending_activation_entry_free),
10473         (bus_pending_activation_free), (bus_activation_new),
10474         (bus_activation_unref), (bus_activation_service_created),
10475         (bus_activation_activate_service):
10476         * bus/activation.h:
10477         * bus/bus.c: (bus_context_new):
10478         * bus/desktop-file.c: (new_section):
10479         * bus/driver.c: (bus_driver_send_service_deleted),
10480         (bus_driver_handle_activate_service):
10481         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10482         * bus/services.h:
10483         * dbus/dbus-connection.c:
10484         (dbus_connection_send_with_reply_and_block):
10485         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10486         * dbus/dbus-protocol.h:
10487         Make activation work better. Now pending activations will be queued
10488         and the daemon won't try to activate services that are already registered.
10489
10490 2003-03-16  Havoc Pennington  <hp@pobox.com>
10491
10492         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10493         connection data
10494
10495         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10496         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10497
10498 2003-03-16  Havoc Pennington  <hp@pobox.com>
10499
10500         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10501         this. always run the test suite before commit...
10502
10503         * bus/*: adapt to DBusConnection API changes
10504
10505         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10506         requires renaming stuff to avoid dbus_connection_dispatch name
10507         conflict.
10508
10509         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10510         function
10511
10512         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10513         separate from _dbus_message_loader_return_buffer()
10514
10515         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10516         this, because it's now always broken to use; the number of
10517         messages in queue vs. the number still buffered by the message
10518         loader is undefined/meaningless. Should use
10519         dbus_connection_get_dispatch_state().
10520         (dbus_connection_dispatch): rename from
10521         dbus_connection_dispatch_message
10522
10523 2003-03-16  Havoc Pennington  <hp@pobox.com>
10524
10525         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10526         implementation
10527
10528 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10529
10530         * dbus/dbus-connection.c:
10531         (dbus_connection_send_with_reply_and_block):
10532         Decrease connection->n_incoming when removing an entry
10533         from the list.
10534         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10535         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10536         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10537         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10538         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10539         (dbus_dict_get_byte_array):
10540         Handle NULL arrays and strings. Also add support for byte arrays.
10541
10542         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10543         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10544         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10545         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10546         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10547         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10548         * dbus/dbus-marshal.h:
10549         Add support for marshalling and demarshalling empty arrays and strings.
10550
10551         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10552         (dbus_message_append_string_array),
10553         (dbus_message_iter_get_boolean),
10554         (dbus_message_iter_get_boolean_array),
10555         (dbus_message_iter_get_int32_array),
10556         (dbus_message_iter_get_uint32_array),
10557         (dbus_message_iter_get_double_array),
10558         (dbus_message_iter_get_byte_array),
10559         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10560         (check_message_handling):
10561         Add support for getting empty arrays and dicts.
10562
10563         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10564         Don't do any validation at all for now, that's better than just checking
10565         for ASCII.
10566
10567         * test/data/valid-messages/emptiness.message:
10568         New test message with lots of empty arrays.
10569
10570 2003-03-16  Havoc Pennington  <hp@pobox.com>
10571
10572         * dbus/dbus-connection.c
10573         (_dbus_connection_queue_received_message_link): new function that
10574         can't fail due to OOM
10575
10576         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10577         new function pops a message together with a list link
10578         containing it.
10579
10580         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10581         message queuing functions to avoid needing to alloc memory
10582
10583 2003-03-16  Havoc Pennington  <hp@pobox.com>
10584
10585         Oops - test code was only testing failure of around 30 of the
10586         mallocs in the test path, but it turns out there are 500+
10587         mallocs. I believe this was due to misguided linking setup such
10588         that there was one copy of dbus_malloc etc. in the daemon and one
10589         in the shared lib, and only daemon mallocs were tested. In any
10590         case, the test case now tests all 500+ mallocs, and doesn't pass
10591         yet, though there are lots of fixes in this patch.
10592
10593         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10594         this so that it doesn't need to allocate memory, since it
10595         has no way of indicating failure due to OOM (and would be
10596         annoying if it did).
10597
10598         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10599
10600         * bus/Makefile.am: rearrange to create two self-contained
10601         libraries, to avoid having libraries with overlapping symbols.
10602         that was resulting in weirdness, e.g. I'm pretty sure there
10603         were two copies of global static variables.
10604
10605         * dbus/dbus-internals.c: move the malloc debug stuff to
10606         dbus-memory.c
10607
10608         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10609         empty.
10610
10611         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10612
10613         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10614         on failure.
10615
10616         * bus/dispatch.c (bus_dispatch_add_connection): free
10617         message_handler_slot when no longer using it, so
10618         memory leak checkers are happy for the test suite.
10619
10620         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10621
10622         * bus/bus.c (new_connection_callback): disconnect in here if
10623         bus_connections_setup_connection fails.
10624
10625         * bus/connection.c (bus_connections_unref): fix to free the
10626         connections
10627         (bus_connections_setup_connection): if this fails, don't
10628         disconnect the connection, just be sure there are no side
10629         effects.
10630
10631         * dbus/dbus-string.c (undo_alignment): unbreak this
10632
10633         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10634         leaking
10635         (_dbus_auth_new): fix the order in which we free strings
10636         on OOM failure
10637
10638         * bus/connection.c (bus_connection_disconnected): fix to
10639         not send ServiceDeleted multiple times in case of memory
10640         allocation failure
10641
10642         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10643         get the base service name
10644         (dbus_bus_register_client): don't return base service name,
10645         instead store it on the DBusConnection and have an accessor
10646         function for it.
10647         (dbus_bus_register_client): rename dbus_bus_register()
10648
10649         * bus/dispatch.c (check_hello_message): verify that other
10650         connections on the bus also got the correct results, not
10651         just the one sending hello
10652
10653 2003-03-15  Havoc Pennington  <hp@pobox.com>
10654
10655         Make it pass the Hello handling test including all OOM codepaths.
10656         Now to do other messages...
10657
10658         * bus/services.c (bus_service_remove_owner): fix crash when
10659         removing owner from an empty list of owners
10660         (bus_registry_ensure): don't leave service in the list of
10661         a connection's owned services if we fail to put the service
10662         in the hash table.
10663
10664         * bus/connection.c (bus_connection_preallocate_oom_error): set
10665         error flag on the OOM error.
10666
10667         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10668         handle _dbus_transport_set_connection failure
10669
10670         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10671         to create watches up front and simply enable/disable them as
10672         needed.
10673         (unix_connection_set): this can now fail on OOM
10674
10675         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10676         of enabling/disabling a watch or timeout.
10677
10678         * bus/loop.c (bus_loop_iterate): don't touch disabled
10679         watches/timeouts
10680
10681         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10682
10683 2003-03-15  Havoc Pennington  <hp@pobox.com>
10684
10685         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10686         write useful test code, after all that futzing around ;-)
10687
10688         Test does not yet pass because we can't handle OOM in
10689         _dbus_transport_messages_pending (basically,
10690         dbus_connection_preallocate_send() does not prealloc the write
10691         watch). To fix this, I think we need to add new stuff to
10692         set_watch_functions, namely a SetEnabled function so we can alloc
10693         the watch earlier, then enable it later.
10694
10695         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10696         dbus-memory.c to the convenience lib
10697
10698         * bus/test.c: rename some static functions to keep them clearly
10699         distinct from stuff in connection.c. Handle client disconnection.
10700
10701 2003-03-14  Havoc Pennington  <hp@pobox.com>
10702
10703         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10704         transport, tests more of the real codepath. Set up clients
10705         with bus_setup_debug_client.
10706
10707         * bus/test.c (bus_setup_debug_client): function to set up debug
10708         "clients" on the main loop
10709
10710         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10711         support
10712
10713         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10714         server type
10715
10716         * dbus/dbus-server-debug.c: support a debug server based on pipes
10717
10718         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10719         (_dbus_close): new function
10720
10721         * configure.in: check for socketpair
10722
10723 2003-03-14  Havoc Pennington  <hp@redhat.com>
10724
10725         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10726         cheesy hack
10727
10728         * dbus/dbus-transport-debug.c: rework this a good bit to be
10729         less complicated. hopefully still works.
10730
10731         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10732         manually
10733
10734         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10735         after running it
10736
10737         * dbus/dbus-message.c (dbus_message_copy): rename from
10738         dbus_message_new_from_message, fix it up to copy
10739         all the message fields, add test case
10740
10741         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10742         not quite passing yet
10743
10744 2003-03-14  Havoc Pennington  <hp@pobox.com>
10745
10746         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10747         until no work remains" in test code. (the large diff here
10748         is just code movement, no actual changes)
10749
10750         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10751         1, no point waiting around for test code.
10752         (_dbus_server_debug_accept_transport): unref the timeout
10753         after adding it (right?)
10754
10755         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10756
10757 2003-03-13  Havoc Pennington  <hp@redhat.com>
10758
10759         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10760         out of memory
10761
10762         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10763         of memory
10764
10765         * dbus/dbus-connection.h: Make AddWatchFunction and
10766         AddTimeoutFunction return a bool so they can fail on out-of-memory
10767
10768         * bus/bus.c (bus_context_new): set up timeout handlers
10769
10770         * bus/connection.c (bus_connections_setup_connection): set up
10771         timeout handlers
10772
10773         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10774         can fail
10775
10776         * bus/bus.c (bus_context_new): adapt to changes
10777
10778         * bus/connection.c: adapt to changes
10779
10780         * test/watch.c: adapt to DBusWatch changes
10781
10782         * bus/dispatch.c (bus_dispatch_test): started adding this but
10783         didn't finish
10784
10785 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10786
10787         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10788
10789 2003-03-13  Havoc Pennington  <hp@pobox.com>
10790
10791         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10792         set up a test framework as for the library
10793
10794 2003-03-12  Havoc Pennington  <hp@pobox.com>
10795
10796         Throughout: purge global variables, introduce BusActivation,
10797         BusConnections, BusRegistry, etc. objects instead.
10798
10799         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10800         message bus object
10801
10802         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10803         going to redo this a bit differently I think
10804
10805 2003-03-12  Havoc Pennington  <hp@redhat.com>
10806
10807         Mega-patch that gets the message bus daemon initially handling
10808         out-of-memory. Work still needed. Also lots of random
10809         moving stuff to DBusError instead of ResultCode.
10810
10811         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10812
10813         * dbus/dbus-connection.c
10814         (dbus_connection_send_with_reply_and_block): use DBusError
10815
10816         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10817         DBusResultCode
10818
10819         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10820         code here, as the only failure possible is OOM.
10821
10822         * bus/connection.c (bus_connection_disconnect):
10823         rename bus_connection_disconnected as it's a notification only
10824
10825         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10826         "name" on get_args failure, should be done by get_args;
10827         don't disconnect client for bad args, just return an error.
10828         (bus_driver_handle_service_exists): ditto
10829
10830         * bus/services.c (bus_services_list): NULL-terminate returned array
10831
10832         * bus/driver.c (bus_driver_send_service_lost)
10833         (bus_driver_send_service_acquired): send messages from driver to a
10834         specific client to the client's unique name, not to the broadcast
10835         service.
10836
10837         * dbus/dbus-message.c (decode_header_data): reject messages that
10838         contain no name field
10839         (_dbus_message_get_client_serial): rename to
10840         dbus_message_get_serial and make public
10841         (_dbus_message_set_serial): rename from set_client_serial
10842         (_dbus_message_set_reply_serial): make public
10843         (_dbus_message_get_reply_serial): make public
10844
10845         * bus/connection.c (bus_connection_foreach): allow stopping
10846         iteration by returning FALSE from foreach function.
10847
10848         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10849         (dbus_connection_free_preallocated_send)
10850         (dbus_connection_preallocate_send): new API for sending a message
10851         without possibility of malloc failure.
10852         (dbus_connection_send_message): rename to just
10853         dbus_connection_send (and same for whole function family)
10854
10855         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10856
10857         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10858
10859         * bus/activation.c: handle/return errors
10860
10861         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10862
10863         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10864         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10865         (_dbus_result_from_errno): move to this file
10866
10867 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10868
10869         * dbus/dbus-marshal.c:
10870         (_dbus_marshal_set_string):
10871         Take a length argument so we can marshal the correct string
10872         length.
10873
10874         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10875         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10876         (_dbus_marshal_test):
10877         * dbus/dbus-marshal.h:
10878         Add support for marshalling and demarshalling dicts.
10879
10880         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10881         Add support for TYPE DICT.
10882
10883         * dbus/dbus-message.c: (set_string_field):
10884         Adjust header padding.
10885
10886         (dbus_message_append_args_valist), (dbus_message_append_dict),
10887         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10888         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10889         (check_message_handling), (check_have_valid_message):
10890         * dbus/dbus-message.h:
10891         Add functions for setting and getting dicts.
10892
10893         * dbus/dbus-protocol.h:
10894         Add DBUS_TYPE_DICT.
10895
10896         * dbus/dbus.h:
10897         Add dbus-dict.h
10898
10899         * doc/dbus-specification.sgml:
10900         Add information about how dicts are marshalled.
10901
10902         * test/data/invalid-messages/dict-with-nil-value.message:
10903         * test/data/invalid-messages/too-short-dict.message:
10904         * test/data/valid-messages/dict-simple.message:
10905         * test/data/valid-messages/dict.message:
10906         Add sample messages containing dicts.
10907
10908 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
10909
10910         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10911
10912 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10913
10914         * dbus/Makefile.am:
10915         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10916         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10917         (dbus_dict_set_int32), (dbus_dict_set_uint32),
10918         (dbus_dict_set_double), (dbus_dict_set_string),
10919         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10920         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10921         (dbus_dict_set_string_array), (_dbus_dict_test):
10922         * dbus/dbus-dict.h:
10923         Fix according to comments from Havoc.
10924
10925 2003-03-06  Michael Meeks  <michael@server.home>
10926
10927         * configure.in: if we don't have kde-config, disable have_qt.
10928
10929 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10930
10931         * dbus/Makefile.am:
10932         Add dbus-dict.[ch]
10933
10934         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10935         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10936         (dbus_dict_remove), (dbus_dict_get_value_type),
10937         (dbus_dict_get_keys), (dbus_dict_put_boolean),
10938         (dbus_dict_put_int32), (dbus_dict_put_uint32),
10939         (dbus_dict_put_double), (dbus_dict_put_string),
10940         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10941         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10942         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10943         (dbus_dict_get_int32), (dbus_dict_get_uint32),
10944         (dbus_dict_get_double), (dbus_dict_get_string),
10945         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10946         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10947         (dbus_dict_get_string_array), (_dbus_dict_test):
10948         * dbus/dbus-dict.h:
10949         Add DBusDict implementation
10950
10951         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10952         * dbus/dbus-test.h:
10953         Add _dbus_dict_test
10954
10955 2003-03-04  Havoc Pennington  <hp@pobox.com>
10956
10957         * test/data/auth/*: adapt to changes
10958
10959         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10960         USERID_BASE64 and change USERNAME_BASE64 to put in username not
10961         userid
10962
10963         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10964         more stuff from being in a context name, to make the protocol
10965         simpler to deal with
10966
10967         * dbus/dbus-errors.c (dbus_error_has_name): new function
10968         (dbus_error_is_set): new function
10969
10970         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10971         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10972
10973         * dbus/dbus-connection.c (dbus_connection_flush): also read
10974         messages during a flush operation
10975
10976         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10977
10978 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10979
10980         * configure.in: Check for gethostbyname on Solaris.
10981
10982         * dbus/dbus-transport.c: (_dbus_transport_open):
10983         Remove duplicate "tcp" entry.
10984
10985         * doc/dbus-specification.sgml:
10986         Clarify some things.
10987
10988 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10989
10990         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10991         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10992         (_dbus_keyring_test):
10993         * dbus/dbus-md5.c: (_dbus_md5_compute):
10994         * dbus/dbus-sha.c: (_dbus_sha_compute):
10995         Plug memory leaks.
10996
10997 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10998
10999         * README: Add some things.
11000
11001 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11002
11003         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11004         after case DBUS_TYPE_BOOELAN.
11005
11006 2003-03-02  Havoc Pennington  <hp@pobox.com>
11007
11008         * test/break-loader.c (randomly_set_extreme_ints): add test that
11009         sets really huge and small integers
11010
11011         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11012         that length of boolean array fits in the string, and that
11013         string has room for boolean value in single-bool case.
11014
11015         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11016         optional value to "ALIGN" command which is what to fill the
11017         alignment with.
11018
11019         * test/data/valid-messages/no-padding.message: add regression
11020         test for the message padding problem
11021
11022 2003-03-02  Havoc Pennington  <hp@pobox.com>
11023
11024         * dbus/dbus-message.c (decode_header_data): fix to always init
11025         message_padding, from Benjamin Dauvergne
11026
11027 2003-03-02  Havoc Pennington  <hp@pobox.com>
11028
11029         * configure.in: 0.5
11030
11031         * NEWS: Update.
11032
11033 2003-03-01  Joe Shaw  <joe@assbarn.com>
11034
11035         * configure.in: Check for "struct cmsgcred" and try to access its
11036         members for BSD-like unices.
11037
11038         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11039         _dbus_read_credentials_unix_socket().
11040         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11041         read() for reading the credential byte off the unix socket.  Use
11042         struct cmsgcred on systems that support it.
11043
11044 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11045
11046         * glib/Makefile.am:
11047         * configure.in:
11048         Make gthreads-2.0 dependency optional. Don't build thread test if
11049         its not found.
11050
11051 2003-02-27  Havoc Pennington  <hp@pobox.com>
11052
11053         * dbus/dbus-connection.c
11054         (dbus_connection_send_message_with_reply_and_block): fix doh!
11055         doh! doh! bug that resulted in never removing a reply from the
11056         queue, no wonder we called get_reply_serial so much ;-)
11057
11058         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11059         and client serial instead of demarshaling them every time
11060
11061 2003-02-27  Havoc Pennington  <hp@pobox.com>
11062
11063         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11064         more inlined, using dbus-string-private.h, speeds things up
11065         substantially
11066
11067         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11068         when freeing the string
11069         (_dbus_string_steal_data): fix for align offset
11070         (undo_alignment): new function
11071
11072 2003-02-26  Havoc Pennington  <hp@redhat.com>
11073
11074         All kinds of audit fixes from Owen, plus initial attempt to
11075         handle unaligned memory returned from malloc.
11076
11077         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11078         leave room for align_offset and nul byte
11079         (fixup_alignment): function to track an align_offset and
11080         ensure real->str is aligned
11081         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11082         to allow a nul byte plus align offset
11083         (_dbus_string_lock): fix overflow issue
11084         (_dbus_string_init_const_len): add assertions on sanity of len,
11085         assign allocated to be ALLOCATION_PADDING larger than len
11086         (set_length): fixup the overflow handling
11087         (_dbus_string_get_data_len): fix overflow in assertion
11088         (open_gap): detect overflow in size of gap to be opened
11089         (_dbus_string_lengthen): add overflow check
11090         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11091         (_dbus_string_append): add overflow check
11092         (_dbus_string_append_unichar): overflow
11093         (_dbus_string_delete): fix overflow in assertion
11094         (_dbus_string_copy_len): overflow in assertion
11095         (_dbus_string_replace_len): overflows in assertions
11096         (_dbus_string_find): change to implement in terms of
11097         _dbus_string_find_to
11098         (_dbus_string_find_to): assorted fixage
11099         (_dbus_string_equal_c_str): assert c_str != NULL,
11100         fix logic so the function works
11101         (_dbus_string_ends_with_c_str): fix overflow thingy
11102         (_dbus_string_base64_encode): overflow fix
11103         (_dbus_string_validate_ascii): overflow
11104         (_dbus_string_validate_nul): overflow
11105
11106 2003-02-26  Havoc Pennington  <hp@redhat.com>
11107
11108         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11109
11110 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11111
11112         * configure.in:
11113         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11114
11115         * dbus/dbus-connection.c:
11116         * dbus/dbus-connection.h:
11117         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11118         Add dbus_connection_set_wakeup_main_function and use it when queueing
11119         incoming and outgoing messages.
11120
11121
11122         * dbus/dbus-dataslot.c:
11123         Threadsafe usage of DBusDataSlotAllocator
11124
11125         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11126         dbus_new can fail.
11127
11128         * dbus/dbus-server-unix.c:
11129         Add todo comment
11130
11131         * glib/dbus-gmain.c:
11132         Implement the new wakeup functions for glib.
11133
11134         * glib/Makefile.am:
11135         * glib/test-thread-client.c:
11136         * glib/test-thread-server.c:
11137         * glib/test-thread.h:
11138         Initial cut at some thread test code. Not really done yet.
11139
11140 2003-02-26  Havoc Pennington  <hp@pobox.com>
11141
11142         * dbus/dbus-connection.c
11143         (dbus_connection_send_message_with_reply_and_block): fix crash
11144         where we ref'd the outgoing message instead of the returned reply
11145
11146         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11147         at the end of this function, so if we didn't need to read for
11148         authentication, we reinstall it for receiving messages
11149
11150         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11151         a NULL sender for peer-to-peer case
11152
11153         * dbus/dbus-transport-unix.c (check_read_watch): handle
11154         !authenticated case correctly
11155
11156         * glib/dbus-gmain.c: add support for DBusServer
11157
11158         * dbus/dbus-server.c: add data slot support
11159
11160         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11161         return values and handle errors
11162
11163         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11164         DBusConnection
11165
11166         * Doxyfile.in (INPUT): add glib subdir
11167
11168         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11169         setup_with_g_main instead of hookup_with_g_main; write docs
11170
11171 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11172
11173         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11174         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11175         * dbus/dbus-message.c: (dbus_message_append_boolean),
11176         (dbus_message_append_boolean_array),
11177         (dbus_message_get_args_valist), (_dbus_message_test):
11178         * dbus/dbus-message.h:
11179         * doc/dbus-specification.sgml:
11180         Various fixes as pointed out by Havoc.
11181
11182         * test/data/invalid-messages/bad-boolean-array.message:
11183         * test/data/invalid-messages/bad-boolean.message:
11184         Add invalid boolean value test cases.
11185
11186 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11187
11188         * dbus/dbus-internals.c: (_dbus_type_to_string):
11189         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11190         (_dbus_marshal_validate_arg):
11191         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11192         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11193         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11194         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11195         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11196         (dbus_message_iter_get_double),
11197         (dbus_message_iter_get_boolean_array), (message_iter_test):
11198         * dbus/dbus-message.h:
11199         * dbus/dbus-protocol.h:
11200         * doc/dbus-specification.sgml:
11201         * test/data/valid-messages/lots-of-arguments.message:
11202         Add support for boolean and boolean array types.
11203
11204 2003-02-23  Havoc Pennington  <hp@pobox.com>
11205
11206         * dbus/dbus-keyring.c: finish most of this implementation and
11207         simple unit test
11208
11209         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11210         these barf if the error isn't cleared to NULL
11211
11212         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11213         (_dbus_create_directory): new function
11214
11215         * dbus/dbus-errors.c (dbus_set_error): fix warning
11216
11217         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11218         (_dbus_string_hex_decode): new function
11219         (test_hex_roundtrip): test code
11220
11221         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11222
11223         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11224
11225         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11226         the save-to-temp/rename trick to atomically write the new file
11227         (_dbus_string_parse_uint): new function
11228
11229 2003-02-22  Havoc Pennington  <hp@pobox.com>
11230
11231         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11232
11233 2003-02-22  Havoc Pennington  <hp@pobox.com>
11234
11235         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11236         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11237
11238         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11239
11240         * dbus/test/data/sha-1: add US government test suite for SHA-1
11241
11242 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11243
11244         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11245         Make string arrays NULL-terminated.
11246
11247         * dbus/dbus-memory.c: (dbus_free_string_array):
11248         * dbus/dbus-memory.h:
11249         New function for freeing NULL-terminated string arrays.
11250
11251         * dbus/dbus-message-builder.c: (append_quoted_string),
11252         (_dbus_message_data_load):
11253         Add support for array types.
11254
11255         * dbus/dbus-message.c: (check_message_handling):
11256         Add more types as test cases.
11257
11258         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11259         (_dbus_string_parse_double):
11260         Add the start offset to the end offset.
11261
11262         * test/data/valid-messages/lots-of-arguments.message:
11263         New test message with lots of arguments.
11264
11265 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11266
11267         * dbus/dbus-message.c: (dbus_message_append_nil),
11268         (dbus_message_append_int32), (dbus_message_append_uint32),
11269         (dbus_message_append_double), (dbus_message_append_string),
11270         (dbus_message_append_int32_array),
11271         (dbus_message_append_uint32_array),
11272         (dbus_message_append_double_array),
11273         (dbus_message_append_byte_array),
11274         (dbus_message_append_string_array):
11275         Fix all out-of-memory handling in these functions.
11276
11277 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11278
11279         * dbus/dbus-message.c: (dbus_message_append_nil):
11280         Fix a silly.
11281
11282 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11283
11284         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11285         (dbus_message_append_nil), (dbus_message_append_int32_array),
11286         (dbus_message_append_uint32_array),
11287         (dbus_message_append_double_array),
11288         (dbus_message_append_byte_array),
11289         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11290         (dbus_message_iter_get_int32_array),
11291         (dbus_message_iter_get_uint32_array),
11292         (dbus_message_iter_get_double_array),
11293         (dbus_message_iter_get_byte_array),
11294         (dbus_message_iter_get_string_array):
11295
11296         * dbus/dbus-message.h:
11297         Add functions for appending and getting arrays.
11298
11299 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11300
11301         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11302         element size at least 8 bytes, fixes mempool tests on
11303         64-bit machines.
11304
11305 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11306
11307         * dbus/dbus-transport-unix.c (unix_do_iteration):
11308         Unlock the connection mutex during a blocking select call.
11309         Add todo about how we need a way to wake up the select.
11310
11311         * dbus/dbus-connection-internal.h:
11312         * dbus/dbus-connection.c:
11313         Add _dbus_connection_lock and _dbus_connection_unlock.
11314
11315 2003-02-19  Havoc Pennington  <hp@pobox.com>
11316
11317         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11318         Doxyfile.in, not Doxyfile
11319
11320         * dbus/dbus-keyring.c: do some hacking on this
11321
11322         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11323
11324         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11325         dbus_error_init
11326         (dbus_set_error): remove dbus_error_init, check for message ==
11327         NULL *before* we sprintf into it, and add @todo about including
11328         system headers in this file
11329
11330         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11331
11332         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11333
11334         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11335         get various bits of user information based on either username
11336         or user ID
11337         (_dbus_homedir_from_username): new function
11338
11339 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11340
11341         * configure.in:
11342         Add check for nonposix getpwnam_r
11343
11344         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11345         Align the pool element size to a sizeof (void *) boundary.
11346
11347         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11348         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11349         General Solaris fixes.
11350
11351         * test/data/valid-messages/simplest-manual.message:
11352         Explicitly state that we want little-endian packing.
11353
11354 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11355
11356         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11357
11358         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11359         Added to create a transport connecting using a tcp/ip socket.
11360
11361         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11362         to a tcp socket at given host and port.
11363         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11364         hostname and port.
11365
11366         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11367
11368         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11369         Added to create a server listening on a TCP/IP socket.
11370
11371 2003-02-19  Havoc Pennington  <hp@pobox.com>
11372
11373         Throughout: mop up all the Doxygen warnings and undocumented
11374         stuff.
11375
11376         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11377         to search any paths.
11378
11379         * dbus/dbus-threads.c: move global mutex initializers to
11380         dbus-internals.h, multiple prototypes was confusing doxygen
11381         besides being kind of ugly
11382
11383         * Doxyfile (PREDEFINED): have Doxygen define
11384         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11385         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11386         (do not abuse the feature! it's for stuff like the autogenerated
11387         macros in dbus-md5.c, not just for things you don't feel like
11388         documenting...)
11389
11390 2003-02-18  Havoc Pennington  <hp@pobox.com>
11391
11392         * dbus/dbus-string.c (_dbus_string_zero): new function
11393
11394         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11395         wrap it in some dbus-friendly API
11396
11397         * dbus/dbus-types.h: add 16-bit types
11398
11399 2003-02-18  Joe Shaw  <joe@assbarn.com>
11400
11401         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11402         credentials from our currently running process.
11403         (get_word): Fix a buglet where we were copying the entire length
11404         instead of relative to our position.
11405
11406         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11407         keys on the stack... it's 640k of data.
11408
11409         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11410         read the credentials byte off the socket, even if we don't have
11411         SO_PEERCRED.
11412         (_dbus_poll): Implement poll() using select() for systems which
11413         don't have it.
11414
11415         * glib/test-dbus-glib.c (main): Print out an error if no
11416         parameters are given.
11417
11418         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11419         can fallback to a secondary auth mechanism if the first fails.
11420
11421 2003-02-18  Havoc Pennington  <hp@pobox.com>
11422
11423         * AUTHORS: add Alex
11424
11425 2003-02-17  Havoc Pennington  <hp@pobox.com>
11426
11427         * doc/dbus-specification.sgml: lots of cosmetic
11428         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11429         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11430         s/server/bus/ (except in authentication section). Add a section
11431         "Message Bus Message Routing"
11432
11433 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11434
11435         Release 0.4
11436
11437         * NEWS: Update
11438
11439 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11440
11441         * doc/dbus-specification.sgml:
11442         Specification updates.
11443
11444 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11445
11446         * bus/activation.c: (bus_activation_init), (child_setup),
11447         (bus_activation_activate_service):
11448         * bus/activation.h:
11449         * bus/main.c: (main):
11450         Set DBUS_ADDRESS environment variable.
11451
11452         * dbus/dbus-errors.c: (dbus_set_error):
11453         Don't use va_copy since that's a C99 feature.
11454
11455         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11456         (_dbus_spawn_async):
11457         * dbus/dbus-sysdeps.h:
11458         Add child_setup_func to _dbus_spawn_async.
11459
11460         * doc/dbus-specification.sgml:
11461         Update specification.
11462
11463         * test/spawn-test.c: (setup_func), (main):
11464         Fix test.
11465
11466 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11467
11468         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11469         Added todo.
11470
11471 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11472
11473         * doc/.cvsignore:
11474         * doc/Makefile.am:
11475         * doc/dbus-test-plan.sgml:
11476         Add test plan document.
11477
11478         * test/Makefile.am:
11479         Fix distcheck.
11480
11481 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11482
11483         * dbus/dbus-message.c: (decode_header_data),
11484         (_dbus_message_loader_return_buffer):
11485         Set the header padding amount when loading a message.
11486
11487 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11488
11489         * bus/dispatch.c: (send_one_message):
11490         Only send broadcast messages to registered connections.
11491
11492         * dbus/dbus-message.c: (dbus_message_name_is):
11493         * dbus/dbus-message.h:
11494         New convenience function.
11495
11496         * dbus/dbus-transport-debug.c: (do_reading):
11497         Only dispatch one message per run.
11498
11499         * test/Makefile.am:
11500         * test/bus-test.c: (new_connection_callback), (die),
11501         (test_hello_client1_handler), (test_hello_client2_handler),
11502         (test_hello_replies), (main):
11503
11504         * test/bus-test-loop.[ch]:
11505         Add these.
11506
11507 2003-02-16  Havoc Pennington  <hp@pobox.com>
11508
11509         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11510         backward conditional
11511
11512 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11513
11514         * dbus/dbus-connection.c:
11515         Implement sent_message_with_reply. (with_reply_and block is still
11516         busted).
11517         Made dispatch_message not lose message if OOM.
11518
11519         * dbus/dbus-errors.h:
11520         Add NoReply error (for reply timeouts).
11521
11522 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11523
11524         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11525         Actually free keys and values when destroying hashtable.
11526
11527 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11528
11529         * dbus/dbus-auth.c: (client_try_next_mechanism):
11530         Plug a leak.
11531
11532         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11533         Return TRUE if there's no thread implementation around.
11534
11535         * glib/dbus-gmain.c: (free_source),
11536         (dbus_connection_hookup_with_g_main):
11537         Make sure to remove the GSource when the connection is finalized.
11538
11539 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11540
11541         * bus/dispatch.c: (bus_dispatch_message_handler):
11542         * dbus/dbus-errors.h:
11543         Return an error if someone tries to send a message to a service
11544         that doesn't exist.
11545
11546 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11547
11548         * bus/activation.c: (load_directory), (bus_activation_init),
11549         (bus_activation_activate_service):
11550         * bus/activation.h:
11551         * bus/driver.c:
11552         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11553         More work on the activation handling.
11554
11555         * dbus/dbus-errors.h:
11556         Add some error messages
11557
11558         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11559         * dbus/dbus-message.h:
11560         New function that creates an error message.
11561
11562         * dbus/dbus-protocol.h:
11563         Add ACTIVATE_SERVER message.
11564
11565         * dbus/dbus-server-unix.c: (unix_handle_watch),
11566         (_dbus_server_new_for_domain_socket):
11567         Call _dbus_fd_set_close_on_exec.
11568
11569         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11570         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11571         (_dbus_fd_set_close_on_exec):
11572         * dbus/dbus-sysdeps.h:
11573         Add _dbus_fd_set_close_on exec function. Also add function that checks
11574         that all open fds are set to close-on-exec and warns otherwise.
11575
11576         * dbus/dbus-transport-unix.c:
11577         (_dbus_transport_new_for_domain_socket):
11578         Call _dbus_fd_set_close_on_exec.
11579
11580 2003-02-16  Havoc Pennington  <hp@pobox.com>
11581
11582         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11583         allow people to avoid setting SIGPIPE to SIG_IGN
11584         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11585         we've been asked not to
11586
11587 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11588
11589         * dbus/dbus-list.c: (_dbus_list_append_link),
11590         (_dbus_list_prepend_link):
11591         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11592         (dbus_realloc):
11593         Warning fixes.
11594
11595 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11596
11597         * bus/Makefile.am:
11598         * bus/activation.c: (bus_activation_entry_free),
11599         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11600         * bus/activation.h:
11601         * bus/main.c: (main):
11602         Add simple activation support, doesn't work yet though.
11603
11604 2003-02-15   Zack Rusin  <zack@kde.org>
11605
11606         * qt/dbus-qthread.cpp:  small casting fix
11607
11608 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11609
11610         * dbus/dbus-errors.c: (dbus_set_error):
11611         * dbus/dbus-errors.h:
11612         Add a few errors and make dbus_set_error void.
11613
11614         * dbus/dbus-sysdeps.c:
11615         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11616         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11617         * dbus/dbus-sysdeps.h:
11618         Add _dbus_spawn_async.
11619
11620         * test/spawn-test.c: (main):
11621         Test for _dbus_spawn_async.
11622
11623 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11624
11625         * dbus/dbus-internals.h:
11626         Fix build without tests.
11627
11628         * dbus/dbus-list.c: (alloc_link):
11629         Fix a segfault when a malloc fails.
11630
11631         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11632         (dbus_malloc0), (dbus_realloc):
11633         Add support for malloc debugging.
11634
11635 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11636
11637         * dbus/dbus-threads.c:
11638         * dbus/dbus-threads.h:
11639         Add condvars. Remove static mutext from API.
11640         Implement static mutexes by initializing them from threads_init.
11641
11642         * glib/dbus-gthread.c:
11643         * qt/dbus-qthread.cpp:
11644         Update with the thread api changes.
11645
11646
11647         * dbus/dbus-list.c:
11648         * dbus/dbus-list.h:
11649         Turn StaticMutex into normal mutex + init function.
11650         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11651         _dbus_list_append_link, _dbus_list_prepend_link
11652
11653
11654         * dbus/dbus-sysdeps.c:
11655         * dbus/dbus-sysdeps.h:
11656         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11657         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11658
11659         * dbus/dbus-protocol.h:
11660         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11661
11662         * dbus/dbus-message.c:
11663         Make ref/unref atomic.
11664         Fix some docs.
11665
11666         * dbus/dbus-connection-internal.h:
11667         * dbus/dbus-connection.c:
11668         * dbus/dbus-connection.h:
11669         Make threadsafe.
11670         Change _peek to _borrow,_return & _steal_borrowed.
11671         Change disconnect callback to event.
11672         Make dbus_connection_dispatch_messages reentrant.
11673
11674         * dbus/dbus-transport.c:
11675         Don't ref the connection on calls to the transport
11676         implementation.
11677
11678         * dbus/dbus-message-handler.c:
11679         Make threadsafe.
11680
11681         * glib/dbus-gmain.c:
11682         Don't use peek_message anymore
11683
11684         * test/Makefile.am:
11685         * test/debug-thread.c:
11686         * test/debug-thread.h:
11687         Simple thread implementation that asserts() on deadlocks in
11688         single-threaded code.
11689
11690         * test/bus-test.c:
11691         (main) Call debug_threads_init.
11692
11693         * test/watch.c:
11694         Use disconnect message instead of disconnect callback.
11695
11696         * bus/connection.c:
11697         * bus/connection.h:
11698         Don't call dbus_connection_set_disconnect_function. Instead export
11699         bus_connection_disconnect.
11700
11701         * bus/dispatch.c:
11702         Call bus_connection_disconnect when we get a disconnected message.
11703
11704 2003-02-15  Havoc Pennington  <hp@pobox.com>
11705
11706         * dbus/dbus-message.c (dbus_message_new): fool around with the
11707         docs
11708
11709 2003-02-14  Havoc Pennington  <hp@pobox.com>
11710
11711         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11712
11713         * dbus/dbus-memory.c: fail if the debug functions indicate we
11714         should
11715
11716         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11717         (_dbus_decrement_fail_alloc_counter): debug functions to
11718         simulate memory allocation failures
11719
11720 2003-02-14  Havoc Pennington  <hp@pobox.com>
11721
11722         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11723         to DBusError
11724
11725 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11726
11727         * bus/driver.c: (bus_driver_handle_hello):
11728         * bus/driver.h:
11729         * bus/services.c: (bus_service_lookup):
11730         Reorder message sending so we get a more sane order.
11731
11732         * test/bus-test.c: (message_handler):
11733         Fix tyop.
11734
11735 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11736
11737         * bus/driver.c: (bus_driver_send_service_deleted),
11738         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11739         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11740         (bus_driver_send_welcome_message),
11741         (bus_driver_handle_list_services),
11742         (bus_driver_handle_acquire_service),
11743         (bus_driver_handle_service_exists):
11744         * dbus/dbus-bus.c: (dbus_bus_register_client),
11745         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11746         * dbus/dbus-errors.c: (dbus_result_to_string):
11747         * dbus/dbus-errors.h:
11748         * dbus/dbus-message.c: (dbus_message_append_args),
11749         (dbus_message_append_args_valist), (dbus_message_get_args),
11750         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11751         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11752         (dbus_message_iter_get_byte_array),
11753         (dbus_message_iter_get_string_array), (message_iter_test),
11754         (check_message_handling), (_dbus_message_test):
11755         * dbus/dbus-message.h:
11756         * test/bus-test.c: (main):
11757         Change fields to arguments in messages, so that they won't be
11758         confused with header fields.
11759
11760         * glib/test-dbus-glib.c: (main):
11761         Remove append_fields from hello message.
11762
11763 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11764
11765         * dbus/dbus-errors.c:
11766         * dbus/dbus-message.c:
11767         * dbus/dbus-string.c:
11768         Documentation fixes.
11769
11770 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11771
11772         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11773         (remove_timeout):
11774         Implement support for timeouts in dbus-glib.
11775
11776 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11777
11778         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11779         * dbus/dbus-message.c: (process_test_subdir):
11780         * test/break-loader.c: (find_breaks_based_on):
11781         Plug some memory leaks.
11782
11783 2003-02-13  Richard Hult  <rhult@codefactory.se>
11784
11785         * bus/main.c: Fix build.
11786
11787         * dbus/dbus-errors.h:
11788         * dbus/dbus-errors.c: Fix copyright for Anders.
11789
11790 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11791
11792         * bus/Makefile.am:
11793         Add utils.[ch]
11794
11795         * bus/connection.c: (bus_connection_foreach):
11796         Fix a warning.
11797
11798         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11799         (unescape_string), (new_section), (parse_section_start),
11800         (parse_key_value), (report_error), (bus_desktop_file_load),
11801         (bus_desktop_file_get_string):
11802         * bus/desktop-file.h:
11803         Use DBusError for error reporting.
11804
11805         * bus/dispatch.c: (send_one_message),
11806         (bus_dispatch_message_handler):
11807         * bus/driver.c: (bus_driver_send_service_deleted),
11808         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11809         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11810         (bus_driver_send_welcome_message),
11811         (bus_driver_handle_list_services),
11812         (bus_driver_handle_acquire_service),
11813         (bus_driver_handle_service_exists):
11814         * bus/loop.c: (bus_loop_run):
11815         * bus/main.c:
11816         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11817
11818         * bus/utils.c: (bus_wait_for_memory):
11819         * bus/utils.h:
11820         New files with general utility functions.
11821
11822         * dbus/dbus-internals.h:
11823         Remove _DBUS_HANDLE_OOM.
11824
11825 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11826
11827         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11828         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11829         * dbus/dbus-errors.h:
11830         Add DBusError structure.
11831
11832 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11833
11834         * test/data/valid-messages/standard-acquire-service.message:
11835         * test/data/valid-messages/standard-hello.message:
11836         * test/data/valid-messages/standard-list-services.message:
11837         * test/data/valid-messages/standard-service-exists.message:
11838         Add some standard messages.
11839
11840 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11841
11842         * bus/driver.c: (bus_driver_send_welcome_message),
11843         (bus_driver_handle_list_services),
11844         (bus_driver_handle_acquire_service),
11845         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11846         Update for API changes in libdbus.
11847
11848         * dbus/dbus-message.c: (dbus_message_new_reply):
11849         * dbus/dbus-message.h:
11850         Remove the name argument. The spec states that replies shouldn't
11851         have a name.
11852
11853 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11854
11855         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11856         (report_error), (bus_desktop_file_load), (lookup_section),
11857         (lookup_line), (bus_desktop_file_get_raw),
11858         (bus_desktop_file_get_string):
11859         * bus/desktop-file.h:
11860         Some fixes, and new functions for getting a key value from a section.
11861
11862 2003-02-13  Havoc Pennington  <hp@pobox.com>
11863
11864         * test/data/auth/fail-after-n-attempts.auth-script: new test
11865
11866         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11867         reject the client.
11868
11869 2003-02-13  Havoc Pennington  <hp@pobox.com>
11870
11871         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11872         dbus_credentials_match were backward
11873
11874         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11875         NO_CREDENTIALS and ROOT_CREDENTIALS
11876
11877         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11878         into here. Never process more commands after we've reached an
11879         end state; store further data as unused bytes.
11880
11881         * test/data/auth/*: add more auth tests
11882
11883         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11884         command to match exact string and EXPECT_UNUSED to match unused
11885         bytes
11886
11887         * test/Makefile.am (dist-hook): fix to dist all the test stuff
11888
11889 2003-02-12  Havoc Pennington  <hp@pobox.com>
11890
11891         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11892         \r off of popped lines
11893
11894         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11895         scripts
11896
11897         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11898         SEND, append \r\n
11899
11900 2003-02-12  Havoc Pennington  <hp@pobox.com>
11901
11902         * dbus/Makefile.am: remove break-loader from the build, since it
11903         moved.
11904
11905         * configure.in: add --enable-gcov to turn on coverage profiling
11906         flags and disable optimization
11907
11908 2003-02-10  Havoc Pennington  <hp@pobox.com>
11909
11910         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11911         initial cut at test framework for DBusAuth from laptop.
11912         Doesn't quite work yet but it compiles and I need to get
11913         it off the 266mhz laptop. ;-)
11914
11915         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11916         fix a memleak in error case
11917
11918 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
11919
11920         * bus/Makefile.am:
11921         * bus/desktop-file.c:
11922         * bus/desktop-file.h:
11923         Add a desktop file parser.
11924
11925 2003-02-11  Zack Rusin  <zack@kde.org>
11926
11927         * qt/message.[h|cpp]: sample implementation
11928         of the KDE wrapper for DBusMessage
11929
11930 2003-02-09  Zack Rusin  <zack@kde.org>
11931
11932         * test/bus-test.c: make_it_compile
11933         * doc/dbus-specification.sgml: minimal semantic fix
11934
11935 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11936
11937         Release 0.3
11938
11939         * NEWS: Update
11940
11941 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11942
11943         * dbus/Makefile.am:
11944         * dbus/dbus-break-loader.c:
11945         * test/Makefile.am:
11946         * test/break-loader.c:
11947         Move dbus-break-loader to test/ and rename it to break-loader.
11948
11949 2003-02-02  Havoc Pennington  <hp@pobox.com>
11950
11951         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11952         for code to manage cookies in your home directory
11953
11954         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11955
11956         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11957         to authenticate, then disconnect the client.
11958
11959 2003-02-03  Alexander Larsson  <alexl@redhat.com>
11960
11961         * dbus/dbus-message.c (dbus_message_append_fields):
11962         Correct docs.
11963
11964 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11965
11966         * doc/dbus-specification.sgml:
11967         Update address format section.
11968
11969 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11970
11971         * test/Makefile.am:
11972         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11973         (message_handler), (new_connection_callback), (loop_quit),
11974         (loop_run), (main):
11975         Add bus test.
11976
11977 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11978
11979         * bus/driver.c: (bus_driver_handle_service_exists):
11980         Simplify the code a bit.
11981
11982         * dbus/dbus-bus.c: (dbus_bus_service_exists):
11983         Fix a silly.
11984
11985 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11986
11987         * bus/Makefile.am:
11988         Add libdbus-daemon.la and link to it.
11989
11990 2003-02-01  James Willcox  <jwillcox@gnome.org>
11991
11992         * bus/driver.c: (bus_driver_handle_own_service):
11993         Actually include the service reply code in the message.
11994
11995 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11996
11997         * bus/driver.c: (bus_driver_handle_service_exists):
11998         Don't unref the incoming message.
11999
12000 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12001
12002         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12003
12004 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12005
12006         * dbus/dbus-server.c: (dbus_server_listen):
12007         * dbus/dbus-transport.c: (_dbus_transport_open):
12008         ifdef out the calls to the debug transport and server.
12009
12010 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12011
12012         * dbus/dbus-watch.c (dbus_watch_get_flags):
12013         Add note in the docs that ERROR or HANGUP won't be returned
12014         and are assumed always on.
12015
12016         * glib/dbus-gmain.c (add_watch):
12017         Always add IO_ERR | IO_HUP
12018
12019         * dbus/dbus-message.h:
12020         Add semicolon after dbus_message_iter_get_string_array().
12021         Makes qt code build again
12022
12023 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12024
12025         * bus/driver.c: (create_unique_client_name),
12026         (bus_driver_handle_hello):
12027         Don't take a name, just use a numeric id to identify
12028         each client.
12029
12030         * dbus/Makefile.am:
12031         * dbus/dbus-bus.c: (dbus_bus_register_client),
12032         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12033         * dbus/dbus-bus.h:
12034         Add new convenience functions for communicating with the bus.
12035
12036         * dbus/dbus-message.h:
12037
12038         * dbus/dbus-protocol.h:
12039         Fix a typo.
12040
12041 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12042
12043         * dbus/dbus-message.c (dbus_message_append_fields):
12044         Add some more doc comments.
12045
12046 2003-02-01  Havoc Pennington  <hp@pobox.com>
12047
12048         * dbus/dbus-break-loader.c (randomly_modify_length): change
12049         a 4-byte value in the message as if it were a length
12050
12051         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12052         execute bit on saved files
12053
12054 2003-02-01  Havoc Pennington  <hp@pobox.com>
12055
12056         * dbus/dbus-break-loader.c (main): new program to find messages
12057         that break the loader.
12058
12059         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12060         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12061
12062         * dbus/dbus-string.c (_dbus_string_set_byte): new
12063
12064 2003-01-31  Havoc Pennington  <hp@pobox.com>
12065
12066         * dbus/dbus-message.c: refactor the test code to be more general,
12067         in preparation for writing a "randomly permute test cases to
12068         try to break the loader" program.
12069
12070 2003-01-31  Havoc Pennington  <hp@pobox.com>
12071
12072         * doc/dbus-specification.sgml: work on the specification
12073
12074         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12075         the protocol version of the message.
12076
12077         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12078         no longer specifies that.
12079         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12080         1/2/3/4)
12081
12082         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12083         "break" for DBUS_TYPE_NIL, remove @todo
12084
12085 2003-01-31  Havoc Pennington  <hp@pobox.com>
12086
12087         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12088         just set_is_error/get_is_error as this is a commonly-used
12089         function, and write docs.
12090
12091 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12092
12093         * dbus/dbus-address.c: (dbus_address_entry_free):
12094         Free key and value lists.
12095
12096         * dbus/dbus-internals.c: (_dbus_type_to_string):
12097         Add the types we didn't have.
12098
12099         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12100         (_dbus_marshal_validate_arg):
12101         Add NIL types.
12102
12103         * dbus/dbus-message.c: (dbus_message_set_sender):
12104         Remove todo about being able to set sender to NULL.
12105
12106         (dbus_message_set_is_error_reply),
12107         (dbus_message_get_is_error_reply):
12108         * dbus/dbus-message.h:
12109         New functions.
12110
12111         * dbus/dbus-protocol.h:
12112         Add error reply flag.
12113
12114         * test/data/valid-messages/opposite-endian.message:
12115         Add NIL type to test.
12116
12117 2003-01-31  Havoc Pennington  <hp@pobox.com>
12118
12119         * doc/dbus-specification.sgml: fully specify the header.  Add
12120         flags and major protocol version, and change header/body len to
12121         unsigned.
12122
12123         * dbus/dbus-message-builder.c (append_saved_length): append length
12124         as uint32
12125
12126         * dbus/dbus-message.c (dbus_message_create_header): change header
12127         length and body length to unsigned. Add the new fields from the
12128         spec
12129         (_dbus_message_loader_return_buffer): unsigned header/body len
12130
12131 2003-01-30  Havoc Pennington  <hp@pobox.com>
12132
12133         * dbus/dbus-auth.c: rework to use only REJECTED, no
12134         MECHANISMS
12135
12136         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12137         use REJECTED, suggested by Mark McLoughlin
12138
12139 2003-01-30  Havoc Pennington  <hp@pobox.com>
12140
12141         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12142         a better way to report errors here. e.g.  "unix address lacks
12143         path" or something. also "no such file" when the path doesn't
12144         exist, etc.
12145
12146         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12147         leaking list nodes
12148         (dbus_parse_address): add @todo about documenting address format,
12149         and allowing , and ; to be escaped
12150
12151 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12152
12153         * dbus/Makefile.am:
12154         Add dbus-address.[ch]
12155
12156         * dbus/dbus-address.c: (dbus_address_entry_free),
12157         (dbus_address_entries_free), (create_entry),
12158         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12159         (dbus_parse_address), (_dbus_address_test):
12160         * dbus/dbus-address.h:
12161         New files for dealing with address parsing.
12162
12163         * dbus/dbus-connection.c:
12164         Document timeout functions.
12165
12166         * dbus/dbus-message.c:
12167         Document dbus_message_new_from_message.
12168
12169         * dbus/dbus-server-debug.c:
12170         Document.
12171
12172         * dbus/dbus-server.c: (dbus_server_listen):
12173         Parse address and use correct server implementation.
12174
12175         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12176         * dbus/dbus-string.h:
12177         New function with test.
12178
12179         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12180         * dbus/dbus-test.h:
12181         Add address tests.
12182
12183         * dbus/dbus-transport-debug.c:
12184         Document.
12185
12186         * dbus/dbus-transport.c: (_dbus_transport_open):
12187         Parse address and use correct transport implementation.
12188
12189 2003-01-30  Havoc Pennington  <hp@pobox.com>
12190
12191         * dbus/dbus-message.c: use message->byte_order instead of
12192         DBUS_COMPILER_BYTE_ORDER throughout.
12193         (dbus_message_create_header): pad header to align the
12194         start of the body of the message to 8-byte boundary
12195
12196         * dbus/dbus-marshal.h: make all the demarshalers take const
12197         DBusString arguments.
12198
12199         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12200         validate message args here, so we don't have to do slow validation
12201         later, and so we catch bad messages as they are incoming. Also add
12202         better checks on header_len and body_len. Also fill in
12203         message->byte_order
12204
12205         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12206         implemented properly)
12207         (_dbus_string_validate_nul): new function to check all-nul
12208
12209         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12210         get_arg_end_pos and remove all validation
12211         (_dbus_marshal_validate_arg): actually do validation here.
12212
12213 2003-01-29  Havoc Pennington  <hp@pobox.com>
12214
12215         * dbus/dbus-message.c (check_message_handling): fix assertion
12216         failure on set_client_serial
12217
12218 2003-01-28  Havoc Pennington  <hp@pobox.com>
12219
12220         * dbus/dbus-server-debug.c: Add doc section comments
12221
12222         * dbus/dbus-transport-debug.c: add doc section comments
12223
12224 2003-01-28  Havoc Pennington  <hp@redhat.com>
12225
12226         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12227         the reverse order from how I had it
12228         (_dbus_string_base64_encode): reverse encoding order. I was
12229         basically byteswapping everything during encoding.
12230
12231 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12232
12233         * dbus/dbus-connection-internal.h:
12234         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12235         (_dbus_connection_remove_timeout):
12236         Add functions for adding and removing timeouts.
12237
12238         * dbus/dbus-message.c: (dbus_message_new_from_message):
12239         Add new function that takes a message and creates an exact
12240         copy of it, but with the refcount set to 1.
12241         (check_message_handling):
12242         Fix build error.
12243
12244         * dbus/dbus-server-protected.h:
12245         * dbus/dbus-server.c: (_dbus_server_init_base),
12246         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12247         (dbus_server_set_timeout_functions):
12248         (_dbus_server_remove_timeout):
12249         New functions so that a server can add and remove timeouts.
12250
12251         (dbus_server_listen):
12252         Add commented out call to dbus_server_debug_new.
12253
12254         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12255         Actually set the handler, doh.
12256
12257         * dbus/dbus-transport.c: (_dbus_transport_open):
12258         Add commented out call to dbus_transport_debug_client_new.
12259
12260         * dbus/Makefile.am:
12261         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12262
12263 2003-01-28  Havoc Pennington  <hp@pobox.com>
12264
12265         * dbus/dbus-message.c (check_message_handling): function to check
12266         on the loaded message, iterates over it etc.
12267
12268 2003-01-28  Havoc Pennington  <hp@pobox.com>
12269
12270         * test/Makefile.am (dist-hook): fix make distdir
12271
12272         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12273
12274 2003-01-27  Havoc Pennington  <hp@pobox.com>
12275
12276         * dbus/dbus-mempool.c (time_for_size): replace printf with
12277         _dbus_verbose
12278
12279         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12280         empty lines; fix the SAVE_LENGTH stuff to be
12281         START_LENGTH/END_LENGTH so it actually works; couple other
12282         bugfixes
12283
12284         * test/Makefile.am (dist-hook): add dist-hook for .message files
12285
12286         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12287         can be constant or locked.
12288         (_dbus_string_free): allow freeing a const string as
12289         documented/intended
12290
12291         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12292
12293         * dbus/dbus-test-main.c (main): take an argument which is the
12294         directory containing test data
12295
12296         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12297         argument to this and load all the messages in test/data/
12298         checking that they can be loaded or not loaded as appropriate.
12299
12300 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12301
12302         * bus/dispatch.c: (bus_dispatch_message_handler):
12303         Dispatch messages sent to services.
12304
12305         * bus/driver.c: (bus_driver_send_service_deleted),
12306         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12307         (bus_driver_send_service_acquired):
12308         Add helper functions for sending service related messages.
12309
12310         (bus_driver_send_welcome_message):
12311         Send HELLO_REPLY instead of WELCOME.
12312
12313         (bus_driver_handle_list_services):
12314         Send LIST_SERVICES_REPLY instead of SERVICES.
12315
12316         (bus_driver_handle_own_service),
12317         (bus_driver_handle_service_exists):
12318         New message handlers.
12319
12320         (bus_driver_handle_message):
12321         Invoke new message handlers.
12322
12323         (bus_driver_remove_connection):
12324         Don't remove any services here since that's done automatically
12325         by bus_service_remove_owner now.
12326
12327         * bus/driver.h:
12328         New function signatures.
12329
12330         * bus/services.c: (bus_service_add_owner):
12331         Send ServiceAcquired message if we're the only primary owner.
12332
12333         (bus_service_remove_owner):
12334         Send ServiceAcquired/ServiceLost messages.
12335
12336         (bus_service_set_prohibit_replacement),
12337         (bus_service_get_prohibit_replacement):
12338         Functions for setting prohibit replacement.
12339
12340         (bus_service_has_owner):
12341         New function that checks if a connection is in the owner queue of
12342         a certain service.
12343
12344         * bus/services.h:
12345         Add new function signatures.
12346
12347         * dbus/dbus-list.c: (_dbus_list_test):
12348         Add tests for _dbus_list_remove_last and traversing the list backwards.
12349
12350         * dbus/dbus-list.h:
12351         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12352         go any further, so return NULL then.
12353
12354         * dbus/dbus-protocol.h:
12355         Add new messages, service flags and service replies.
12356
12357 2003-01-26  Havoc Pennington  <hp@pobox.com>
12358
12359         * dbus/dbus-message-builder.c: implement, completely untested.
12360
12361         * test/data/*: add data to be used in testing.
12362         ".message" files are our simple loadable text format.
12363         ".message-raw" will be binary dumps of messages.
12364
12365         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12366
12367 2003-01-26  Havoc Pennington  <hp@pobox.com>
12368
12369         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12370
12371         * dbus/dbus-errors.c (dbus_result_to_string): add
12372         file errors
12373
12374         * dbus/dbus-message-builder.c: new file, will contain code to load
12375         up messages from files. Not implemented yet.
12376
12377 2003-01-26  Havoc Pennington  <hp@pobox.com>
12378
12379         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12380         the sender by setting to NULL
12381
12382 2003-01-26  Havoc Pennington  <hp@pobox.com>
12383
12384         The unit tests pass, but otherwise untested.  If it breaks, the
12385         tests should have been better. ;-)
12386
12387         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12388         the connection.
12389
12390         * dbus/dbus-message.c: redo everything so we maintain
12391         message->header as the only copy of the various fields.
12392         This avoids the possibility of out-of-memory in some cases,
12393         for example dbus_message_lock() can't run out of memory anymore,
12394         and avoids extra copying. Figured I may as well go ahead and do
12395         this since it was busted for dbus_message_lock to not return
12396         failure on OOM, and dbus_message_write_header was totally
12397         unchecked for OOM. Also fixed some random other bugs.
12398
12399         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12400         that strings are nul-terminated. Also, end_pos can be equal
12401         to string length just not greater than, I think.
12402         (_dbus_marshal_set_int32): new function
12403         (_dbus_marshal_set_uint32): new function
12404         (_dbus_marshal_set_string): new function
12405
12406         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12407         a warning, init timeout_list to NULL
12408         (dbus_connection_send_message): don't use uninitialized variable
12409         "serial"
12410
12411         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12412
12413 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12414
12415         * bus/driver.c: (bus_driver_handle_hello),
12416         (bus_driver_send_welcome_message):
12417         Plug leaks
12418
12419 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12420
12421         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12422         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12423         (dbus_connection_unref):
12424         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12425         * dbus/dbus-message.c: (dbus_message_unref),
12426         Plug memory leaks.
12427
12428         (dbus_message_get_fields):
12429         Remove debugging printout.
12430
12431         (_dbus_message_loader_return_buffer):
12432         Don't store the header string.
12433
12434         (_dbus_message_test):
12435         Plug leaks.
12436
12437 2003-01-26  Richard Hult  <rhult@codefactory.se>
12438
12439         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12440         the file descriptor list, since it can change under us.
12441
12442 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12443
12444         * glib/dbus-gmain.c: (dbus_connection_prepare),
12445         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12446         (remove_watch), (dbus_connection_hookup_with_g_main):
12447         Rewrite the glib handling to use its own GSource instead of a
12448         GIOChannel so we can catch messages put in the queue while waiting
12449         for a reply.
12450
12451 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12452
12453         * bus/Makefile.am:
12454         * bus/connection.c: (connection_disconnect_handler),
12455         (connection_watch_callback), (bus_connection_setup):
12456         * bus/dispatch.c: (send_one_message),
12457         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12458         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12459         * bus/dispatch.h:
12460         * bus/driver.c: (bus_driver_send_service_deleted),
12461         (bus_driver_send_service_created), (bus_driver_handle_hello),
12462         (bus_driver_send_welcome_message),
12463         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12464         (bus_driver_handle_message):
12465         * bus/driver.h:
12466         Refactor code, put the message dispatching in its own file. Use
12467         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12468         is disconnected.
12469
12470 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12471
12472         * dbus/dbus-internals.h:
12473         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12474
12475         * dbus/dbus-message.c: (dbus_message_get_sender):
12476         * dbus/dbus-message.h:
12477         Implement dbus_message_get_sender.
12478
12479         * dbus/dbus-protocol.h:
12480         Add message and service defines.
12481
12482 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12483
12484         * dbus/dbus-connection.c: (dbus_connection_send_message):
12485         * dbus/dbus-message-internal.h:
12486         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12487         (dbus_message_write_header):
12488         Remove _dbus_messag_unlock and don't set the client serial on a
12489         message if one already exists.
12490
12491 2003-01-24  Havoc Pennington  <hp@pobox.com>
12492
12493         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12494         list_pool
12495
12496         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12497         on OOM
12498
12499 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12500
12501         * dbus/dbus-list.c: (alloc_link), (free_link):
12502         Use a memory pool for the links.
12503
12504 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12505
12506         * bus/connection.c: (bus_connection_foreach):
12507         * bus/connection.h:
12508         Add new bus_connection_foreach function.
12509
12510         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12511         Add function that broadcasts a message to all clients.
12512
12513         (bus_driver_send_service_created), (bus_driver_handle_hello),
12514         (bus_driver_send_welcome_message),
12515         (bus_driver_handle_list_services), (bus_driver_message_handler):
12516         Implement functions that take care of listing services, and notifying
12517         clients when new services are created.
12518
12519         * bus/services.c: (bus_services_list):
12520         * bus/services.h:
12521         Add new function that returns an array of strings with the currently
12522         registered services.
12523
12524         * glib/dbus-glib.h:
12525         * glib/dbus-gmain.c:
12526         Update copyright year.
12527
12528 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12529
12530         * dbus/dbus-connection.c: (dbus_connection_send_message):
12531         Unlock the message in case it was sent earlier.
12532
12533         (dbus_connection_send_message_with_reply_and_block):
12534         Remove the reply message from the list.
12535
12536         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12537         Set array_len and new_pos correctly.
12538
12539         (_dbus_marshal_test):
12540         Remove debug output.
12541
12542         * dbus/dbus-message-internal.h:
12543         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12544         New function that returns the reply serial.
12545
12546         (_dbus_message_unlock):
12547         New function that unlocks a message and resets its header.
12548
12549         (dbus_message_append_string_array),
12550         (dbus_message_get_fields_valist),
12551         (dbus_message_iter_get_field_type),
12552         (dbus_message_iter_get_string_array),
12553         (dbus_message_get_fields),
12554         (dbus_message_append_fields_valist):
12555         Handle string arrays.
12556
12557         (dbus_message_set_sender):
12558         Make this function public since the bus daemon needs it.
12559
12560         (decode_header_data):
12561         Set the reply serial to -1 initially.
12562
12563         * dbus/dbus-message.h:
12564         Add dbus_message_set_sender.
12565
12566 2003-01-24  Havoc Pennington  <hp@pobox.com>
12567
12568         * doc/dbus-specification.sgml: add some stuff
12569
12570 2003-01-22  Havoc Pennington  <hp@pobox.com>
12571
12572         * doc/dbus-specification.sgml: Start to document the protocol.
12573
12574 2003-01-22  Havoc Pennington  <hp@pobox.com>
12575
12576         * dbus/dbus-connection.c
12577         (dbus_connection_send_message_with_reply_and_block): add some @todo
12578
12579         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12580
12581 2003-01-21  Havoc Pennington  <hp@pobox.com>
12582
12583         (patch untested because can't compile)
12584
12585         * bus/driver.c (create_unique_client_name): make this function
12586         never recycle client names. Also, caller should initialize
12587         the DBusString.
12588
12589         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12590
12591 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12592
12593         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12594         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12595         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12596         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12597         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12598         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12599         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12600         * dbus/dbus-marshal.h:
12601         * dbus/dbus-protocol.h:
12602         Add support for marshalling and demarshalling integer, double
12603         and string arrays.
12604
12605 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12606
12607         * bus/Makefile.am:
12608         Add driver.[ch]
12609
12610         * bus/connection.c: (connection_disconnect_handler):
12611         Remove the connection from the bus driver's list.
12612
12613         (connection_watch_callback): Dispatch messages.
12614
12615         (free_connection_data): Free connection name.
12616
12617         (bus_connection_setup): Add connection to the bus driver's list.
12618         (bus_connection_remove_owned_service):
12619         (bus_connection_set_name), (bus_connection_get_name):
12620         Add functions for setting and getting the connection's name.
12621
12622         * bus/connection.h:
12623         Add function headers.
12624
12625         * bus/driver.c: (create_unique_client_name),
12626         (bus_driver_handle_hello_message),
12627         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12628         (bus_driver_add_connection), (bus_driver_remove_connection):
12629         * bus/driver.h:
12630         * bus/main.c:
12631         * bus/services.c: (bus_service_free):
12632         * bus/services.h:
12633         New file that handles communication and registreation with the bus
12634         itself.
12635
12636 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12637
12638         * dbus/dbus-connection.c: (dbus_connection_send_message):
12639         Add a new client_serial parameter.
12640
12641         (dbus_connection_send_message_with_reply):
12642         Remove a @todo since we've implemented the blocking function.
12643
12644         (dbus_connection_send_message_with_reply_and_block):
12645         New function that sends a message and waits for a reply and
12646         then returns the reply.
12647
12648         * dbus/dbus-connection.h:
12649         Add new functions.
12650
12651         * dbus/dbus-errors.c: (dbus_result_to_string):
12652         * dbus/dbus-errors.h:
12653         Add new DBUS_RESULT.
12654
12655         * dbus/dbus-message-internal.h:
12656         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12657         (_dbus_message_set_sender), (dbus_message_write_header),
12658         (dbus_message_new_reply), (decode_header_data),
12659         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12660         * dbus/dbus-message.h:
12661         Add new functions that set the reply serial and sender.
12662         Also marshal and demarshal them correctly and add test.
12663
12664         * dbus/dbus-protocol.h:
12665         Add new DBUS_MESSAGE_TYPE_SENDER.
12666
12667         * glib/dbus-glib.h:
12668         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12669         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12670         (dbus_connection_hookup_with_g_main):
12671         * glib/test-dbus-glib.c: (main):
12672         Rewrite to use GIOChannel and remove the GSource crack.
12673
12674         * test/echo-client.c: (main):
12675         * test/watch.c: (check_messages):
12676         Update for changed APIs
12677
12678 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12679
12680         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12681
12682         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12683         Create a DBusTimeoutList.
12684         (dbus_connection_set_timeout_functions): Add new function to
12685         set timeout callbacks
12686
12687         * dbus/dbus-connection.h: Add public DBusTimeout API.
12688
12689         * dbus/dbus-message.c: (dbus_message_get_service):
12690         * dbus/dbus-message.h:  New function.
12691
12692         * dbus/dbus-server.c: Fix small doc typo.
12693
12694         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12695
12696 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12697
12698         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12699         of the string, just as long as specified.
12700
12701 2003-01-19  Havoc Pennington  <hp@pobox.com>
12702
12703         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12704         new function
12705
12706         * dbus/dbus-server.c (dbus_server_set_max_connections)
12707         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12708         keep track of current number of connections, and add API for
12709         setting a max (but haven't implemented enforcing the max yet)
12710
12711 2003-01-18  Havoc Pennington  <hp@pobox.com>
12712
12713         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12714         reading/writing if read_watch != NULL or write_watch != NULL.
12715
12716         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12717         the message loader code to actually load message->header and
12718         message->body into the newly-created message.
12719
12720         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12721         in OOM case
12722
12723         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12724         (dbus_connection_get_max_message_size)
12725         (dbus_connection_set_max_live_messages_size)
12726         (dbus_connection_get_max_live_messages_size): implement some
12727         resource limitation functions
12728
12729         * dbus/dbus-resources.c: new file implementing some of the
12730         resource limits stuff
12731
12732         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12733         missing docs, add @todo to handle OOM etc.
12734
12735         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12736         docs
12737
12738 2003-01-18  Havoc Pennington  <hp@pobox.com>
12739
12740         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12741         connection if it hasn't been already.
12742
12743         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12744         replace with DisconnectFunction.
12745
12746 2003-01-18  Havoc Pennington  <hp@pobox.com>
12747
12748         Building --disable-verbose-mode --disable-asserts --disable-tests
12749         cuts the library from 112K to 45K or so
12750
12751         * configure.in: check for varargs macro support,
12752         add --enable-verbose-mode, --enable-asserts.
12753
12754         * dbus/dbus-internals.h (_dbus_assert): support
12755         DBUS_DISABLE_ASSERT
12756         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12757
12758 2003-01-18  Havoc Pennington  <hp@pobox.com>
12759
12760         * dbus/dbus-test.c: include config.h so that tests actually run
12761
12762         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12763         so the failure mode when that assumption fails will be plenty
12764         obvious.
12765
12766 2003-01-18  Havoc Pennington  <hp@pobox.com>
12767
12768         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12769
12770         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12771         the distribution
12772
12773         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12774         since we don't want to use those in make check
12775
12776 2003-01-15  Havoc Pennington  <hp@redhat.com>
12777
12778         Release 0.2
12779
12780         * NEWS: update
12781
12782 2003-01-15  Havoc Pennington  <hp@redhat.com>
12783
12784         * test/Makefile.am: fix so that test source code ends up in the
12785         distribution on make distcheck
12786
12787 2003-01-15  Havoc Pennington  <hp@redhat.com>
12788
12789         Release 0.1.
12790
12791         * NEWS: update
12792
12793 2003-01-15  Havoc Pennington  <hp@redhat.com>
12794
12795         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12796         fix build when --disable-tests
12797
12798         * Makefile.am (EXTRA_DIST): put HACKING in here
12799
12800         * HACKING: document procedure for making a tarball release.
12801
12802 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12803
12804         * bus/connection.c: (connection_error_handler),
12805         (bus_connection_setup):
12806         * bus/main.c: (main):
12807         Make sure that the DBusConnectionData struct is NULLed
12808         out to prevent a segfault.
12809
12810         * dbus/dbus-errors.c: (dbus_result_to_string):
12811         * dbus/dbus-errors.h:
12812         * dbus/dbus-message.c: (dbus_message_get_fields),
12813         (dbus_message_get_fields_valist), (_dbus_message_test):
12814         * dbus/dbus-message.h:
12815         Make dbus_message_get_fields return a result code so we can
12816         track invalid fields as well as oom.
12817
12818 2003-01-11  Havoc Pennington  <hp@pobox.com>
12819
12820         * configure.in: change --enable-test/--enable-ansi action-if-given
12821         to enable_foo=$enableval instead of enable_foo=yes
12822
12823 2003-01-08  Havoc Pennington  <hp@pobox.com>
12824
12825         * dbus/dbus-string.c (_dbus_string_align_length): new function
12826
12827         * dbus/dbus-test-main.c: move main() for test app here
12828         * dbus/dbus-test.c
12829         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12830         symbol to run tests, because dbus-test isn't in the main
12831         library
12832
12833         Code review nitpicks.
12834
12835         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12836         for people with narrow emacs ;-). Assert client_serial was filled
12837         in. Assert message->name != NULL.
12838         (dbus_message_append_fields): have "first_field_type" arg separate
12839         from va list, needed for C++ binding that also uses varargs IIRC
12840         and helps with type safety
12841         (dbus_message_new): add @todo about using DBusString to store
12842         service/name internally
12843         (dbus_message_new): don't leak ->service and ->name on OOM later
12844         in the function
12845         (dbus_message_unref): free the service name
12846         (dbus_message_get_fields): same change to varargs
12847         i.e. first_field_type
12848         (_dbus_message_loader_return_buffer): assert that the message data
12849         is aligned (if not it's a bug in our code). Put in verbose griping
12850         about why we set corrupted = TRUE.
12851         (decode_header_data): add FIXME that char* is evil.  Was going to
12852         add FIXME about evil locale-specific string.h strncmp, but just
12853         switched to wacky string-as-uint32 optimization. Move check for
12854         "no room for field name" above get_const_data_len() to avoid
12855         assertion failure in get_const_data_len if we have trailing 2
12856         bytes or the like. Check for service and name fields being
12857         provided twice. Don't leak service/name on error. Require field
12858         names to be aligned to 4 bytes.
12859
12860         * dbus/dbus-marshal.c: move byte swap stuff to header
12861         (_dbus_pack_int32): uscore-prefix
12862         (_dbus_unpack_int32): uscore-prefix
12863         (_dbus_unpack_uint32): export
12864         (_dbus_demarshal_string): add @todo complaining about use of
12865         memcpy()
12866         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12867         handling allowing corrupt data to go unchecked
12868
12869 2003-01-08  Havoc Pennington  <hp@redhat.com>
12870
12871         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12872         to the select() as needed for authentication. (should be using
12873         _dbus_poll() not select, but for another day)
12874
12875         * dbus/dbus.h: include dbus/dbus-protocol.h
12876
12877 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12878
12879         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12880         dbus-connection.h
12881
12882 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12883
12884         * dbus/dbus-internals.c: (_dbus_type_to_string):
12885         New function that returns a string describing a type.
12886
12887         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12888         * dbus/dbus-marshal.h:
12889         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12890         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12891         (dbus_message_iter_get_byte_array):
12892         * dbus/dbus-message.h:
12893         Add new convenience functions for appending and getting message fields.
12894         Also add demarshalling routines for byte arrays.
12895
12896 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12897
12898         * dbus/dbus-connection-internal.h:
12899         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12900         (_dbus_connection_get_next_client_serial),
12901         (dbus_connection_send_message):
12902         * dbus/dbus-internals.h:
12903         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12904         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12905         (_dbus_marshal_uint32), (_dbus_demarshal_double),
12906         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12907         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12908         (_dbus_verbose_bytes), (_dbus_marshal_test):
12909         * dbus/dbus-marshal.h:
12910         * dbus/dbus-message-internal.h:
12911         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12912         (dbus_message_write_header), (_dbus_message_lock),
12913         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12914         (dbus_message_get_name), (dbus_message_append_int32),
12915         (dbus_message_append_uint32), (dbus_message_append_double),
12916         (dbus_message_append_string), (dbus_message_append_byte_array),
12917         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12918         (dbus_message_iter_unref), (dbus_message_iter_has_next),
12919         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12920         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12921         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12922         (decode_header_data), (_dbus_message_loader_return_buffer),
12923         (message_iter_test), (_dbus_message_test):
12924         * dbus/dbus-message.h:
12925         * dbus/dbus-protocol.h:
12926         * dbus/dbus-test.c: (main):
12927         * dbus/dbus-test.h:
12928         * glib/test-dbus-glib.c: (message_handler), (main):
12929         * test/echo-client.c: (main):
12930         * test/watch.c: (check_messages):
12931         Make messages sendable and receivable for real.
12932
12933 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12934
12935         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12936         (_dbus_marshal_string), (_dbus_marshal_byte_array):
12937         * dbus/dbus-message.c: (dbus_message_append_int32),
12938         (dbus_message_append_uint32), (dbus_message_append_double),
12939         (dbus_message_append_string), (dbus_message_append_byte_array):
12940         Handle OOM restoration.
12941
12942 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12943
12944         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12945         (_dbus_demarshal_string), (_dbus_marshal_test):
12946         * dbus/dbus-marshal.h:
12947         * dbus/dbus-message.c: (dbus_message_get_name),
12948         Document these functions.
12949
12950         (dbus_message_append_int32), (dbus_message_append_uint32),
12951         (dbus_message_append_double), (dbus_message_append_string),
12952         (dbus_message_append_byte_array):
12953         * dbus/dbus-message.h:
12954         Add functions for adding message fields of different types.
12955
12956         * dbus/dbus-protocol.h:
12957         Add the different types.
12958
12959 2003-01-05  Havoc Pennington  <hp@pobox.com>
12960
12961         * bus/connection.c: implement routines for handling connections,
12962         first thing is keeping a list of owned services on each connection
12963         and setting up watches etc.
12964
12965         * bus/services.c: implement a mapping from service names to lists
12966         of connections
12967
12968         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12969
12970         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12971         to use static mutexes for global data
12972
12973         * dbus/dbus-connection.c (dbus_connection_set_data): add new
12974         collection of functions to set/get application-specific data
12975         on the DBusConnection.
12976
12977 2003-01-04  Havoc Pennington  <hp@pobox.com>
12978
12979         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12980         (_dbus_poll): new function
12981
12982         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12983         copied from GLib
12984
12985         * bus/loop.c: initial code for the daemon main loop
12986
12987 2003-01-04  Havoc Pennington  <hp@pobox.com>
12988
12989         * test/watch.c (error_handler): make it safe if the error handler
12990         is called multiple times (if we s/error handler/disconnect
12991         handler/ we should just guarantee it's called only once)
12992
12993         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12994         error handler on disconnect (it's quite possible we should
12995         just change the error handler to a "disconnect handler," I'm
12996         not sure we have any other meaningful errors)
12997
12998         * configure.in: check for getpwnam_r
12999
13000         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13001         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13002         mechanism as in SASL spec, using socket credentials
13003
13004         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13005         (_dbus_send_credentials_unix_socket): new function
13006
13007         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13008         dbus_accept()
13009         (_dbus_write): only check errno if <0 returned
13010         (_dbus_write_two): ditto
13011
13012 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13013
13014         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13015         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13016         (_dbus_marshal_test):
13017         * dbus/dbus-marshal.h:
13018         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13019         to _dbus_marshal_utf8_string. Also fix some tests.
13020
13021 2002-12-28  Harri Porten  <porten@kde.org>
13022
13023         * configure.in: added check for C++ compiler and a very cheesy
13024         check for the Qt integration
13025
13026         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13027
13028         * qt/Makefile.am: added
13029
13030         * qt/.cvsignore: added
13031
13032         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13033         latter, added #ifdef QT_THREAD_SUPPORT guard.
13034
13035         * dbus/Makefile.am: added missing headers for make dist
13036
13037 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13038
13039         * dbus/Makefile.am: fixup export-symbols-regex.
13040
13041 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13042
13043         * acinclude.m4: Add this file and put the
13044         PKG_CHECK_MODULE macro in it.
13045
13046 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13047
13048         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13049         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13050         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13051         (_dbus_marshal_test):
13052         Make the demarshalling routines align the pos argument.
13053         Add string marshalling tests and fix the obvious bugs
13054         discovered.
13055
13056 2002-12-26  Havoc Pennington  <hp@pobox.com>
13057
13058         * dbus/dbus-auth.c: fixes fixes fixes
13059
13060         * dbus/dbus-transport-unix.c: wire up support for
13061         encoding/decoding data on the wire
13062
13063         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13064         (_dbus_auth_decode_data): append to target string
13065         instead of nuking it.
13066
13067 2002-12-26  Havoc Pennington  <hp@pobox.com>
13068
13069         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13070         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13071         doh
13072
13073         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13074         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13075         now). Main point is because I wanted unpack_uint32 to implement
13076         _dbus_verbose_bytes
13077         (_dbus_verbose_bytes): new function
13078
13079         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13080
13081         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13082         mechanism to handle a corrupt message stream
13083         (_dbus_message_loader_new): fix preallocation to only prealloc,
13084         not prelengthen
13085
13086         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13087         (_dbus_string_test): enhance tests for copy/move and fix the
13088         functions
13089
13090         * dbus/dbus-transport-unix.c: Hold references in more places to
13091         avoid reentrancy problems
13092
13093         * dbus/dbus-transport.c: ditto
13094
13095         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13096         leak reference count in no-message case
13097
13098         * test/watch.c (do_mainloop): handle adding/removing watches
13099         during iteration over the watches. Also, ref the connection/server
13100         stored on a watch, so we don't try to mangle a destroyed one.
13101
13102         * dbus/dbus-transport-unix.c (do_authentication): perform
13103         authentication
13104
13105         * dbus/dbus-auth.c (get_state): add a state
13106         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13107         (_dbus_auth_get_unused_bytes): append the unused bytes
13108         to the passed in string, rather than prepend
13109
13110         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13111         the auth conversation DBusAuth
13112
13113         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13114         (_dbus_transport_new_for_domain_socket): when creating a
13115         transport, pass in whether it's a client-side or server-side
13116         transport so we know which DBusAuth to create
13117
13118 2002-12-03  Havoc Pennington  <hp@pobox.com>
13119
13120         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13121         _after_ finalizing the derived members
13122         (unix_connection_set): unref watch if we fail to add it
13123
13124         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13125         transport first, so that the connection owned by the
13126         transport will be valid as the transport finalizes.
13127
13128         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13129         if necessary, and remove watches from the connection.
13130
13131         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13132
13133 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13134
13135         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13136         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13137         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13138         (_dbus_marshal_test):
13139         * dbus/dbus-marshal.h:
13140         Add string marshal functions and have the demarshal functions
13141         return the new position.
13142
13143 2002-12-25  Havoc Pennington  <hp@pobox.com>
13144
13145         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13146         it is a simple protocol that just maps directly to SASL.
13147
13148         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13149         initial implementation, not actually used yet.
13150
13151         * dbus/dbus-string.c (_dbus_string_find): new function
13152         (_dbus_string_equal): new function
13153         (_dbus_string_base64_encode): new function
13154         (_dbus_string_base64_decode): new function
13155
13156 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13157
13158         * dbus/Makefile.am:
13159         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13160         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13161         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13162         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13163         * dbus/dbus-marshal.h:
13164         * dbus/dbus-protocol.h:
13165         * dbus/dbus-test.c: (main):
13166         * dbus/dbus-test.h:
13167         Add un-optimized marshalling/demarshalling routines.
13168
13169 2002-12-25  Harri Porten  <porten@kde.org>
13170
13171         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13172
13173 2002-12-24  Zack Rusin  <zack@kde.org>
13174
13175         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13176         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13177         main loop stuff
13178
13179 2002-12-24  Havoc Pennington  <hp@pobox.com>
13180
13181         * glib/dbus-gthread.c: fix include
13182
13183         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13184         I think glib API needs to change, though, as you don't
13185         want to use DBusMessageFunction, you want to use the
13186         DBusMessageHandler object. Probably
13187         dbus_connection_open_with_g_main_loop()
13188         and dbus_connection_setup_g_main_loop() or something like that
13189         (but think of better names...) that just create a connection
13190         that has watch/timeout functions etc. already set up.
13191
13192         * dbus/dbus-connection.c
13193         (dbus_connection_send_message_with_reply): new function just to
13194         show how the message handler helps us deal with replies.
13195
13196         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13197
13198         * dbus/dbus-string.c (_dbus_string_test): free a string that
13199         wasn't
13200
13201         * dbus/dbus-hash.c: use memory pools for the hash entries
13202         (rebuild_table): be more paranoid about overflow, and
13203         shrink table when we can
13204         (_dbus_hash_test): reduce number of sprintfs and write
13205         valid C89. Add tests for case where we grow and then
13206         shrink the hash table.
13207
13208         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13209
13210         * dbus/dbus-connection.c (dbus_connection_register_handler)
13211         (dbus_connection_unregister_handler): new functions
13212
13213         * dbus/dbus-message.c (dbus_message_get_name): new
13214
13215         * dbus/dbus-list.c: fix docs typo
13216
13217         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13218         an object representing a handler for messages.
13219
13220 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13221
13222         * glib/dbus-glib.h:
13223         * glib/dbus-gthread.c: (dbus_gthread_init):
13224         Don't use the gdbus prefix for public functions.
13225
13226 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13227
13228         * Makefile.am:
13229         * configure.in:
13230         Add GLib checks and fixup .pc files
13231
13232         * glib/Makefile.am:
13233         * glib/dbus-glib.h:
13234         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13235         (gdbus_connection_check), (gdbus_connection_dispatch),
13236         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13237         (dbus_connection_gsource_new):
13238         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13239         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13240         * glib/test-dbus-glib.c: (message_handler), (main):
13241         Add GLib support.
13242
13243 2002-12-15  Harri Porten  <porten@kde.org>
13244
13245         * autogen.sh: check for libtoolize before attempting to use it
13246
13247         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13248         struct.
13249
13250         * .cvsignore: ignore more stamp files
13251
13252         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13253
13254         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13255         without make install.
13256
13257 2002-12-15  Havoc Pennington  <hp@pobox.com>
13258
13259         * dbus/dbus-threads.c: add thread stubs that a higher library
13260         layer can fill in. e.g. the GLib wrapper might fill them in with
13261         GThread stuff. We still need to use this thread API to
13262         thread-safe-ize the library.
13263
13264 2002-12-12  Havoc Pennington  <hp@pobox.com>
13265
13266         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13267         below new interfaces and include fewer system headers.
13268
13269         * dbus/dbus-sysdeps.c (_dbus_read): new function
13270         (_dbus_write): new function
13271         (_dbus_write_two): new function
13272         (_dbus_connect_unix_socket): new function
13273         (_dbus_listen_unix_socket): new function
13274
13275         * dbus/dbus-message-internal.h: change interfaces to use
13276         DBusString
13277
13278 2002-12-11  Havoc Pennington  <hp@pobox.com>
13279
13280         * dbus/dbus-types.h: add dbus_unichar
13281
13282         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13283
13284         * dbus/dbus-connection.c (dbus_connection_send_message): return
13285         TRUE on success
13286
13287         * dbus/dbus-transport.c: include dbus-watch.h
13288
13289         * dbus/dbus-connection.c: include dbus-message-internal.h
13290
13291         * HACKING: add file with coding guidelines stuff.
13292
13293         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13294         handling here, for security purposes (as in vsftpd). Not actually
13295         using this class yet.
13296
13297         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13298         system/libc usage here, as in vsftpd, for ease of auditing (and
13299         should also simplify portability). Haven't actually moved all the
13300         system/libc usage into here yet.
13301
13302 2002-11-25  Havoc Pennington  <hp@pobox.com>
13303
13304         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13305         always print the first verbose message.
13306
13307 2002-11-24  Havoc Pennington  <hp@pobox.com>
13308
13309         * test/echo-client.c, test/echo-server.c: cheesy test
13310         clients.
13311
13312         * configure.in (AC_CHECK_FUNCS): check for writev
13313
13314         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13315         function
13316
13317         * dbus/dbus-list.c (_dbus_list_foreach): new function
13318
13319         * dbus/dbus-internals.c (_dbus_verbose): new function
13320
13321         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13322         representing a server that listens for connections.
13323
13324         * dbus/.cvsignore: create
13325
13326         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13327         public API for reporting errors
13328
13329         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13330         public object representing a connection that
13331         sends/receives messages. (Same object used for
13332         both client and server.)
13333
13334         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13335         Basic abstraction for different kinds of stream
13336         that we might read/write messages from.
13337
13338 2002-11-23  Havoc Pennington  <hp@pobox.com>
13339
13340         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13341         _DBUS_INT_MAX
13342
13343         * dbus/dbus-test.c (main): add list test, and include
13344         dbus-test.h as intended
13345
13346         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13347         (_dbus_hash_table_remove_int): return value indicates
13348         whether the entry existed to remove
13349
13350         * dbus/dbus-list.c: add linked list utility class,
13351         with docs and tests
13352
13353         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13354         array sometimes.
13355
13356 2002-11-23  Havoc Pennington  <hp@pobox.com>
13357
13358         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13359         DBUS_END_DECLS to nothing, that should fix this once and for all
13360
13361         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13362
13363         * dbus/dbus-message.c, dbus/dbus-hash.c:
13364         add some missing @brief
13365
13366 2002-11-23  Havoc Pennington  <hp@pobox.com>
13367
13368         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13369         to avoid confusing Doxygen
13370
13371         * dbus/dbus-hash.c: @} not }@
13372
13373         * dbus/dbus-message.c (struct DBusMessage): split out
13374         internals docs
13375
13376 2002-11-23  Havoc Pennington  <hp@pobox.com>
13377
13378         * configure.in: pile on more warning flags if using gcc
13379
13380         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13381         to document static functions
13382
13383         * configure.in: add summary to end of configure so it
13384         looks nice and attractive
13385
13386         * dbus/dbus-hash.c: finish implementation and write unit
13387         tests and docs
13388
13389         * configure.in: add --enable-tests to enable unit tests
13390
13391         * dbus/dbus-test.c: test program to run unit tests
13392         for all files in dbus/*, initially runs a test for
13393         dbus-hash.c
13394
13395         * dbus/dbus-internals.h: file to hold some internal utility stuff
13396
13397 2002-11-22  Havoc Pennington  <hp@redhat.com>
13398
13399         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13400         "ported" away from Tcl
13401
13402         * dbus/dbus-types.h: header for types such as dbus_bool_t
13403
13404 2002-11-22  Havoc Pennington  <hp@redhat.com>
13405
13406         * dbus/dbus.h: fixups for doc warnings
13407
13408         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13409         macros
13410         (QUIET): make it quiet so we can see warnings
13411
13412         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13413
13414 2002-11-22  Havoc Pennington  <hp@redhat.com>
13415
13416         * Makefile.am: include "Doxyfile" target in all-local
13417
13418         * configure.in: generate the Doxyfile
13419
13420         * Doxyfile.in: move Doxyfile here, so we can use
13421         configure to generate a Doxyfile with the right
13422         version number etc.
13423
13424 2002-11-22  Havoc Pennington  <hp@redhat.com>
13425
13426         * dbus/dbus-message.c: move inline docs into .c file
13427
13428         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13429         so all docs are under doc/
13430         (MAN_EXTENSION): generate man pages. Use extension
13431         ".3dbus" which matches ".3qt" on my system,
13432         I guess this is OK, I don't know really.
13433         (FILE_PATTERNS): look for .c files not .h, makes sense
13434         for plain C I think
13435
13436 2002-11-22  Havoc Pennington  <hp@pobox.com>
13437
13438         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13439         because any app can be a server, and any app can be a client,
13440         the bus is a special kind of server.
13441
13442 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13443
13444         * Doxyfile : adding. Still needs Makefile rules to be generated
13445         automatically (just run "doxygen" in the toplevel dir for now to
13446         generate docs)
13447
13448         * dbus/dbus-message.h : Adding sample docs (javadoc since
13449         resembles gtk-doc a little more)
13450
13451         * dbus/dbus.h : Adding sample docs
13452
13453 2002-11-21  Havoc Pennington  <hp@redhat.com>
13454
13455         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13456         so we can allow ourselves to include files directly,
13457         instead of having to use dbus.h
13458
13459         * dbus/dbus.h: fill in
13460
13461         * dbus/dbus-message.h: sketch out a sample header file.
13462         Include griping if you include it directly instead of
13463         via dbus.h
13464
13465         * dbus/dbus-macros.h: new file with macros for extern "C",
13466         TRUE/FALSE, NULL, etc.
13467
13468         * doc/file-boilerplate.c: put include guards in here
13469
13470 2002-11-21  Havoc Pennington  <hp@redhat.com>
13471
13472         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13473
13474         * COPYING: include the GPL as well, and license code
13475         under both AFL and GPL.
13476
13477 2002-11-21  Havoc Pennington  <hp@redhat.com>
13478
13479         * acconfig.h: get rid of this
13480
13481         * autogen.sh (run_configure): add --no-configure option
13482
13483         * configure.in: remove AC_ARG_PROGRAM to make
13484         autoconf complain less. add AC_PREREQ.
13485         add AC_DEFINE third arg.
13486
13487 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13488
13489         * doc/Makefile.am:
13490         Fix references so we can distcheck.
13491
13492 2002-11-21  Havoc Pennington  <hp@redhat.com>
13493
13494         * Initial module creation
13495