* qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
[platform/upstream/dbus.git] / ChangeLog
1 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2
3         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
4         that took a QDBusMessage parameter.
5         * qt/src/qdbusbus.h: Add a default flag for RequestName.
6         * qt/tools/dbus.cpp: Don't use automatic call because we might
7         be calling an async method: request a reply.
8
9 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
10
11         * test/qt/*: Update the testcases, including testing the new
12         functionality of sending null QByteArray and QString over the
13         bus. Add new headertest test and restore the old
14         qdbusxmlparser test.
15
16 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
17
18         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
19         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
20
21         * qt/examples/Makefile.am:
22         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
23         form.
24
25         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
26         QByteArray() (nulls) over the bus.
27         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
28         the one that has the signature suffix stripped.
29         * qt/src/qdbusreply.h: Make some methods const.
30
31 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
32
33         Patch from Timo Hoenig <thoenig@suse.de>.
34
35         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
36         required during build to EXTRA_DIST.
37         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
38         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
39         * configure.in: Fix "make dist", take care that the Makefile for
40         qt/dbus is being generated.
41
42 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
43
44         * bus/bus.c: Fix eavesdropping on method calls
45
46 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
47
48         * configure.in:
49         * dbus/dbus-userdb-util.c:
50         Add Solaris console owner patch from Artem Kachitchkine
51
52 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
53
54         * qt/Makfile.am:
55         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
56         reorganisation. Thanks to Timo Hoenig for pointing this out.
57
58 2006-06-06  Robert McQueen  <robot101@debian.org>
59
60         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
61           call to dbus_g_type_get_struct.
62
63 2006-06-06  Robert McQueen  <robot101@debian.org>
64
65         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
66           pointers were put into a GPtrArray-based specialised collection, and
67           then freed along with the array. GValues which you add into
68           collections or maps which have the NOCOPY flag set are assumed to not
69           belong to the caller, so rather than the existing pointer-stealing
70           semantics, they are copied instead. Given that the main consumers of
71           this abstraction are the bindings themselves, I don't think this is
72           too bad, but others should watch their choice of take vs set_static.
73
74 2006-06-06  Robert McQueen  <robot101@debian.org>
75
76         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
77           of g_slist_prepend not being used. Fixed copying of slist-based
78           specialised collections, then wrote a test case and found that it was
79           all broken. Went on to fix iterating and appending too. Good thing
80           nobody uses this code yet.
81
82 2006-06-06  Robert McQueen  <robot101@debian.org>
83
84         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
85           the iterators use gvalue_take_ptrarray_value (the GValues themselves
86           are discarded without unsetting, so it makes no difference whether
87           we take or set_static). Remove cases for G_TYPE_POINTER because
88           there really is nothing useful we can do with them in our
89           specialised types - we *need* boxed copy/free functions at the very
90           least.
91
92 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
93
94         * qt/dbus: Add directory. I had forgotten to add this
95         yesterday after the move...
96
97         * qt/examples/Makefile.am:
98         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
99
100         * qt/tools/Makefile.am:
101         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
102         Added feature to get and set properties.
103         Added validation of service, object path and interface names.
104
105         * qt/tools/dbusidl2cpp.cpp: Two new features:
106         1) Allow specifying both the header and the source file names,
107         by separating them with a colon.
108         2) Don't write an interface output if the -p switch wasn't
109         given, but the -a was.
110
111         * qt/src/*: Fix usage of Iterators and ConstIterators.
112         Fix shadowing of variables by other variables (-Wshadow).
113         Fix keyword-cleanliness in headers.
114         Fix ASCII-cast (QLatin1String, QLatin1Char).
115         Fix validation of member names.
116         Add extra checking of introspection data during XML parsing.
117         Various bug fixes.
118
119 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
120
121         * dbus/Makefile.am:
122         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
123         qt/dbus/qdbus.h now.
124
125 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
126
127         * configure.in: Make --disable-qt actually do
128           something. Patch inspired by Zack Rusin.
129
130 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
131
132         * qt/: Update to Subversion r548032.
133         This includes a big reorganisation of the files inside the
134         subdir.
135
136 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
137
138         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
139         clear:  
140         "Failed to connect to socket <host>:<port> <error>" instead of
141         "Failed to connect to socket <host>: <error>:<port>"
142
143         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
144         for a tcp transport. 
145
146 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
147
148         * qt/*: Update the QtDBus bindings up to revision 546310 in
149         Subversion.
150         This adds the dbuscpp2xml tool, that parses a C++ header and
151         outputs a D-BUS Introspection XML.
152
153 2006-05-21  Havoc Pennington  <hp@redhat.com>
154
155         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
156         is not NULL when it shouldn't be. Also a couple of possible fixes
157         for #4637 though I don't understand why the bug happens, to be
158         honest... also the object constructor has an assert name != NULL
159         and the name is only currently NULL for peer-to-peer proxies that 
160         I don't think anyone uses? So it should be asserting.
161         Anyway, for now at least see if we get an earlier assertion failure.
162
163         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
164         apparently broken code to be sure the tests fail and someone 
165         will fix them...
166
167 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
168
169         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
170         and arrays when they had a single element: has_next returns
171         false, even before you read the element. So, instead, check
172         the array length.
173
174 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
175
176         * qt/qdbusmessage.cpp:
177         * qt/qdbustypehelper_p.h:
178         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
179         the list is a const-reference
180
181 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
182
183         * Adding old doc patch that never got applied
184         
185         * dbus/bus.c (dbus_bus_add_match): Add documentation
186
187         * doc/dbus-specification.xml: Add documentation for the match rules
188           and the AddMatch and RemoveMatch methods
189
190 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
191
192         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
193         call (r535506)
194
195         * qt/dbusidl2cpp.cpp:
196         * qt/qdbusabstractadaptor.cpp:
197         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
198         sibling of the QDBusAbstractAdaptor objects instead of the
199         parent. (r535848)
200
201         * qt/dbusidl2cpp.cpp:
202         * qt/qdbusabstractinterface.cpp:
203         * qt/qdbusabstractinterface.h:
204         * qt/qdbusabstractinterface_p.h:
205         * qt/qdbusinterface.cpp: Make properties in interfaces
206         actually work. The code that was generated would not compile,
207         due to moc calls to functions that did not exist. They now
208         shall. (r536571)
209
210 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
211
212         * Makefile.am:
213         * configure.in:
214         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
215         Thanks to Brad Hards for providing the patch
216
217 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
218
219         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
220         call. (r535506)
221
222 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
223
224         * qt/examples/dbus.cpp: Enhance error messages and use
225         QDBusInterfacePtr.
226
227 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
228
229         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
230         and disable the copy operators. (r533772, r534746)
231
232         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
233
234         * qt/qdbusabstractinterface.cpp:
235         * qt/qdbusabstractinterface.h: Change the default call mode to
236         not use the event loop. Add convenience call() methods that
237         take a CallMode parameter. (r534042)
238
239         * qt/qdbusconnection.h: Change the default call mode to not
240         use the event loop. (r534042)
241
242         * qt/qdbusinterface.cpp:
243         * qt/qdbusinterface.h: Add a method to tell us if the
244         interface is valid (since we don't return a null pointer
245         anymore) (r534099)
246
247         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
248         (r534101)
249
250         * qt/qdbusinternalfilters.cpp: Decouple the introspection
251         function in two so taht we get the chance to introspect
252         without having a QDBusMessage (r534102)
253
254         * qt/qdbusbus.h:
255         * qt/qdbusconnection.cpp:
256         * qt/qdbusconnection_p.h:
257         * qt/qdbusintegrator.cpp: Keep a list of our own names to
258         avoid a round-trip to the server when attempting to introspect
259         one of our own objects. Also make sure the filter functions
260         match the empty interface as well. (r534108)
261         Don't keep the connection names. Instead, trust the unique
262         connection name (r534111)
263         Remove event loop usage (r534112)
264
265 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
266
267         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
268         Brad Hards.
269
270 2006-04-28  Robert McQueen  <robot101@debian.org>
271
272         * glib/dbus-gproxy.c: Fix properties so that they can be given in
273         any order, making it easier for people who inherit from this
274         object.
275
276 2006-04-28  Robert McQueen  <robot101@debian.org>
277
278         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
279         of memory from within pointer arrays and lists. Fixes bug #6300.
280
281 2006-04-28  Robert McQueen  <robot101@debian.org>
282
283         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
284         generating struct signatures. Fixes bug #6083.
285
286 2006-04-28  Robert McQueen  <robot101@debian.org>
287
288         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
289         to qdbusconnection_p.moc.
290
291 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
292
293         * README, INSTALL: Doc fixes
294         Patch from Brad Hards <bradh at frogmouth.net>
295
296 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
297
298         * qt/examples/dbus.cpp: Use the new merged-interface mode for
299         the dynamic meta object. No need to guess which interface to
300         call.
301
302 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
303
304         * qt/qdbusconnection_p.h:
305         * qt/qdbusmetaobject.cpp:
306         * qt/qdbusmetaobject_p.h:
307         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
308         for the dynamic meta object. No need to guess which
309         interface to call.
310         * qt/qdbusabstractinterface_p.h:
311         * qt/qdbusconnection.cpp:
312         * qt/qdbusintegrator.cpp:
313         * qt/qdbusinterface.cpp:
314         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
315         Add a QDBusRef that looks and behaves like DCOPRef.
316
317 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
318
319         * dbus/dbus-connection.c: Interfaces are optional in method
320         calls, so don't give up if the interface parameter is NULL.
321         Patch reviewed by Havoc Pennington.
322
323 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
324
325         * qt/qdbusreply.h: Add default constructor and operator=
326           (r532625)
327         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
328           in public headers (r532952)
329         * qt/qdbusabstractinterface.cpp:
330         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
331           make it the default (r532951)
332
333 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
334
335         * dbus/dbus-connection.c: Fix asserts
336         Patch from Tim Moloney <t.moloney at verizon.net>
337
338 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
339
340         * mono/Connection.cs, mono/Message.cs: Check Target type
341         Patch from Aaron Bockover (abockover at novell.com)
342
343 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
344
345         * INSTALL: fine-tune the requirements for the Qt4 binding.
346
347 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
348
349         * tools/dbus-print-message.c: Added support for printing of all 
350           remaining data types. Fixed logic for indentation of compound
351           data types.
352         
353 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
354
355         * INSTALL: fill out content of file providing DBus specific
356           build installations, followed by generic Auto* INSTALL file
357           content
358         
359 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
360
361         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
362           Patch by Stefan Eilers. (r529537)
363
364 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
365
366         * qt/qdbusinternalfilters.cpp: Don't show the parent's
367           contents (r528208)
368
369 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
370
371         * qt/Makefile.am: fix the dependency for
372           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
373           not in qdbusconnection.cpp.
374           Thanks to Jakub Stachowski <stachowski@hypair.net> for
375           spotting this.
376
377 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
378
379         * qt/examples/listnames.cpp:
380         * qt/examples/Makefile.am: Three ways to list the names on the
381           bus.
382
383 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
384
385         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
386           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
387
388 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
389
390         Merge from Subversion:
391         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
392           something that exists (r526315)
393         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
394           slots/signals (r526316)
395         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
396           also return an unknown-method error if the parameters don't
397           match for org.freedesktop.DBus.Properties. (r526842)
398         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
399         * qt/qdbusintegrator.cpp: Restore the proper order of
400           delivery: don't make method returns be delivered on priority
401           (r528150)
402
403 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
404
405         * configure.in qt/Makefile.am: add qt/examples
406         * qt/examples: Add QtDBus example programs:
407           - hello: Hello, World
408           - ping: Simple method-calling program
409           - pong: Simple object-exporting program (not using adaptors)
410           - complexping: Interactive method-calling program 
411                 (also gets and sets properties).
412           - complexpong: Sample program exporting methods, signals and
413                 properties, using adaptors.
414           - dbus: Simple implementation of a generic method-calling
415                 program, similar to 'dbus-send', but with semantics
416                 similar to 'dcop'.
417           - chat: Simplistic chat program, implemented using signals
418                 and the system bus. Looks like IRC.
419
420 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
421
422         * configure.in: Detect QtGui (necessary for one of the
423           example programs). Note: this increases the minimum required
424           version of Qt to 4.1.3.
425
426 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
427
428         * test/qt/*: Sync with KDE Subversion revision 523647.
429         Update the testcases to the new API. Remove testcases for
430         classes that are no longer public or have been removed.
431
432 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
433
434         * qt/*: 
435         * dbus/qdbus.h: Sync with KDE Subversion revision
436         523647. Hopefully, this will be the last of the
437         source-incompatible changes. Documentation has been improved;
438         support for QList<basic-types> has been added; QDBusObject is
439         gone; QDBus(Abstract)Interface is now a QObject with
440         auto-generated meta-object; QDBusIntrospection is marked
441         private, since QMetaObject can be used now; lots of bugfixes.
442
443 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
444
445         Patch from Milosz Derezynski <internalerror at gmail.com>
446         
447         * configure.in:
448         Output the service directory in the configure summary
449
450         * dbus-1.pc.in:
451         Add session_bus_services_dir
452
453 2006-03-10  Ross Burton  <ross@openedhand.com>
454
455         * tools/dbus-print-message.c:
456         Add support for object paths and signatures.
457
458 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
459
460         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
461         config reload.
462         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
463         information caches
464         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
465         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
466         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
467         * dbus/dbus-userdb.h: Add function to flush all user/group information
468         caches.
469
470 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
471
472         * qt/dbusidl2cpp.cpp:
473         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
474         for dcopidl2cpp, found in the KDE installations (or the more
475         modern kalyptus): generate Qt4 C++ code for the input XML
476         introspection. Currently no IDL parsing.
477
478 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
479
480         * test/qt/*: Update the self-tests.
481
482 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
483
484         * qt/*: 
485         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
486         represents the first feature-complete version of the Qt4
487         bindings since I took ove maintainership.
488
489 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
490
491         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
492         dir. This is C++, so we can't use the DBus ones.
493
494 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
495
496         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
497         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
498
499 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
500
501         * dbus/dbus-connection.c: 
502         (_dbus_connection_block_pending_call):
503         Check to see if our data has already been read off the connection
504         by another blocking pending call before we block in poll.
505         (check_for_reply_and_update_dispatch_unlocked):
506         Code taken from _dbus_connection_block_pending_call - checks for
507         an already read reply and updates the dispatch if there is one.
508
509         * test/name-test/test-pending-call-dispatch.c:
510         New test for making sure we don't get stuck polling a 
511         dbus connection which has no data on the socket when
512         blocking out of order on two or more pending calls.
513
514 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
515
516         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
517         make/automake don't detect that we're talking about the same
518         .lo file if I specify the full path to the source files.
519
520 2006-02-26  Havoc Pennington  <hp@redhat.com>
521
522         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
523
524         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
525         session bus variable is unset, suggest "man dbus-launch" and "man
526         dbus-daemon" to figure out how to fix the problem
527
528 2006-02-25  Havoc Pennington  <hp@redhat.com>
529
530         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
531         should make this thing use the new glib options parser
532
533 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
534
535         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
536         .lo files taking moc sources.
537
538 2006-02-25  Havoc Pennington  <hp@redhat.com>
539
540         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
541         and install it as a public header
542
543 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
544
545         * Released 0.61
546
547 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
548         
549         * proxies.py: Fix the callchain
550
551 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
552         
553         * patch from Sjoerd Simons <sjoerd at debian.org>:      
554
555         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
556         dbus/dbus-sysdeps.c
557
558         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
559         call _dbus_group_info_free_allocated which causes infinite loop,
560         correctly call _dbus_group_info_free
561
562 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
563
564         * qt/qdbusinterface_p.h:
565         * qt/qdbusinterface.cpp: Use the standard
566         org.freedesktop.DBus.Method.NoReply annotation for the "async"
567         calls instead of creating one for us.
568
569         * qt/qdbusconnection_p.h:
570         * qt/qdbusintegrator.cpp: Remove debugging code.
571
572         * qt/qdbusintegrator.cpp:
573         * qt/qdbusmessage.cpp:
574         * qt/qdbusmessage_p.h:
575         * qt/qdbusmessage.h: Change the behaviour of automatic
576         reply-sending: now a reply is always sent, unless the caller
577         didn't request one or if the user slot has already sent one.
578
579 2006-02-16  Robert McQueen  <robot101@debian.org>
580
581         * configure.in: Patch from Debian packages by Sjoerd Simons
582         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
583         arguments so it's possible to build both bindings in the
584         same tree.
585
586         * qt/Makefile.am: Fix truncated value so that make dist works.
587
588 2006-02-16  Robert McQueen  <robot101@debian.org>
589
590         * acinclude.m4, configure.in: Patch from Brad Hards
591         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
592         improving quoting, re-ordering a few checks, and a few other
593         aesthetic tidy-ups.
594
595 2006-02-16  Robert McQueen  <robot101@debian.org>
596
597         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
598         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
599         assertion that the next element to read from the iter is fixed in
600         size. This is not the case when you are at the end of the iter,
601         because the next element type is INVALID.
602
603         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
604         a bogus assert which means that you may not initialise a 0-length
605         string unless you provide a non-NULL pointer. This prevented
606         you from marshalling messages containing zero-length arrays in
607         some cases.
608
609         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
610         from Rob to correct bogus asserts when trying to demarshal an
611         array and get_fixed_array got you 0 elements. Append nothing to
612         the GArray in this case.
613
614         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
615         an empty array via the glib bindings. Without all of the above
616         patches, this new test fails.
617
618 2006-02-16  Robert McQueen  <robot101@debian.org>
619
620         * glib/dbus-gmain.c: Make the previous commit compile.
621
622         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
623         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
624         specify sender_keyword="foo", path_keyword="bar" when adding
625         a signal listener, so that you can bind to signals generically
626         but still do something useful in your callback.
627
628         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
629         chars so that they're not cast to chars and made negative. Thanks
630         to Jakub Stachowski for reporting this and testing the fix.
631
632 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
633
634         * dbus/dbus-glib.h:
635         * glib/dbus-gmain.h:
636         (dbus_g_connection_open): new method for openning
637         a connection to an arbitrary address in the glib bindings
638
639         * ChangeLog: checkin last entry which doesn't seem to be commited
640
641 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
642
643         * tools/dbus-launch.c: Fixed sh syntax output
644
645 2006-02-13  Robert McQueen  <robot101@debian.org>
646
647         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
648         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
649         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
650         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
651         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
652         missing piece of the glib bindings jigsaw puzzle. This modifies
653         the existing specialised types to have N type parameters (rather
654         than the current 1 or 2 for arrays and dictionaries respectively).
655         You can then use this to get a glib type to represent any arbitrary
656         D-Bus struct type using dbus_g_type_get_struct. The only
657         implementation of these types is with GValueArrays as before,
658         but it's now possible to store these in arrays, emit them in
659         signals, etc.
660
661 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
662
663         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
664         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
665         <thiago.macieira at trolltech.com>
666
667 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
668
669         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
670         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
671
672 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
673
674         * bus/connection.c (bus_connections_expect_reply): Make
675         pending reply limit not common to all connections (Bug #5416)
676         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
677
678 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
679
680         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
681
682 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
683
684         * gcj/Makefile.am: point to correct jar command (Bug #4529)
685         patch from Doug Goldstein <cardoe at gentoo.org>
686
687 2006-02-09  Joe Shaw  <joeshaw@novell.com>
688
689         * mono/Arguments.cs: Fix a magic number in the mono bindings
690         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
691
692 2006-01-27  Robert McQueen  <robot101@debian.org>
693
694         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
695         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
696         when generating the client-side methods, instead of overloading
697         CSymbol which broke everything horribly. My apologies.
698
699 2006-01-27  Robert McQueen  <robot101@debian.org>
700
701         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
702         by me and Rob Taylor to add a simple_free function to D-Bus map
703         and collection types, which allows those types which can be freed
704         with a GDestroyNotify (such as GHashTables and GArrays, but not
705         GPtrArrays) to be stored as the values in hashtables.
706
707         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
708         Patch by Rob Taylor to add nested dicts to the glib tests to check
709         the above code works, and appears not to leak when called repeatedly.
710
711 2006-01-27  Robert McQueen  <robot101@debian.org>
712
713         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
714         to free a D-Bus allocated string with dbus_free () instead of
715         g_free ().
716
717 2006-01-27  Iain Holmes  <iain@openedhand.com>
718
719         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
720         method from being called multiple times.
721
722 2006-01-19  Robert McQueen  <robot101@debian.org>
723
724         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
725         <rob.taylor@collabora.co.uk> to add support for generating bindings
726         to arrays that are represented as GPtrArrays rather than GArrays (ie
727         size-variable things, such as strings, objects, structs, etc).
728
729 2006-01-05  Robert McQueen  <robot101@debian.org>
730
731         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
732         <ricardo.kekki@movial.fi> to make it possible to inherit from
733         DBusGProxy, by splitting the DBusGProxy struct into a public part and
734         a private part, and moving the setting of the DBusGProxyManager into a
735         connection property, allowing proper GObject construction.
736
737 2006-01-05  Robert McQueen  <robot101@debian.org>
738
739         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
740         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
741         annotations when generating glib client bindings.
742
743 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
744
745         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
746
747         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
748
749 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
750
751         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
752
753 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
754
755         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
756
757 2005-12-19  Ross Burton  <ross@openedhand.com>
758
759         * doc/dbus-tutorial.xml:
760         Document the Glib client-side bindings, and list all possible annotations.
761
762 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
763
764         * dbus/bus.c (dbus_bus_release_name): Add documentation
765
766 2005-12-06  Robert McQueen  <robot101@debian.org>
767
768         * python/service.py: s/sucessful/successful/ so we're allocating to
769         and reading from the same variable. Oops.
770
771 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
772
773         * Released 0.60
774
775 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
776
777         * test/qt/Makefile.am: build from srcdir
778
779         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
780         Note - this code is wrong and needs to be fixed by the Qt binding
781         developers.  The flags should be treated as bitfields and not enums.
782
783         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
784
785 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
786
787         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
788           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
789           in production code
790
791 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
792
793         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
794         method for getting messages off the bus in the absence of a
795         mainloop.  This method is much like 
796         dbus_connection_read_write_dispatch except it does not dispatch
797         the messages to a registered filter function.  Instead it
798         allows a developer to process messages by directly popping
799         them off the bus.
800
801 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
802
803         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
804         the parser to continue instead of returning error
805         (bus_desktop_file_load): Do not free parser data when
806         parse_section_start or parse_key_value fails because it was 
807         already freed by parser_free (patch from Carlos Garcia Campos  
808         <carlosgc at gnome.org>)
809
810 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
811
812         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
813         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
814         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
815         test/test-segfault.c, test/test-utils.c,
816         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
817         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
818         Various cleanup of dead code and compiler warnings (patch from
819         Kjartan Maraas <kmaraas at gnome.org>) 
820
821 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
822
823         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
824         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
825
826 2005-11-27  Robert McQueen  <robot101@debian.org>
827
828         * python/dbus_bindings.pyx: Repair my previous commit which reverted
829         part of the preceding one. Oops. Merge patch by Johan Hedberg
830         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
831         on big-endian platforms.
832
833         * test/python/test-client.py: Add some 16-bit integers to the test
834         values.
835
836 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
837
838         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
839         method return message for property getters
840
841 2005-11-27  Robert McQueen  <robot101@debian.org>
842
843         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
844         with type v of an instance of dbus.Variant(foo, type='x') caused
845         it to be boxed twice before sending over the bus.
846
847         * python/dbus_bindings.pyx, python/service.py,
848         test/python/test-client.py: Update the constants for the new
849         request_name flags, and update comments/test cases now that queueing
850         is the default action.
851
852 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
853
854         * configure.in:
855         - Change version to 0.60 for impending release
856         - upped the sonames because of ABI and API breakage
857
858 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
859
860         * configure.in: Add test/name-test/Makefile to the generated
861         Makefile list
862
863         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
864         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
865         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
866         not to queue an ower if it can't be the primary owner
867
868         * bus/bus.h: Add new internal BusOwner struct
869
870         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
871         to bus_registry_ensure and don't set the prohibit_replacement flag
872         since they are now set per BusOwner and not per name.
873         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
874         that returns the list of connections in a name's connection queue
875         
876         * bus/services.c (struct BusService): remove prohibit_replacement field
877         (struct BusOwner): new struct for keeping track of queued connections
878         and their associated flags for the queue
879         (struct BusRegistry): add a BusOwner memory pool
880         (bus_registry_new): initialize the BusOwner memory pool
881         (bus_registry_unref): free the BusOwner memory pool
882         (_bus_service_find_owner_link): new internal method for
883         searching the queue for a specific connection
884         (bus_owner_set_flags): new method for adding setting the flags on a
885         bus owner
886         (bus_owner_new): new method that creates a BusOwner object from the
887         pool and sets its flags
888         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
889         (bus_registry_ensure): Add the flags parameter
890         (bus_registry_acquire_service): Switch from using raw connections to
891         using the BusOwner struct
892         Add new state machine for dealing with the new set of flags
893         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
894         cancel_ownership, free_ownership_cancel_data, 
895         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
896         restore_ownership, free_ownership_restore_data, 
897         add_restore_ownership_to_transaction): Switch to using BusOwner 
898         instead of raw connections
899         (bus_service_add_owner): Add flags parameter
900         Switch to using BusOwner instead of raw connections
901         Add state machine for dealing with the new set of flags
902         (bus_service_swap_owner): Swaps the first and second owners in the
903         queue.  Used to make sure proper signals are sent when a service looses 
904         or gains primary ownership.  We never insert an owner at the top of the
905         queue.  Instead we insert it in the second position and then swap.
906         (bus_service_remove_owner): Remove the owner from the queue sending
907         out the NameLost and NameOwnerChanged signals if the we were the 
908         primary owner
909         (bus_service_get_primary_owners_connection): New method that extracts
910         the connection from the primary owner
911         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
912         connection
913         (bus_service_get_allow_replacement): Changed from the old 
914         bus_service_get_prohibit_replacement method.  Checks the flags of the 
915         primary owner and returns if it can be replaced or not
916         (bus_service_set_prohibit_replacement): removed
917         (bus_service_has_owner): returns TRUE if and owner with
918         the specified connection exists in the queue
919         
920         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
921         method that only compiles if tests are enabled.  Allows us to get the 
922         unique name of a connection so we can check it against the queue when
923         doing regression tests
924
925         * bus/activation.c (bus_activation_send_pending_auto_activate),
926         bus/dispatch.c (bus_dispatch),  
927         bus/driver.c (bus_driver_handle_get_service_owner, 
928         bus_driver_handle_get_connection_unix_user, 
929         bus_driver_handle_get_connection_unix_process_id,
930         bus_driver_handle_get_connection_selinux_security_context),
931         bus/signals.c (connection_is_primary_owner): 
932         use bus_service_get_primary_owners_connection instead of
933         bus_service_get_primary_owner
934
935         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
936         _dbus_listen_unix_socket): Calculate the length of the socket
937         path and use that instead of using a fixed length which was
938         causing socket names to contain many trailing Nul bytes.
939
940         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
941         (dbus_g_method_get_sender): New method for extracting the sender 
942         from a DBusGMethodInvocation
943         (dbus_g_method_return_get_reply): changed name to 
944         dbus_g_method_get_reply
945         (dbus_g_method_return_send_reply): changed name to
946         dbus_g_method_send reply
947
948         * doc/dbus-specification.xml: New docs that describe how the new
949         queueing system works and talks about the changes to the how
950         we specify socket names
951
952         * glib/examples/example-service.c, 
953         glib/examples/example-signal-emitter.c,
954         glib/examples/statemachine/statemachine-server.c:
955         Changed the RequestName flags to the new system
956
957         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
958         regression test suite for testing various states of the new
959         queueing system
960         
961 2005-11-15  Robert McQueen  <robot101@debian.org>
962
963         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
964         Taylor to add two methods, dbus_g_method_return_get_reply and
965         dbus_g_method_return_send_reply, to allow you to get the reply
966         message from a DBusGMethodInvocation, append arbitrary stuff to it,
967         and send it. The GLib bindings can't marshal a return value of
968         something like a(s) if the array is empty - ultimately they should be
969         made to heed the signature of the out arguments as the Python bindings
970         now can, but this is a workable interim solution which might have
971         other applications.
972
973 2005-11-15  Robert McQueen  <robot101@debian.org>
974
975         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
976         method to org.freedesktop.DBus to release a bus name or give up
977         waiting in the queue for it.
978
979         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
980         dbus_bus_release_name method to send the ReleaseName method calls.
981         Add constants for the return values to dbus/dbus-shared.h.
982
983         * doc/dbus-specification.xml: Document the new ReleaseName method
984         in the specification.
985
986         * python/dbus_bindings.pyx: Add a low-level python binding for the
987         release name method.
988
989         * python/exceptions.py, python/service.py: Make freeing BusName
990         objects release the name. Add a NameExistsException, and fix a
991         bug with creating UnknownMethodException.
992
993         * test/python/test-client.py: Add tests for freeing BusName
994         objects causing names to be released.
995
996 2005-11-14  Robert McQueen  <robot101@debian.org>
997
998         * python/service.py: Include the traceback in the error reply when we
999         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1000
1001 2005-11-14  David Zeuthen  <davidz@redhat.com>
1002
1003         Patch from Timo Hoenig <thoenig@suse.de>.
1004
1005         * bus/bus.c: I've recently investigated why the automatic reload
1006         of configuration files does not work as expected.
1007
1008         Currently, reloading configuration files does only work when
1009         running dbus-daemon with --nodaemon.  If we are running as daemon
1010         we're hitting a dnotify bug once we fork the process.
1011
1012         We're initializing the dnotify fds before calling fork().  Once
1013         the child process forked it does still have the fds (and they
1014         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1015         getting SIGIO as changes are made to the configuration files.
1016
1017         The attached patch moves the initialization of the dnotify fds to
1018         process_config_postinit().  This is safe for all current code
1019         paths and solves the dnotify disfunction.  If we're running
1020         dbus-daemon as daemon the fds for dnotify are now being
1021         initialized after fork() for the child process.
1022
1023         * configure.in: The current configure.in check for dnotify probes
1024         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1025         match for 'xlinux', too. Additionally I have adapted the configure
1026         option's style to match with the others.
1027
1028 2005-11-14  Robert McQueen  <robot101@debian.org>
1029
1030         * python/decorators.py, python/service.py: Add a new argument to the
1031         dbus.service.method decorator called sender_keyword, which if set,
1032         specifies the name of an argument which will be provided the bus
1033         name of the method caller.
1034
1035         * test/python/test-client.py, test/python/test-service.py: Add a
1036         method and test to check the sender_keyword functionality.
1037
1038 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1039
1040         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1041         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1042         Simons <sjoerd at luon.net>)
1043
1044         * AUTHORS: Add Robert McQueen for his work on the Python
1045         Bindings and other parts of D-Bus
1046
1047 2005-11-07  Robert McQueen  <robot101@debian.org>
1048
1049         * python/decorators.py: Change emit_signal function to use the
1050         signature annotation of the signal when marhsalling the arguments from
1051         the service. Fix a bug where the code checking signature length
1052         against argument length referenced the wrong variable.
1053
1054         * python/introspect_parser.py: Avoid adding the type signature of
1055         signal arguments to any methods which occur after them in the
1056         introspection data (!) by making the parser a little more careful
1057         about its current state.
1058
1059         * python/service.py: Remove debug prints from last commit (again :D).
1060
1061         * test/python/test-client.py, test/python/test-service.py: Add test
1062         signals with signature decorators to test the strict marshalling code
1063         gives errors at the right time. Could do with checking the signals
1064         actually get emitted too, given that the test does nothing with
1065         signals at the moment...
1066
1067 2005-11-07  Robert McQueen  <robot101@debian.org>
1068
1069         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1070         instances to stop madness of creating new instances representing
1071         the same bus connection all the time, rendering any tracking of
1072         match rules and bus names quite meaningless. Caught a bug where
1073         the private argument to SessionBus() and friends was being passed
1074         in as use_default_mainloop by mistake. Still some problems with
1075         multiple dbus_binding.Connection instances representing the same
1076         low-level connection (eg when you use both SessionBus() and
1077         StarterBus() in same process), but it's a lot better now than it
1078         was.
1079
1080         * python/dbus_bindings.pyx: Add constants with the return values
1081         for bus_request_name().
1082
1083         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1084         and retrieve the same instances for the same name, so deletion can be
1085         done with refcounting. Also now throws some kind of error if you
1086         don't actually get the name you requested, unlike previously...
1087
1088         * test/python/test-client.py: Add tests for instance caching of buses
1089         and bus name objects.
1090
1091 2005-11-04  Robert McQueen  <robot101@debian.org>
1092
1093         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1094         marshalling of boolean values. Add some booleans to the values in
1095         the test client.
1096
1097         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1098         argument to the dbus.service.method decorator, which allows you to
1099         name arguments to take two callback functions for replying with
1100         return values or an exception.
1101
1102         * test/python/test-client.py, test/python/test-service.py: Add test
1103         case using asynchronous method reply functions, both return values and
1104         errors, and from within both the function itself and from a mainloop
1105         callback.
1106
1107         * python/decorators.py, python/service.py: Perform checking that the
1108         number of method/signal arguments matches the number of types in the
1109         signature at class loading time, not when you first introspect the
1110         class.
1111
1112         * python/service.py: Remove debug print left by the last commit.
1113
1114 2005-11-03  Robert McQueen  <robot101@debian.org>
1115
1116         * python/service.py: Heavy refactoring of method invocation, with
1117         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1118         in favour of a new _message_cb that uses seperate functions for
1119         looking up the method to call, marshalling the return values, and
1120         sending exceptions as errors, and is easier to follow as a
1121         consequence.  Fixes some corner cases about returning things that
1122         don't match your declared out_signature, allows exceptions to define
1123         _dbus_error_name and have it be sent over the bus as the error name,
1124         and paves the way for cool stuff like heeding the message no reply
1125         flag, asynchronous method implementations, informing the method of the
1126         sender, and including backtraces in the error messages.
1127
1128         * test/python/test-client.py: Catch and print exceptions thrown in the
1129         async callback tests, rather than passing them to the low-level
1130         bindings to be ignored in a noisy and frustrating manner.
1131
1132 2005-11-03  Robert McQueen  <robot101@debian.org>
1133
1134         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1135         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1136         tweak others to be consistent.
1137
1138         * test/python/test-client.py: Tweak output of testInheritance.
1139
1140 2005-10-29  Robert McQueen  <robot101@debian.org>
1141
1142         * python/service.py: Major changes to allow multiple inheritance
1143         from classes that define D-Bus interfaces:
1144         
1145          1. Create a new Interface class which is the parent class of
1146             Object, and make the ObjectType metaclass into InterfaceType.
1147         
1148          2. Patch written with Rob Taylor to replace use of method_vtable
1149             with code that walks the class's __MRO__ (method resolution order)
1150             to behave like Python does when invoking methods and allow
1151             overriding as you'd expect. Code is quite tricky because
1152             we have to find two methods, the one to invoke which has the
1153             right name and isn't decorated with the /wrong/ interface,
1154             and the one to pick up the signatures from which is decorated
1155             with the right interface.
1156         
1157             The same caveats apply as to normal multiple inheritance -
1158             this has undefined behaviour if you try and inherit from two
1159             classes that define a method with the same name but are
1160             decorated with different interfaces. You should decorate
1161             your overriding method with the interface you want.
1162         
1163          3. Replace grungy introspection XML generation code in the metaclass
1164             with dictionaries that cope correctly with multiple inheritance
1165             and the overriding of methods. This also uses the signature
1166             decorations to provide correct introspection data, including
1167             the debut appearance of the types of your return values. :D
1168
1169         * test/python/test-client.py, test/python/test-service.py: Add a test
1170         case to try invoking an method that overrides one inherited from a
1171         D-Bus interface class.
1172
1173 2005-10-29  Robert McQueen  <robot101@debian.org>
1174
1175         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1176         Add checking for the end of struct character when marshalling a
1177         struct in MessageIter.append_strict.
1178
1179         * python/examples/example-service.py,
1180         python/examples/gconf-proxy-service.py,
1181         python/examples/gconf-proxy-service2.py: Update to use gobject
1182         mainloop directly rather than appearing to depend on gtk.
1183
1184         * python/test/test-client.py, python/test/test-server.py: Remove
1185         obsolete and broken test scripts for old bindings. We have up to date
1186         and working tests in test/python/.
1187
1188 2005-10-29  Robert McQueen  <robot101@debian.org>
1189
1190         * python/decorators.py: Add optional arguments to the method and
1191         signal decorators to allow you to specify the signature of arguments
1192         and return values. Preserve the doc strings of signal functions in the
1193         decorated version, for pydoc and friends.
1194
1195         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1196         parse_signature_block function with an iterable dbus.Signature()
1197         type. Fix a bug in MessageIter.append_strict where you could append
1198         anything by claiming it was a string.
1199
1200         * python/service.py: Use the out_signature decoration on methods to
1201         marshal return values, meaning you no longer require dbus.Array()
1202         or dbus.Dictionary() to indicate the type when returning empty
1203         arrays or dictionaries. Fix a bug where exceptions which are defined
1204         in __main__ are not turned into error replies.
1205
1206         * test/python/test-client.py, test/python/test-service.py: Add test
1207         for correct marshalling of return values according to out_signature.
1208         Fix a bug in the async call test where the error_handler is missing a
1209         self argument.
1210
1211 2005-10-29  Robert McQueen  <robot101@debian.org>
1212
1213         * glib/Makefile.am, glib/examples/Makefile.am,
1214         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1215         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1216
1217         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1218
1219         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1220         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1221         the command line.
1222
1223 2005-10-27  Ross Burton  <ross@openedhand.com>
1224
1225         * dbus/dbus-marshal-header.c:
1226         Remove dead code.
1227
1228         * glib/dbus-gobject.c:
1229         Stop compiler warning.
1230
1231 2005-10-25  Ross Burton  <ross@openedhand.com>
1232
1233         * dbus/dbus-auth.c:
1234         * dbus/dbus-server-unix.c:
1235         * dbus/dbus-transport-unix.c:
1236         * glib/dbus-gmain.c:
1237         * glib/dbus-gobject.c:
1238         Add some const keywords.
1239
1240 2005-10-25  Ross Burton  <ross@openedhand.com>
1241
1242         * doc/dbus-specification.xml:
1243         Document the NoReply annotation.
1244
1245         * glib/dbus-binding-tool-glib.h:
1246         * glib/dbus-binding-tool-glib.c:
1247         Respect the NoReply annotation.
1248
1249 2005-10-24  Robert McQueen <robot101@debian.org>
1250
1251         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1252         derive from unicode instead of str, and encode/decode UTF-8 when
1253         marshalling/unmarshalling bus messages
1254
1255         * python/introspect_parser.py: encode introspection data as UTF-8
1256         before passing the buffer into libxml2
1257
1258         * test/python/test-client.py: add unicode test strings
1259
1260         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1261         ignore generated python test files
1262
1263 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1264
1265         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1266         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1267         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1268
1269         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1270         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1271         when constructing struct signatures
1272
1273         * python/_dbus.py (Bus): handle private connections using the
1274         private keyword in the constructor. defaults to private=False
1275         (Bus::close): new method to close a connection to the bus
1276
1277         * python/dbus_bindings.pyx (Connection::close): renamed method
1278         was previously called disconnect
1279         (bus_get): now supports getting a private connection
1280
1281         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1282         keyword is set to True.  if it is, execute the method without waiting
1283         for a reply
1284         (ProxyObject::_introspect_execute_queue): new method for executing
1285         all the pending methods that were waiting for the introspect to
1286         finish.  this is called when introspect either succeeds or fails
1287         (ProxyObject::_introspect_error_handler): call queued methods
1288
1289 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1290
1291         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1292         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1293
1294         * python/service.py (Object::_message_cb): handle exceptions correctly
1295         by sending them over the wire to the calling app.  This makes sure
1296         the client returns immediately instead of waiting the 15 seconds to
1297         timeout.
1298
1299         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1300         Add a test to benchmark how long it takes to introspect a service and 
1301         call a method which returns a large element (pretty fast)
1302
1303         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1304         method which pushes a lot of data
1305
1306 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1307
1308         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1309         reclaim memory outside of the loop and use del istead of just setting
1310         the key to None
1311
1312 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1313
1314         * python/service.py (ObjectType::_reflect_on_signal): Always close
1315         signal tag even when there are no arguments
1316
1317 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1318
1319         * configure.in: Set mono, mono-docs and Qt3 to default
1320         to no instead of auto when building.  These bindings do not
1321         have full time maintainers and will not be supported for the
1322         1.0 release.
1323
1324 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1325
1326         patches from Michael Krivoruchko <misha at sun.com>: 
1327         
1328         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1329         _dbus_connection_message_sent, 
1330         _dbus_connection_send_preallocated_unlocked_no_update, 
1331         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1332         is NULL when calling _dbus_verbose
1333
1334         * configure.in: check for functions getpeerucred and getpeereid
1335
1336         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1337         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1338         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1339         Patch was only tested on Solaris 10 x86 so it might be issues
1340         with other platforms (i.e. BSDs and MacOSX)
1341         
1342
1343 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1344
1345         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1346         instead of marshal basic so we can handle recursive types in a variant
1347
1348         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1349         in variants
1350
1351         * test/glib/test-service-glib.c, test-service-glib.xml
1352         (my_object_echo_variant [EchoVariant], 
1353         my_object_process_variant_of_array_of_ints123
1354         [ProcessVariantOfArrayOfInts123]): 
1355         Add two test methods
1356
1357         * python/introspect_parser.py: New module for parsing introspect
1358         data.
1359
1360         * python/dbus_bindings.pyx:
1361         (various places): when throwing errors fix to use errormsg instead 
1362         of message local variable because Pyrex can get confused with other 
1363         message variables (initial patch by Robert McQueen 
1364         <robert.mcqueen at collabora.co.uk>)
1365         (MessageIter::parse_signature_block): new method for getting the next
1366         block in a signiture.
1367         (MessageIter::append_strict): new method for appending values strictly
1368         using the passed in signature instead of guessing at the type
1369         (MessageItter:: append_dict, append_struct, append_array): use 
1370         signatures to marshal children if the signature is available
1371         
1372         * python/exceptions.py (IntrospectionParserException): new exception
1373
1374         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1375         introspected signatures if available, else we fall back to the
1376         old way of doing things.
1377         (ProxyObject::_introspect_reply_handler ): parse introspection data
1378         
1379         * python/service.py (ObjectType::_reflect_on_method): Properly
1380         terminate <method> if there are no args in the reflection data
1381
1382         * test/python/test-client.py: add tests for talking with the GLib
1383         test server.  This gives us better coverage for introspection since
1384         python to python will always generate arguments as variants.  It also
1385         allows us to test the robustness of the GLib bindings and interlanguage
1386         communications.
1387
1388         
1389 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1390
1391         * bus/driver.c (bus_driver_handle_introspect): Add signals
1392         to the introspect data. (patch from Daniel P. Berrange 
1393         <dan at berrange.com>)
1394
1395         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1396         
1397         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1398         _dbus_connection_run_builtin_filters): Changed these to
1399         be unlock_no_update functions and call 
1400         _dbus_connection_send_unlocked_no_update instead of
1401         dbus_connection_send to avoid locking errors.
1402         
1403         * doc/TODO: Removed the make Ping test TODO
1404         
1405 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1406
1407         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1408         We now copy the message from a DBusError and then free 
1409         the error object befor throwing the error
1410
1411         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1412         DBusBindingOutputMode enum which was causing a warning.
1413         #include <time.h> so using time_t is explicitly defined
1414
1415 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1416
1417         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1418         - dbus/dbus-bus.c
1419         (internal_bus_get): new method that take over the heavy lifting
1420         of dbus_bus_get and adds the ability to get a private connection
1421         to the bus
1422         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1423         interface as in previous versions
1424         (dbus_bus_get_private): new method that is a wrapper to 
1425         internal_bus_get to get a private connection to the bus
1426
1427         - dbus/dbus-bus.h
1428         (dbus_bus_get_private): add as a public libdbus interface
1429
1430         - dbus-1.pc.in: output system_bus_default_address and 
1431         sysconfdir variables so apps can use them when compiling
1432
1433 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1434         * dbus/qt: New Qt bindings
1435
1436 2005-09-12  Waldo Bastian  <bastian@kde.org>
1437
1438         * dbus/dbus-marshal-validate.c,
1439         doc/dbus-specification.xml, test/Makefile.am,
1440         test/test-names.c: allow hyphens in bus names.
1441
1442 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1443
1444         * test/data/auth/fallback.auth-script: we don't
1445         retry the EXTERNAL method when we know its going
1446         to fail anymore.
1447
1448 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1449
1450         * dbus/dbus-connection-internal.h: rename
1451         (add|remove|toggle)_(watch|timeout) to unlocked()
1452         
1453         * dbus/dbus-connection.c: ditto.
1454         
1455         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1456         Update some callers for the renaming.
1457
1458 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1459
1460         * dbus/dbus-auth.c: (record_mechanisms): don't
1461         retry the first auth mechanism because we know
1462         we're just going to get rejected again.
1463         
1464         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1465         Fix thinko ... and what a nasty little bugger to
1466         track down you were ...
1467
1468         * dbus/dbus-connection.c:
1469         (_dbus_connection_add_watch),
1470         (_dbus_connection_remove_watch): add note about
1471         these needing the connection to be locked.
1472         (_dbus_connection_get_dispatch_status_unlocked):
1473         set status to DATA_REMAINS when we queue the
1474         disconnected message.
1475         
1476         * bus/dispatch.c:
1477         (bus_dispatch): fix warning.
1478         (check_existent_service_no_auto_start):
1479         Expect ChildSignaled error too.
1480         (check_existent_hello_from_self): fix another
1481         couple of warnings.
1482         
1483 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1484
1485         Patches from James Willcox <snorp@snorp.net>
1486
1487         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1488
1489         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1490         support array "out" parameters.
1491
1492         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1493         for 16-bit int support.
1494
1495 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1496
1497         * Released 0.50
1498
1499         * Patch from Steve Grubb:
1500         - bus/activation.c (bus_activation_service_reload_test): clean up
1501         some indentation
1502         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1503         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1504         buffer overflows in the test suite.  This is non critical because
1505         it can not be exploited and this code is only run when doing a 
1506         make check.
1507
1508         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1509         - configure.in: Don't check and link against kdecore, only qt headers
1510         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1511         - gcj/org/freedesktop/dbus/Makefile.am:
1512         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1513         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1514         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1515         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1516         - tools/Makefile.am: Add platform extentions to binaries 
1517         (i.e. .exe on windows)
1518
1519         * configure.in: 
1520         - Make it so if no suitable version of python is found we only 
1521         disable building python instead of exiting the configure script
1522         - Require version 2.4 of glib for glib bindings
1523         - Up version to 0.50
1524
1525         * python/__init__.py: Sync version with libdbus to (0,50,0)
1526         
1527 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1528
1529         * dbus/dbus-object-tree.c (find_subtree_recurse):
1530         a couple of optimizations (bug #710):
1531         - do a binary search in the tree
1532         - insert a new child at the right place directly, no need for
1533           qsort anymore
1534         - do the "double alloc" thing when allocating children
1535
1536 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1537
1538         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1539
1540         * python/dbus_bindings.pyx: Memory management foo
1541         (global): remove hacky _user_data_references global list
1542         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1543         tuples. Unref user_data
1544         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1545         (Connection::__del__): Remove and replace with __dealloc__ method
1546         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1547         to keep tuple from being deallocated instead of the global var hack
1548         (Connection::register_object_path): Stuff user_data into a tuple.
1549         Use Py_INCREF to keep tuple from being deallocated instead of the 
1550         global var hack
1551         (Connection::register_fallback): Stuff user_data into a tuple.
1552         Use Py_INCREF to keep tuple from being deallocated instead of the 
1553         global var hack
1554         (GIL_safe_pending_call_notification): Don't unref the message
1555         because it gets unreffed when going out of scope.  Py_XDECREF
1556         the user_data
1557         (PendingCall::__del__): Remove and replace with __dealloc__ method
1558         (PendingCall::set_notify): ref the pending call because we will
1559         need it to stick around for when the notify callback gets called
1560         (Message::__del__): Remove and replace with __dealloc__ method
1561
1562         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1563         gthreads_init to match up with the dbus call
1564
1565         * python/glib.py (init_threads): Changed to threads_init to match
1566         up with gobject.threads_init().  init_threads is kept for backwards
1567         compat but will most likely be deprecated in the future
1568
1569         * test/python/test-client.py: 
1570         - revamp to use Python's unittest functionality
1571         - add async call tests
1572         - setup threads in glib and dbus so we make sure locks are working
1573         
1574 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1575
1576         * python/dbus_bindings.pyx 
1577         (_pending_call_notification, cunregister_function_handler, 
1578         cmessage_function_handler): All callback functions have been rearranged 
1579         to workaround a bug in Pyrex when working with the GIL which is Python's 
1580         global lock when dealing with threads.  They have been split into
1581         a wrapper function (which assumes the name of the old function) and
1582         a _GIL_safe_<function name> function which contains the functionality
1583         of the old function.  This ensures that Pyrex does not write code
1584         the lock is released.
1585         
1586
1587 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1588
1589         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1590         GIL global lock when calling back into Python
1591
1592 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1593
1594         * Release 0.36.2
1595
1596         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1597
1598         * bus/policy.c (bus_policy_allow_user): change default "user is
1599         allowed" to be "user has same uid as the bus itself"; any
1600         allow/deny rules will override.
1601
1602         * bus/session.conf.in: don't allow all users, since now by default
1603         the user that ran the bus can connect.
1604
1605 2005-08-26  Colin Walters  <walters@verbum.org>
1606
1607         * tools/dbus-print-message.c (print_message): Flush stdout
1608         after printing a message, so that redirecting to a file, then
1609         hitting Ctrl-C works.
1610
1611 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1612
1613         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1614         (EmptyMessage): new class that subclasses Message.  This is a workaround
1615         to a Pyrex bug that fails to call __del__ when the Message object goes out
1616         of scope.  For some reason subclassing Message fixes this bug
1617         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1618         - s/Message(_create=0)/EmptyMessage everywhere else
1619         
1620         * test/python/test-{server|client}.py: add the python/.libs directory
1621         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1622         get picked up from the system
1623
1624 2005-08-25  Colin Walters  <walters@verbum.org>
1625
1626         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1627         to Ryan Lortie for the suggestion.
1628
1629 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1630
1631         * test/python: Add python regression test
1632
1633         * configure.in: Add test/python/Makefile
1634
1635         * test/Makefile.am: Add the python directory to SUBDIRS
1636
1637 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1638
1639         * Release 0.36.1
1640
1641         * python/_dbus.py: 
1642         (Interface::connect_to_signal): propigate keywords for match on args
1643         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1644
1645         * python/proxies.py (ProxyObject::connect_to_signal):
1646         propigate keywords for match on args
1647
1648         * Makefile.am: point everything to pyexecdir since python borks
1649         on multilib
1650
1651 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1652
1653         * Release 0.36
1654
1655 2005-08-23  Colin Walters  <walters@verbum.org>
1656
1657         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1658
1659 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1660
1661         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1662         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1663         of defining DBusConnection ourselves.
1664
1665 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1666
1667         * python/dbus.pth: New path file to fix up problems when installing
1668         c libraries to lib64 and python files to lib.
1669
1670         * python/Makefile.am: install dbus.pth in the correct spot
1671
1672 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1673         * ChangeLog: clean up my last entry a bit
1674
1675         * doc/introspect.xsl: New stylesheet for converting introspection data
1676         into browser renderable xhtml. Contributed by Lennart Poettering.
1677
1678         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1679         Poettering.
1680
1681         * doc/dbus-tutorial.xml: 
1682         - Add Colin Walter to the Authors section for authoring the GLib
1683         section
1684         - Add descriptions of the new signature and type functionality
1685         in the Python complex type mapping section
1686         - Add a sidenote on the new args matching functionality in 
1687         the Python bindings
1688         - Fixed up some of the examples to use the gobject.MainLoop
1689         instead of gtk.main
1690         
1691         * python/_dbus.py:
1692         (Bus::_create_args_dict): New. Converts a hash of arg matches
1693         to a more useable format
1694         (Bus::add_signal_receiver): add a **keywords parameter for catching
1695         arg match parameters
1696         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1697         arg match parameters
1698         
1699         * python/matchrules.py:
1700         (MatchTree::exec_matches): Check for arg matches
1701         (SignalMatchRule::add_args_match): New method
1702         (SignalMatchRule::execute): Added args_list parameter as an optimization
1703         so we don't have to marshal the args more than once
1704         (SignalMatchRule::match_args_from_list): New method that checks to see
1705         if the rule's arg matches match an argument list.  Only arguments
1706         set in the rule are checked.
1707         (SignalMatchRule::match_args_from_rule): New method that checks to see
1708         if the rule's arg matches match another rule's.  All args have to match
1709         in order for this method to return true.  If either rule has more args
1710         then it is not a match.
1711         (SignalMatchRule::is_match): Add args match
1712         (SignalMatchRule::repr): Add args to the final output if they exist
1713
1714 2005-08-17  Ross Burton  <ross@burtonini.com>
1715
1716         * glib/dbus-gproxy.c:
1717         (dbus_g_proxy_call_no_reply): unref the message once sent.
1718         (dbus_g_proxy_call): protect against NULL proxy.
1719
1720 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1721
1722         * python/__init__.py: Version updated (0, 43, 0)
1723         
1724         * python/dbus_bindings.pyx: 
1725         - Fixed type objects to have self passed into __init__
1726         - Added the Variant type
1727         - Add the ability to specify types or signatures for Array, Variant 
1728         and Dictionary
1729         (Connection::send_with_reply_handlers): return a PendingCall object
1730         (_pending_call_notification): handle the case when an error is returned 
1731         without an error message in the body
1732         (MessageIter::get_boolean): return True or False instead of an integer
1733         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1734         and add checks for objects with embeded signatures or types (Array, 
1735         Variant and Dictionary)
1736         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1737         (MessageIter::append_dict): handle embeded types or signatures
1738         (MessageIter::append_array): handle embeded types or signatures
1739         (MessageIter::append_variant): new method
1740         
1741         * python/proxies.py:
1742         (DeferedMethod): New. Dummy executable object used when queuing calls 
1743         blocking on introspection data
1744         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1745         or shorter timeouts for method calls
1746         (ProxyObject): Add first pass at an introspection state machine
1747         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1748         introspection. 
1749         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1750         the usual mechanisms for sending messages.  This is to avoid a deadlock
1751         where the Intospect call would be queued waiting for the Introspect 
1752         call to finish ;-)
1753         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1754         when introspection returns with no error
1755         (ProxyObject::_introspect_error_handler): New.  This method is called 
1756         when introspection encounters an error
1757         (ProxyObject::__getattr__): Code to handle different introspection 
1758         states.  Queue async calls or block blocking calls if we are 
1759         introspecting.  Pass through as normal if we are not or are done with 
1760         introspecting.
1761         
1762         * python/service.py: Import signal and method from decorators.py
1763
1764         * python/types.py: Add Variant type
1765
1766 2005-08-16  Colin Walters  <walters@verbum.org>
1767
1768         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1769         DBusError message is NULL.
1770
1771 2005-08-09  Havoc Pennington  <hp@redhat.com>
1772
1773         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1774         malloc'd copy of the name parameter
1775
1776 2005-08-09  Havoc Pennington  <hp@redhat.com>
1777
1778         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1779         warning if the reply serial is set to 0
1780
1781 2005-08-04  Colin Walters  <walters@verbum.org>
1782
1783         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1784         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1785         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1786         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1787         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1788         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1789         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1790         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1791         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1792         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1793         
1794         Prefix name with _ to ensure they're not exported.  All callers
1795         updated.
1796
1797         * glib/dbus-gvalue.c (typecode_to_gtype)
1798         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1799         (signature_iter_to_g_type_dict)
1800         (signature_iter_to_g_type_array)
1801         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1802         (dbus_gtypes_from_arg_signature):
1803         Move to dbus-gsignature.c.
1804
1805         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1806         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1807         (dbus_binding_tool_output_glib_client): Ditto.
1808
1809         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1810         and dbus-gsignature.h
1811
1812         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1813         unused variable.
1814
1815 2005-08-03  Colin Walters  <walters@verbum.org>
1816
1817         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1818         catch any incompatible changes accidentally made.
1819
1820 2005-08-03  Havoc Pennington  <hp@redhat.com>
1821
1822         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1823         typo, from Julien Puydt
1824
1825         * bus/connection.c (bus_connection_disconnected): we were always
1826         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1827
1828 2005-08-01  Colin Walters  <walters@verbum.org>
1829
1830         Patch from Joe Markus Clarke:   
1831         
1832         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1833         use-after-free.
1834
1835 2005-08-01  Colin Walters  <walters@verbum.org>
1836         
1837         Patch from Joe Markus Clarke:   
1838         
1839         * tools/dbus-send.c (main): 
1840         
1841         Don't use C99 style initializers (bug #3933).
1842         
1843 2005-08-01  Colin Walters  <walters@verbum.org>
1844
1845         Patch from Joe Markus Clarke:   
1846
1847         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1848         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1849         * glib/dbus-gobject.c (write_interface):
1850
1851         Don't use C99 style initializers (bug #3933).
1852
1853 2005-07-31  Havoc Pennington  <hp@redhat.com>
1854
1855         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1856         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1857
1858 2005-07-30  Havoc Pennington  <hp@redhat.com>
1859
1860         * fix a bunch of Doxygen warnings and mistakes
1861
1862 2005-07-30  Havoc Pennington  <hp@redhat.com>
1863
1864         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1865         DBUS_BUILD_TESTS since it's now used in production code
1866
1867 2005-07-29  Havoc Pennington  <hp@redhat.com>
1868
1869         * test/glib/test-profile.c (write_junk): initialize the junk
1870         buffer so valgrind doesn't have a breakdown
1871
1872 2005-07-29  Havoc Pennington  <hp@redhat.com>
1873
1874         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1875         (match_rule_matches): remove unused arg
1876         (test_matching): add tests for match_rule_matches()
1877
1878         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1879         do arg0='foo' arg5='bar' in the match rules
1880         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1881
1882         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1883
1884 2005-07-29  Ross Burton  <ross@openedhand.com>
1885
1886         * dbus/dbus-connection.c:
1887         Don't create a DBusCondVar which is never used.
1888
1889 2005-07-27  Ross Burton  <ross@openedhand.com>
1890
1891         * dbus/dbus-message.c:
1892         Reduce the size of the maximum cached message to 10K.
1893
1894 2005-07-25  Ross Burton  <ross@openedhand.com>
1895
1896         * glib/dbus-gproxy.c:
1897         Remove matches when all proxies are unregistered.
1898
1899 2005-07-24  Colin Walters  <walters@verbum.org>
1900
1901         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1902         typedata; recursive arrays won't have it.
1903
1904         * test/glib/test-dbus-glib.c:
1905         * test/glib/test-service-glib.c:
1906         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1907         
1908 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1909
1910         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1911         proxies.py, service.py: Cleanup of code after running it through the
1912         pyflakes code checker mostly dealing with undefined names.  
1913         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1914
1915 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1916
1917         * NEWS: Update to 0.35.2
1918
1919 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1920
1921         * python/_dbus.py: Remove import of the dbus.services
1922         module as it no longer exists (patch from Dimitur Kirov)
1923
1924         * python/service.py (Object::__init__): Fixed typo
1925         s/name/bus_name (patch from Dimitur Kirov)
1926
1927         * python/examples/example-signal-emitter.py: import dbus.glib
1928         to get the main loop and use glib mainloop instead of gtk so
1929         X doesn't have to be running.
1930
1931         * python/examples/example-signal-recipient.py: import dbus.glib
1932         to get the main loop and use glib mainloop instead of gtk so
1933         X doesn't have to be running. Import the decorators module
1934         directly.
1935
1936         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1937         didn't pick up on but are needed to build
1938
1939         * configure.in: upped version to 0.35.2
1940
1941         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1942         added Colin Walters' SELinux API rename patch from head 
1943         s/unix sercurity context/selinux security context/
1944
1945 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1946
1947         * python/Makefile.am: dbus_binding.pxd.in should be included 
1948         in EXTRA_DIST not dbus_binding.pxd
1949         fix up $(srcdir) hopefully for the last time
1950
1951         * NEWS: Update to 0.35.1
1952
1953 2005-07-16  Colin Walters  <walters@verbum.org>
1954
1955         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1956         from bus_driver_handle_get_connection_unix_security_context.  Update for
1957         error usage.
1958         (message_handlers): Update for renames.
1959
1960         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1961         _dbus_string_init failure correctly.
1962         (bus_selinux_append_context): Convert SID to context.  Append it
1963         as a byte array.
1964         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1965         hasn't been called.
1966
1967         * bus/selinux.h: Update prototype.
1968
1969         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1970         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1971
1972 2005-07-15  Colin Walters  <walters@verbum.org>
1973
1974         * doc/TODO: Add note about convenience wrappers.
1975
1976 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1977
1978         * NEWS: Update to 0.35
1979
1980 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1981
1982         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1983         so distcheck doesn't fail
1984
1985         * glib/examples/Makefile.am: Add example-service.xml and 
1986         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1987
1988         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1989         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1990
1991         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1992         compiler looks in the right places during distcheck
1993
1994 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1995
1996         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1997         to fail
1998
1999 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2000
2001         * python/examples/example-service.py,
2002         python/examples/example-signal-emitter.py: Fixed up examples
2003         for API changes
2004
2005 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2006
2007         * python/__init__.py: Upped to version (0,42,0) because of
2008         the API change
2009
2010 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2011
2012         * ChangeLog: fix date in last entry
2013
2014         * configure.in, bus/system.conf.in: add the ability to configure 
2015         the system bus user at compiletime with the --with-dbus-user flag
2016         (patch from Kristof Vansant)
2017
2018 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2019
2020         * bus/dispatch.c, test/test-service.c: Add testcase
2021         for sending messages to oneself (TODO item).
2022
2023         * python/service.py (class Object): Swap ordering of bus_name 
2024         and object_path parameters to better support inheritance.
2025
2026         * doc/dbus-tutorial.xml: change Python docs to reflect change
2027         in parameter ordering and fix the inheritance section.
2028
2029         * doc/TODO: remove sending message to oneself TODO item
2030
2031 2005-07-15  Ross Burton  <ross@openedhand.com>
2032
2033         * glib/dbus-gproxy.c:
2034         Fix a leak when calling methods via the proxy.
2035
2036 2005-07-15  Colin Walters  <walters@verbum.org>
2037
2038         * bus/selinux.c (bus_selinux_append_context): Wrap in
2039         HAVE_SELINUX.
2040
2041 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2042
2043         * python/_dbus.py (Bus::remove_signal_receiver):
2044         don't add a callback to the match if none has been passed in
2045         
2046         * python/matchrules.py (SignalMatchTree::remove): if the rule
2047         being matched does not have a callback treat it as a wildcard
2048         fix matching logic
2049
2050         * doc/dbus-tutorial.xml: Add Python tutorial
2051
2052 2005-07-14  Colin Walters  <walters@verbum.org>
2053
2054         * bus/driver.c
2055         (bus_driver_handle_get_connection_unix_security_context): New function.
2056         (message_handlers): Add.
2057
2058         * bus/selinux.c (bus_selinux_append_context): New function; appends
2059         security context to message.
2060
2061         * bus/selinux.h: Prototype.
2062
2063         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2064
2065 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2066
2067         * bus/activation.c: clean up all tabs to be 8 spaces 
2068         (bus_activation_activate_service): make sure we clean up
2069         if activation fails
2070
2071         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2072         (check_shell_fail_service_auto_start): New function
2073         tests to make sure we get fail properly when trying to auto start a service
2074         with a faulty command line
2075         (check_shell_service_success_auto_start): New function tests to make sure
2076         auto started services get the arguments on the command line
2077
2078         * test/test-shell-service.c: Added service for testing auto-starting with 
2079         command line arguments
2080
2081         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2082         test/data/valid-service-files/debug-shell-echo-success.service.in:
2083         Added service files for testing auto-starting with command line arguments
2084
2085         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2086
2087 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2088
2089         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2090         
2091         * dbus/Makefile.am: added new files to build.
2092
2093         * bus/activation.c (bus_activation_activate_service): support
2094         activation commands with parameters.
2095
2096         * test/shell-test.c: added test program for the shell parsing
2097         code.
2098
2099 2005-07-13  David Zeuthen  <davidz@redhat.com>
2100
2101         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2102         64 bit signed and unsigned parameters
2103
2104 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2105
2106         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2107
2108         * python/service.py (class Name): renamed BusName to make it clearer
2109         what the object is for (a name on the bus)
2110
2111         * python/examples/example-service.py,
2112         python/examples/example-signal-emitter.py: change the Name object to
2113         BusName
2114
2115 2005-07-12  Colin Walters  <walters@verbum.org>
2116
2117         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2118
2119         * tools/dbus-launch.c: Include sys/select.h.
2120
2121 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2122         * python/dbus_bindings.pyx.in: removed
2123
2124         * python/dbus_bindings.pyx: Added.
2125         - Fixed some memleaks (patch from 
2126         Sean Meiners <sean.meiners@linspireinc.com>)
2127         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2128         own pxd file (Pyrex definition)
2129         - Broke out glib dependancies into its own pyx module
2130         
2131         * python/dbus_bindings.pdx: Added.
2132         - Defines C class Connection for exporting to other modules
2133
2134         * python/dbus_glib_bindings.pyx: Added.
2135         - New module to handle lowlevel dbus-glib mainloop integration
2136
2137         * python/glib.py: Added.
2138         - Registers the glib mainloop when you import this module
2139
2140         * python/services.py: Removed (renamed to service.py)
2141         
2142         * python/service.py: Added.
2143         - (class Server): renamed Name
2144
2145         * python/__init__.py: Bump ro version (0,41,0)
2146         -don't import the decorators or service module
2147         by default.  These now reside in the dbus.service namespace
2148
2149         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2150         setup function on creation 
2151
2152         * python/examples/example-service.py,
2153         python/examples/example-signal-emitter.py: update examples
2154
2155         * python/examples/gconf-proxy-service.py,
2156         python/examples/gconf-proxy-service2.py: TODO fix these up
2157
2158         * doc/TODO: Addition
2159         - Added a Python Bindings 1.0 section
2160         - added "Add match on args or match on details to match rules"
2161
2162
2163 2005-07-12  Colin Walters  <walters@verbum.org>
2164
2165         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2166         (statemachine-glue.h): 
2167         * glib/examples/Makefile.am (example-service-glue.h) 
2168         (example-signal-emitter-glue.h): 
2169         * glib/Makefile.am (dbus-glib-error-switch.h): 
2170         Add libtool --mode=execute so we use the built library instead
2171         of any installed one.
2172
2173 2005-07-11  Colin Walters  <walters@verbum.org>
2174
2175         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2176         (dbus_g_value_types_init): Remove assertion.
2177         (dbus_g_value_get_g_type, dbus_g_value_open)
2178         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2179         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2180         functions related to DBusGValue.  Now we marshal/demarshal
2181         structures as GValueArray.
2182         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2183         structures.
2184         (signature_iter_to_g_type_array): Don't call
2185         signature_iter_to_g_type_struct.
2186         (signature_iter_to_g_type_struct): Delete.
2187         (dbus_gvalue_to_signature): Delete.
2188         (dbus_gvalue_to_signature): New function with same name as other
2189         one; we can convert structures to signatures.
2190         (demarshal_valuearray): New function.
2191         (get_type_demarshaller): Use it.
2192         (demarshal_recurse): Delete.
2193         (marshal_proxy): New function.
2194         (marshal_map): Warn if we can't determine signature from type.
2195         (marshal_collection_ptrarray): Ditto.
2196         (marshal_collection_array): Ditto.
2197         (get_type_marshaller): Use marshal_valuearray.
2198         (marshal_recurse): Delete.
2199         (_dbus_gvalue_test): Add some tests.
2200
2201         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2202         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2203         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2204         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2205         (dbus_g_value_free): Remove prototypes.
2206
2207         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2208         G_TYPE_VALUE_ARRAY.
2209
2210         * glib/examples/example-service.c:
2211         * glib/examples/example-client.c: Implement GetTuple.
2212
2213         * test/glib/test-dbus-glib.c:
2214         * test/glib/test-service-glib.c:
2215         * test/glib/test-service-glib.xml: Add structure tests.
2216
2217 2005-07-10  Colin Walters  <walters@verbum.org>
2218
2219         * doc/TODO: Knock off some GLib items with this patch.
2220
2221         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2222         (_dbus_gvalue_signals_error): New functions.
2223
2224         * glib/dbus-gvalue-utils.h: Prototype them.
2225
2226         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2227         and change to not output const/retval flags for input args.  All
2228         callers updated.
2229         (invoke_object_method): Refactor to handle return values.  Add
2230         some more comments in various places.  Remove debug g_print.
2231
2232         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2233
2234         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2235         Handle G_TYPE_NONE.
2236         (compute_gsignature): New function; refactored from code from
2237         compute_marshaller and compute_marshaller_name.  Enhance to
2238         handle return values and async ops more cleanly.  Update for
2239         async ops returning NONE instead of BOOLEAN.
2240         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2241         and output appropriate string.
2242         (generate_glue): Handle return value annotation.  Also don't dump
2243         constness flag for input arguments.
2244
2245         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2246         files shared between installed library and utilities.
2247         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2248         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2249         binding tool can access gtype utility functions.
2250
2251         * test/glib/test-service-glib.c: 
2252         * test/glib/test-service-glib.xml: 
2253         * test/glib/test-dbus-glib.c: Add some tests for return values.
2254
2255 2005-07-09  Colin Walters  <walters@verbum.org>
2256
2257         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2258         argument if available, not method.
2259
2260         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2261         (invoke_object_method): First, remove some redundant
2262         GValues (object_value, error_value) in favor of working on
2263         array directly.  Second, rework constness to be less buggy.
2264         Now we iterate directly over the argument metadata instead
2265         of parallel iterating over output signature and metadata.
2266
2267         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2268
2269         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2270         annotation on input args.
2271         
2272 2005-07-09  Colin Walters  <walters@verbum.org>
2273
2274         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2275         Define.
2276
2277         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2278         annotation.
2279
2280         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2281         (method_dir_signature_from_object_info): Handle arg_iterate change.
2282         (write_interface): Ditto.
2283         (lookup_object_info): Don't barf if format_version is > 0.
2284         (invoke_object_method): Handle arg constness.
2285
2286         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2287         (arg_info_new): Create.
2288         (arg_info_unref): Destroy.
2289         (arg_info_get_annotations, arg_info_get_annotation) 
2290         (arg_info_add_annotation): New functions.
2291
2292         * glib/dbus-gidl.h: Prototype them.
2293
2294         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2295         args, disallow them in properties.
2296         (parse_annotation): Handle arg annotations.
2297
2298         * test/glib/test-service-glib.xml: 
2299         * test/glib/test-service-glib.c: Update to make some methods
2300         const.
2301
2302 2005-07-08  Colin Walters  <walters@verbum.org>
2303
2304         * test/glib/test-service-glib.xml: 
2305         * test/glib/test-service-glib.c:
2306         * test/glib/test-dbus-glib.c: Test a{sv}.
2307
2308         * glib/examples/statemachine/statemachine.c:
2309         * glib/examples/statemachine/statemachine-server.c:
2310         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2311         add progress bar, etc.
2312
2313         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2314         needed anymore due to generic array/map marshalling.
2315         (dbus_g_value_types_init): Don't register basic arrays or the
2316         string/string hash.
2317         (dbus_gtype_from_signature_iter): Don't try to recurse into
2318         variants.
2319         (dbus_gtype_to_signature): Check collection/map before type
2320         metadata.
2321         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2322         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2323         generic map creation/append functions instead of hash table
2324         specifically.
2325         (get_type_demarshaller): Handle maps.
2326         (demarshal_collection): Dispatch on collection type to either
2327         demarshal_collection_ptrarray or demarshal_collection_array.
2328         (get_type_marshaller): Handle maps.
2329         (marshal_collection): Dispatch collection type to either
2330         marshal_collection_ptrarray or marshal_collection_array.
2331         (_dbus_gvalue_test): New test.
2332
2333         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2334         (hash_free_from_gtype): Use it to free GValues.
2335         (hashtable_append): New function.
2336         (ptrarray_append): Fix prototype.
2337         (slist_append): Ditto.
2338         (_dbus_gvalue_utils_test): Extend tests.
2339
2340         * glib/dbus-gtype-specialized.c
2341         (dbus_g_type_specialized_init_append): Renamed from
2342         dbus_g_type_specialized_collection_init_append.  Remove const from
2343         value, since we steal it.
2344         (dbus_g_type_specialized_map_append): New function.
2345
2346         * glib/dbus-gtype-specialized.h: Update prototypes.
2347         Add DBusGTypeSpecializedMapAppendFunc.
2348
2349         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2350         _dbus_gvalue_test.
2351         
2352         * glib/dbus-gtest.h: Prototype it.
2353
2354 2005-07-08  Ross Burton  <ross@openedhand.com>
2355
2356         * dbus/dbus-glib.h:
2357         Add DBysGAsyncData for the async bindings.
2358
2359         * glib/dbus-binding-tool-glib.c:
2360         Re-enable the async bindings.
2361
2362         * test/glib/test-dbus-glib.c:
2363         Add a test for the generated async bindings.
2364
2365 2005-07-08  Colin Walters  <walters@verbum.org>
2366
2367         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2368         connection concept.
2369         
2370 2005-07-08  Colin Walters  <walters@verbum.org>
2371         
2372         * tools/Makefile.am: Kill of print-introspect in favor of using
2373         dbus-send --print-reply=literal.
2374
2375         * test/glib/test-service-glib.xml: 
2376         * test/glib/test-service-glib.c (my_object_get_objs): New test
2377         for "ao".
2378
2379         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2380         (main): Test GetObjs.
2381
2382         * glib/examples/statemachine/Makefile.am:
2383         * glib/examples/statemachine/sm-marshal.list:
2384         * glib/examples/statemachine/statemachine-client.c:
2385         * glib/examples/statemachine/statemachine-server.c:
2386         * glib/examples/statemachine/statemachine-server.xml:
2387         * glib/examples/statemachine/statemachine.c:
2388         * glib/examples/statemachine/statemachine.h:
2389         * glib/examples/statemachine/statemachine.xml:
2390
2391         New example.
2392
2393         * glib/examples/example-service.c (main): Move invocation
2394         of dbus_g_object_type_install_info earlier, to emphasize it
2395         should only be done once.
2396
2397         * glib/examples/example-signal-emitter.c (main): Ditto.
2398
2399         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2400
2401         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2402         (dbus_gvalue_marshal): Update prototypes.
2403
2404         * glib/dbus-gvalue.c: Update all marshalling functions to take
2405         const GValue instead of GValue.
2406         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2407         types.
2408         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2409         change.
2410         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2411         Return a newly-allocated string.
2412         (demarshal_proxy, demarshal_object_path, demarshal_object)
2413         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2414         we get the wrong types from message.
2415         (get_type_demarshaller): New function, extracted from
2416         dbus_gvalue_demarshal.
2417         (demarshal_collection): New function, demarshals generic
2418         collection.
2419         (dbus_gvalue_demarshal): Just invoke result of
2420         get_type_demarshaller.  Throw error if we don't have one.
2421         (marshal_garray_basic): Abort on OOM.
2422         (get_type_marshaller): New function, extracted from
2423         dbus_gvalue_marshal.
2424         (collection_marshal_iterator, marshal_collection): New functions;
2425         implements generic marshalling for an iteratable specialized
2426         collection.
2427         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2428
2429         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2430         G_TYPE_STRING.
2431         (ptrarray_value_from_gvalue): Ditto.
2432         (ptrarray_append, ptrarray_free): New functions.
2433         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2434         (slist_append, slist_end_append, slist_free): New functions.
2435         (dbus_g_type_specialized_builtins_init): Add append fuctions
2436         for GPtrArray and GSList.  Register GSList.
2437         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2438
2439         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2440         New.
2441         (dbus_g_type_specialized_collection_init_append)
2442         (dbus_g_type_specialized_collection_append)
2443         (dbus_g_type_specialized_collection_end_append): Prototype.
2444         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2445         end_append_func.
2446
2447         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2448         (dbus_g_type_specialized_collection_append) 
2449         (dbus_g_type_specialized_collection_end_append): New functions.
2450         (dbus_g_type_map_value_iterate): Take const GValue.
2451         (dbus_g_type_collection_value_iterate): Ditto.
2452
2453         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2454         _dbus_gvalue_utils_test.
2455         
2456         * glib/dbus-gtest.h: Prototype it.
2457
2458         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2459         using uninitialized owner_list.
2460         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2461         public API.
2462         (dbus_g_proxy_end_call_internal): Update to use error set
2463         from dbus_gvalue_demarshal instead of setting it here.
2464         (dbus_g_proxy_begin_call): Move return_if_fail here.
2465
2466         * glib/dbus-gobject.c (write_interface): Update for
2467         dbus_gtype_to_signature returning new string.
2468
2469         * configure.in: Add glib/examples/statemachine.
2470
2471 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2472
2473         * configure.in: Add a configure option, --with-console-auth-dir
2474         
2475         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2476         new setting.  Patch from Kay Sievers.
2477
2478 2005-07-06  Colin Walters  <walters@verbum.org>
2479
2480         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2481         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2482         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2483         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2484         Delete in favor of dbus_g_proxy_begin_call and
2485         dbus_g_proxy_cancel_call.
2486         (DBusGProxyCall, DBusGProxyCallNotify): New.
2487         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2488         data, and destroy function.  This replaces
2489         dbus_g_pending_call_set_notify.
2490         (dbus_g_proxy_cancel_call): Prototype.
2491         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2492
2493         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2494         pending_calls map.
2495         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2496         internal proxy for calls to the bus. Remove
2497         pending_nameowner_calls, now the internal proxy keeps track.
2498         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2499         pending_nameowner_calls.
2500         (got_name_owner_cb): Update prototype, and use
2501         dbus_g_proxy_end_call.
2502         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2503         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2504         favor of using internal proxy.
2505         (dbus_g_proxy_manager_unregister): Update to use
2506         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2507         (dbus_g_proxy_init): Initialize pending calls map.
2508         (dbus_g_proxy_constructor): New.
2509         (dbus_g_proxy_class_init): Add get/set property functions,
2510         constructor, and add NAME, PATH, and INTERFACE properties.
2511         (cancel_pending_call): New function.
2512         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2513         cancel them.
2514         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2515         (GPendingNotifyClosure): New structure.
2516         (d_pending_call_notify, d_pending_call_free): Moved here from
2517         dbus-glib.c.
2518         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2519         ordering.
2520         (manager_begin_bus_call): New internal function for talking to
2521         internal bus proxy.
2522         (dbus_g_proxy_new): Construct object using GObjet properties.
2523         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2524         Create closure of same, and insert call into map of pending calls.
2525         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2526         call.  Look up pending call in current set.  Remove it when we've
2527         completed.
2528         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2529         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2530         and destroy function directly.
2531         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2532         (dbus_g_proxy_call): Invoke with NULL callback.
2533         (dbus_g_proxy_cancel_call): New function, replaces
2534         dbus_g_pending_call_cancel.
2535
2536         * glib/dbus-gparser.c (validate_signature): Fix call to
2537         dbus_set_g_error.
2538
2539         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2540         New quark for attaching metadata to GType.
2541         (info_hash): Delete.
2542         (lookup_object_info): Look up using quark.
2543         (dbus_g_object_type_install_info): Check that a type is classed,
2544         not that it's an object.  Also just install type data using quark
2545         instead of using global hash.
2546
2547         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2548         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2549         (GPendingNotifyClosure): Delete.
2550         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2551         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2552
2553         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2554         client method generation until we can fix it...
2555         
2556         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2557         (load_from_service_thread_func): Ditto.
2558
2559         * tools/dbus-names-model.c (struct NamesModel): Hold
2560         DBusGProxyCall.
2561         (have_names_notify): Update prototype, use
2562         dbus_g_proxy_cancel_call.
2563         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2564
2565         * tools/dbus-monitor.c (filter_func): Update for print_message
2566         API change.
2567
2568         * test/glib/test-dbus-glib.c: Add more tests for async
2569         invocations.  Update many begin_call/end_call pairs to just use
2570         dbus_g_proxy_call.
2571
2572         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2573         allows us to dump print-introspect.c.
2574
2575         * tools/dbus-print-message.h (print_message): Add literal argument
2576         to print_message which is intended to allow printing arguments without
2577         metadata like "string=".
2578
2579         * tools/dbus-print-message.c (print_iter): Add literal argument.
2580         (print_message): Allow printing string messages literally.
2581
2582 2005-07-05  Colin Walters  <walters@verbum.org>
2583
2584         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2585         Remove value refcount leak, original patch from Jorn Baayen
2586         <jorn@openedhand.com>.  Also remove useless extra value in favor
2587         of prepending to value array directly.
2588
2589 2005-07-02  Colin Walters  <walters@verbum.org>
2590
2591         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2592
2593 2005-07-01  Colin Walters  <walters@verbum.org>
2594
2595         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2596         
2597         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2598         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2599         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2600         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2601
2602 2005-06-30  Colin Walters  <walters@verbum.org>
2603
2604         * test/glib/test-dbus-glib.c:
2605         * test/glib/test-service-glib.c:
2606         * test/glib/test-service-glib.xml: Update tests for new error
2607         setting bits, also add async tests (patch from Ross Burton).
2608
2609         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2610         DBUS_GLIB_THREADS_LIBS.
2611
2612         * glib/dbus-gproxy.c (get_name_owner)
2613         (dbus_g_pending_call_end_valist): Ditto.
2614
2615         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2616         domain (GQuark) to DBusGErrorInfo.  
2617         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2618         quark in error_metadata.  Take message interface as default
2619         error message interface.
2620         (gerror_to_dbus_error_message): Pass message interface.
2621         (dbus_set_g_error): Resurrected.
2622         (dbus_g_error_info_free): New function.
2623         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2624         of _peek to actually create the object class if it hasn't been
2625         created yet.
2626         (dbus_g_error_domain_register): New function.
2627
2628         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2629
2630         * glib/dbus-gparser.c (validate_signature): Ditto.
2631
2632         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2633         (dbus_g_error_domain_register): Prototype.
2634
2635         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2636         Update tests.
2637
2638 2005-06-29  Colin Walters  <walters@verbum.org>
2639
2640         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2641         DBUS_TYPE_G_OBJECT_PATH.
2642
2643         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2644         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2645         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2646         (dbus_g_object_path_get_g_type): New function.
2647         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2648         to DBUS_TYPE_G_OBJECT_PATH by default.
2649         (demarshal_proxy): Remove unused name variable.
2650         (demarshal_object_path, marshal_object_path): New functions.
2651         (demarshal_proxy_array, marshal_proxy_array): Delete.
2652         
2653         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2654         DBUS_TYPE_G_OBJECT_PATH to char *.
2655         (dbus_g_type_get_lookup_function): Map builtin
2656         DBUS_TYPE_G_OBJECT_PATH.
2657
2658         * test/glib/test-dbus-glib.c
2659         * test/glib/test-service-glib.c (my_object_objpath): 
2660         Adapt tests to new object path marshalling.
2661
2662 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2663
2664         * configure.in: force check for Python >= 2.4
2665
2666 2005-06-29  Colin Walters  <walters@verbum.org>
2667         
2668         Patch from Ross Burton <ross@openedhand.com>
2669         
2670         * glib/dbus-gobject.c (invoke_object_method): Unset object
2671         value in all cases, not only in async case.
2672
2673 2005-06-29  Colin Walters  <walters@verbum.org>
2674
2675         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2676         name_call for keeping track of any outgoing GetNameOwner call.
2677         Also add for_owner and associated.
2678         (struct _DBusGProxyManager): Add owner_names, which is hash table
2679         that maps a base name to a list of names it owns (that we're
2680         interested in).  Add pending_nameowner_calls which is a list of
2681         all outstanding GetNameOwner; avoids us having to iterate over
2682         every proxy.  Add unassociated_proxies which keeps track of name
2683         proxies with no associated name owner.
2684         (dbus_g_proxy_manager_unref): Destroy owner_names.
2685         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2686         name refcounts.
2687         (find_name_in_info, name_owner_foreach)
2688         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2689         (dbus_g_proxy_manager_monitor_name_owner)
2690         (dbus_g_proxy_manager_unmonitor_name_owner)
2691         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2692         New functions; they manipulate the owner_names mapping.
2693         (got_name_owner_cb): New function.
2694         (get_name_owner): New function, extracted from
2695         dbus_g_proxy_new_for_name_owner.
2696         (dbus_g_proxy_manager_register): For now we need to keep track of
2697         all NameOwnerChanged.  Also if the proxy is for a name, if we
2698         don't already know the name owner, queue a new GetNameOwner
2699         request and add it to our list of unassociated proxies.  Otherwise
2700         inc the refcount.
2701         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2702         cancel any pending GetNameOwner call, etc.
2703         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2704         the owner_names mapping to look up the current names for the
2705         signal source, and dispatch to any proxies for that name.
2706         (dbus_g_proxy_new): Initialize new members.
2707         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2708         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2709         (dbus_g_pending_call_end_valist): New function, extracted from
2710         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2711         but want to use the GLib infrastructure.  Also note how many
2712         arguments in reply were over.
2713         (dbus_g_pending_call_end): New function, just call
2714         dbus_g_pending_call_end_valist.
2715         (dbus_g_proxy_end_call_internal): Just call
2716         dbus_g_pending_call_end_valist.
2717
2718         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2719         of builtin marshaller for STRING_STRING_STRING.
2720
2721         * test/glib/test-dbus-glib.c: 
2722         * test/glib/test-service-glib.c:
2723         * test/glib/test-service-glib.xml:
2724         Extend tests to cover name proxies, destruction of owner proxies,
2725         etc.
2726         
2727         * glib/examples/example-signal-recipient.c
2728         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2729         
2730         * tools/dbus-send.c (main): Print D-BUS error name in addition
2731         to message.
2732
2733 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2734
2735         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2736         cmessage_function_handler): Patch from 
2737         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2738         by using the Py_GILState_Ensure/Release to synchronize with the
2739         python runtime.
2740         
2741 2005-06-28  Ray Strode  <rstrode@redhat.com>
2742
2743         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2744         babysitter helper process on last unref, bug #2813.
2745
2746 2005-06-27  Colin Walters  <walters@verbum.org>
2747
2748         * test/glib/test-dbus-glib.c: 
2749         * test/glib/test-service-glib.c:
2750         * test/glib/test-service-glib.xml:
2751         Test hash table signal emitting.
2752
2753         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2754         types to their fundamental basis types, since this is what
2755         marshallers operate on.  Also add an entry for VOID__BOXED.
2756         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2757
2758 2005-06-26  Havoc Pennington  <hp@redhat.com>
2759
2760         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2761         from Don Park
2762
2763 2005-06-26  Colin Walters  <walters@verbum.org>
2764
2765         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2766         (dbus_g_error_set): New public function from its ashes; used by
2767         both service-side method implementation and GLib bindings
2768         internals.
2769         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2770         (_dbus_glib_test): Add some tests.
2771
2772         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2773
2774         * test/glib/test-service-glib.c (my_object_throw_error): Use
2775         dbus_g_error_set.
2776
2777         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2778         errors thrown by dbus_g_error_set.
2779
2780         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2781
2782         * glib/dbus-gparser.c (validate_signature): Ditto.
2783
2784         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2785         (dbus_g_proxy_end_call_internal): Ditto.
2786
2787         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2788         converts DBUS_ERROR_x to DBUS_GERROR_x.
2789         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2790
2791         * doc/TODO: Remove error TODO.
2792
2793         * doc/dbus-tutorial.xml: Update with documentation about error
2794         handling.
2795
2796         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2797         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2798         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2799
2800 2005-06-22  Colin Walters  <walters@verbum.org>
2801         
2802         Patch from Ross Burton <ross@openedhand.com>
2803
2804         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2805
2806 2005-06-20  Colin Walters  <walters@verbum.org>
2807
2808         * configure.in: Add glib/examples.
2809
2810         * glib/Makefile.am: Add examples/
2811
2812         * glib/examples/.cvsignore
2813         * glib/examples/Makefile.am
2814         * glib/examples/example-client.c
2815         * glib/examples/example-service.c
2816         * glib/examples/example-service.xml
2817         * glib/examples/example-signal-emitter.c
2818         * glib/examples/example-signal-emitter.xml
2819         * glib/examples/example-signal-recipient.c:
2820         New files; GLib binding examples, ported from
2821         python/examples.
2822
2823 2005-06-20  Colin Walters  <walters@verbum.org>
2824
2825         * dbus/dbus-glib.h: 
2826         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2827         dbus_g_proxy_call.
2828
2829         * glib/dbus-binding-tool-glib.c: 
2830         * doc/dbus-tutorial.xml: 
2831         * test/glib/test-dbus-glib.c: Update for rename.
2832         
2833 2005-06-20  Colin Walters  <walters@verbum.org>
2834
2835         Patch suggested by Ross Burton <ross@openedhand.com>
2836
2837         * glib/dbus-gobject.c (export_signals): Free signal name.
2838         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2839         memory leak.  Add a bit of documentation.
2840         (dbus_g_method_return_error): Free context, and note we do
2841         so.
2842
2843 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2844
2845         * dbus/dbus-glib.h:
2846         * glib/dbus-gobject.c:
2847         * glib/dbus-gproxy.c:
2848         * glib/dbus-gvalue.c: Predeclare structs as 
2849         typedef struct _Something Something instead of 
2850         typedef struct Something Something, so we can 
2851         redeclare the prototypes. Other GNOME libraries 
2852         do this already.
2853
2854 2005-06-17  Colin Walters  <walters@verbum.org>
2855
2856         * tools/dbus-names-model.c (have_names_notify): Fix call
2857         to dbus_g_proxy_end_call.
2858         
2859 2005-06-17  Colin Walters  <walters@verbum.org>
2860
2861         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2862         spew warnings if we get malformed remote signals.
2863
2864         * glib/dbus-gobject.c (propsig_iterate): New function.
2865         (lookup_object_info): New function, extracted from
2866         lookup_object_and_method.
2867         (introspect_properties, introspect_signals): Delete; these
2868         are merged into write_interface.
2869         (write_interface): Write out signals and properties here;
2870         dump the org.gtk.object stuff and use the interface given
2871         in the introspection data blob.  Also fix up property XML.
2872         (lookup_values): New function.
2873         (introspect_interfaces): Gather a mapping from interface to a
2874         list of its methods, signals, and properties, then write out
2875         each interface.
2876         (lookup_object_and_method): Use lookup_object_info.
2877         (struct DBusGSignalClosure): Add interface.
2878         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2879         we can just use the constant data.
2880         (dbus_g_signal_closure_finalize): Don't free signal name.
2881         (signal_emitter_marshaller): Use interface from signal closure.
2882         (export_signals): Only export signals mentioned in introspection
2883         blob.
2884         (dbus_g_connection_register_g_object): Warn if we have no
2885         introspection data for an object.
2886         (funcsig_equal): Remove unused variable.
2887         (dbus_g_object_register_marshaller): Take varargs instead of
2888         list.
2889         (dbus_g_object_register_marshaller_array): New function,
2890         extracted from old dbus_g_object_register_marshaller.
2891
2892         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2893         signals and property data.
2894         (write_quoted_string): New function, extracted from generate_glue.
2895         (generate_glue): Write signals and properties to introspection
2896         blob.
2897
2898         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2899         exported_signals and exported_properties.
2900         (dbus_g_object_register_marshaller): Update prototype.
2901         (dbus_g_object_register_marshaller_array): Prototype.
2902         
2903         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2904
2905         * test/glib/test-service-glib.c: Add new test signals and method
2906         to emit them.
2907
2908         * test/glib/test-service-glib.xml: Add some test signals.
2909
2910         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2911         and my-object-marshal.h
2912         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2913         my-object-marshal.c.
2914         (my-object-marshal.c, my-object-marshal.h): Implement.
2915
2916         * test/glib/.cvsignore: Update.
2917
2918         * doc/TODO: Remove two GLib TODO items fixed by this
2919         patch.
2920
2921 2005-06-16  Colin Walters  <walters@verbum.org>
2922
2923         * doc/TODO: Update for GLib bindings.
2924         
2925 2005-06-16  Colin Walters  <walters@verbum.org>
2926
2927         * glib/dbus-binding-tool-glib.c:
2928         * glib/dbus-gobject.c:
2929         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2930         from Ross Burton, for his GLib bindings work.
2931
2932 2005-06-16  Colin Walters  <walters@verbum.org>
2933
2934         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2935         to iterate instead of walking to G_TYPE_INVALID.
2936
2937         Patch based on a patch from Ryan Gammon.
2938
2939 2005-06-16  Colin Walters  <walters@verbum.org>
2940
2941         * bus/bus.c (bus_context_new): Set parser to NULL
2942         after we unref it (Patch from Chris Boscolo, #2174).
2943         
2944 2005-06-16  Colin Walters  <walters@verbum.org>
2945
2946         * python/dbus_bindings.pyx.in: Import size_t,
2947         __int64_t, __uint64_t, and __signed.
2948
2949         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2950         Define cmsg struct, output it.
2951         (_dbus_read_credentials_unix_socket):
2952         Use cmsg struct.
2953         
2954         Patch from Joe Markus Clarke for FreeBSD support.
2955         
2956 2005-06-16  Colin Walters  <walters@verbum.org>
2957
2958         * tools/dbus-send.c (append_array): Use strtok.
2959         (append_dict): New function.
2960         (type_from_name): New function, extracted from main.
2961         (main): Handle sending dicts.
2962
2963         * tools/dbus-print-message.c (print_iter): Print dict
2964         entries.
2965         
2966 2005-06-16  Colin Walters  <walters@verbum.org>
2967
2968         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2969         values as the empty string (#2948).
2970         
2971 2005-06-16  Colin Walters  <walters@verbum.org>
2972
2973         * dbus/Makefile.am:
2974         * mono/doc/Makefile.am:
2975         * test/glib/Makefile.am:
2976
2977         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2978
2979 2005-06-16  Colin Walters  <walters@verbum.org>
2980
2981         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2982         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2983
2984         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2985         Increment pointer after swapping fixed array.  Add assertion
2986         for array length.
2987                 
2988 2005-06-15  Colin Walters  <walters@verbum.org>
2989
2990         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2991         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2992         
2993 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2994
2995         * NEWS: Update to 0.34
2996
2997 2005-06-15  David Zeuthen  <davidz@redhat.com>
2998
2999         * configure.in (LT_CURRENT): Revert back to 1 as the library
3000         hasn't changed and we've certainly not committed to protocol
3001         stability yet.  All this does is to break ABI. See commit note
3002         from hp@redhat.com 2005-05-05 for details.
3003         
3004 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3005
3006         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3007         (_dbus_connection_run_builtin_filters): New method
3008         (dbus_connection_dispatch): Run the builtin filters which in turn
3009         runs the peer filter which handles Ping messages.
3010
3011         * doc/TODO: 
3012          - Ping isn't handled: This patch fixes it
3013          
3014          - Add a test case for the Ping message: added TODO item
3015
3016 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3017
3018         * dbus/dbus-message.c:
3019         (dbus_message_has_path): New method
3020         (dbus_message_has_interface): New method
3021         (dbus_message_has_member): New method
3022
3023         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3024         New method
3025
3026         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3027         the keyring directory is private to the user
3028
3029         * doc/TODO:
3030          - The convenience functions in dbus-bus.h should perhaps have
3031          the signatures that they would have if they were autogenerated
3032          stubs. e.g. the acquire service function. We should also evaluate
3033          which of these functions to include, in light of the fact that
3034          GLib/Qt native stubs will probably also exist.: Punted
3035
3036          - add dbus_message_has_path(), maybe has_member/interface:
3037          fixed in this patch
3038
3039          - in dbus-keyring.c, enforce that the keyring dir is not
3040          world readable/writable: Fixed in this patch
3041
3042 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3043
3044         * dbus/dbus-marshal-validate.h: Added a new validation
3045         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3046         out of memory errors when validating signitures
3047
3048         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3049         in places where we previously used DBUS_VALID and a FALSE return 
3050         value to indicate OOM
3051         
3052         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3053         Use a stack to track the number of elements inside containers.  The 
3054         stack values are then used to validate that dict entries have only two
3055         elements within them.
3056         (validate_body_helper): check the reason for failure when validating
3057         varients
3058         
3059         * dbus/dbus-message.c (load_message): use 
3060         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3061         DBUS_VALID and a FALSE return value to indicate OOM
3062
3063         * doc/TODO: remove "- validate dict entry number of fields" as this
3064         patch fixes it
3065
3066 2005-06-14  David Zeuthen  <davidz@redhat.com>
3067
3068         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3069         watches (if applicable) and add new watches
3070
3071         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3072         (main): Setup SIGIO signal handler if using D_NOTIFY
3073
3074         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3075
3076         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3077         (merge_included): Also merge conf_dirs list
3078         (bus_config_parser_unref): Clear conf_dirs list
3079         (include_dir): Add directory to conf_dirs list
3080         (bus_config_parser_get_conf_dirs): New function
3081
3082         * bus/dir-watch.[ch]: New files
3083
3084         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3085
3086         * configure.in: Add checks for D_NOTIFY on Linux
3087
3088 2005-06-14  Colin Walters  <walters@verbum.org>
3089
3090         * glib/dbus-binding-tool-glib.c:
3091         * glib/dbus-gobject.c:
3092         * glib/dbus-gvalue.c: Fix indentation and brace style.
3093         
3094 2005-06-14  Ross Burton <ross@openedhand.com>.
3095
3096         * glib/dbus-glib.h: Make DBusGMethodInvocation
3097         a private structure.  Rearrange prototypes a bit.
3098         
3099         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3100         documentation for first_arg_type.
3101         
3102         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3103         here, add documentation.  Move dbus_g_method_return
3104         and dbus_g_method_return_error into public API
3105         section.
3106
3107 2005-06-14  Colin Walters  <walters@verbum.org>
3108
3109         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3110         Add missing return statements, noticed by Ross Burton.
3111         
3112 2005-06-13  Ross Burton <ross@openedhand.com>.
3113
3114         * glib/dbus-gobject.c: Handle errors on message
3115         demarshalling by sending error message back.
3116         * glib/dbus-gvalue.c: Initialize return variables.
3117
3118 2005-06-13  Colin Walters  <walters@verbum.org>
3119
3120         * glib/Makefile.am: Fix thinko in last patch.
3121
3122 2005-06-13  Colin Walters  <walters@verbum.org>
3123
3124         * glib/Makefile.am: Move dbus-gtype-specialized.c
3125         and dbus-gtype-specialized.h into a _HEADERS variable,
3126         install them.
3127
3128 2005-06-12  Colin Walters  <walters@verbum.org>
3129
3130         Async signals and various bugfixes and testing by
3131         Ross Burton <ross@openedhand.com>.
3132
3133         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3134         (dbus_gvalue_genmarshal_name_from_type)
3135         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3136         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3137         (dbus_g_value_types_init, dbus_gtype_from_signature)
3138         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3139         (dbus_gtypes_from_arg_signature): New function prototypes.
3140         (dbus_gvalue_demarshal): Take context and error arguments.
3141         (dbus_gvalue_demarshal_variant): New function.
3142         (dbus_gvalue_demarshal_message): New function.
3143         (dbus_gvalue_store): Delete.
3144
3145         * glib/dbus-gvalue.c:
3146
3147         File has been almost entirely rewritten; now we special-case
3148         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3149         hash tables correctly, etc.  Full support for recursive values
3150         is not yet complete.
3151
3152         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3153         argument of signal to G_TYPE_POINTER since we now pass a
3154         structure.
3155         (lookup_g_marshaller): Delete in favor of
3156         _dbus_gobject_lookup_marshaller.
3157         (marshal_dbus_message_to_g_marshaller): Use
3158         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3159         to handle remote signal callbacks.
3160         (dbus_g_proxy_new_from_proxy): New function; creates a new
3161         DBusGProxy by copying an existing one.
3162         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3163         (dbus_g_proxy_get_path): New functions.
3164         (dbus_g_proxy_marshal_args_to_message): New function;
3165         factored out of existing code.
3166         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3167         from a varargs array.
3168         (dbus_g_proxy_begin_call_internal): New function.
3169         (dbus_g_proxy_end_call_internal): New function.
3170         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3171         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3172         after collecting args into value array.
3173         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3174         invoke dbus_g_proxy_end_call_internal.
3175         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3176         end_call_internal.
3177         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3178         types.
3179         (array_free_all): New function.
3180         (dbus_g_proxy_add_signal): Take GTypes.
3181
3182         * glib/dbus-gobject.h:
3183         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3184         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3185         Prototype.
3186
3187         * glib/dbus-gobject.c: Add a global marshal_table hash which
3188         stores mappings from type signatures to marshallers.  Change lots
3189         of invocations of dbus_gtype_to_dbus_type to
3190         dbus_gtype_to_signature.
3191         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3192         (introspect_signals): Fix test for query.return_type.
3193         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3194         (invoke_object_method): Many changes.  Handle asynchronous
3195         invocations.  Convert arguments with
3196         dbus_gvalue_demarshal_message.  Handle errors.  Use
3197         DBusSignatureIter instead of strlen on args. Handle all arguments
3198         generically.  Special-case variants.
3199         (dbus_g_method_return, dbus_g_method_return_error): New function.
3200         (DBusGSignalClosure): New structure, closes over signal
3201         information.
3202         (dbus_g_signal_closure_new): New function.
3203         (dbus_g_signal_closure_finalize): New function.
3204         (signal_emitter_marshaller): New function; is special marshaller
3205         which emits signals on bus.
3206         (export_signals): New function; introspects object signals and
3207         connects to them.
3208         (dbus_g_object_type_install_info): Take GType instead of
3209         GObjectClass.
3210         (dbus_g_connection_register_g_object): Invoke export_signals.
3211         (dbus_g_connection_lookup_g_object): New function.
3212         (DBusGFuncSignature) New structure; used for mapping type
3213         signatures to marshallers.
3214         (funcsig_hash): New function; hashes DBusGFuncSignature.
3215         (funcsig_equal): New function; compares DBusGFuncSignature.
3216         (_dbus_gobject_lookup_marshaller): New function.
3217         (dbus_g_object_register_marshaller): New function; used to
3218         register a marshaller at runtime for a particular signature.
3219
3220         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3221
3222         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3223         which notes a server method implementation should be
3224         asynchronous.
3225
3226         * glib/dbus-binding-tool-glib.c
3227         (dbus_binding_tool_output_glib_server): Call
3228         dbus_g_value_types_init.
3229         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3230         variants specially.
3231         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3232         of a lookup function.
3233         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3234         (write_untyped_out_args): New method; write output arguments.
3235         (write_formal_declarations_for_direction): Function for
3236         writing prototypes.
3237         (write_formal_parameters_for_direction): Function for
3238         writing implementations.
3239         (write_typed_args_for_direction): Function for writing
3240         arguments prefixed with GTypes.
3241         (write_async_method_client): Write out async version
3242         of method.
3243
3244         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3245         (dbus_g_type_get_marshal_name): Move mapping from GType
3246         to marshal name into here.
3247         (dbus_g_type_get_c_name): Move into here.
3248         (compute_marshaller): Convert signature to type with
3249         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3250         (compute_marshaller_name): Ditto.
3251         (compute_marshaller): Handle async signal annotations.
3252         (gather_marshallers): Return if we don't have a known
3253         prefix.
3254         (generate_glue): Collect introspection blob here, and
3255         write all of the blob at the end.  This allows an object
3256         with multiple interfaces to work.
3257         Mark async methods in introspection blob.
3258
3259         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3260         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3261         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3262
3263         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3264         avoids people accidentally using DBUS_TYPE_* which should
3265         not be necessary anymore.
3266         Do include dbus-gtype-specialized.h, which are utilities
3267         for GLib container types.
3268         Add various #defines for types such as
3269         DBUS_TYPE_G_BOOLEAN_ARRAY.
3270         (DBusGValueIterator, DBusGValue): Define, not fully used
3271         yet.
3272         (dbus_g_value_get_g_type): Type for recursive value.
3273         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3274         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3275         (dbus_g_value_free): Prototypes.
3276         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3277         (dbus_g_proxy_set_interface): Prototype.
3278         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3279         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3280         types.
3281         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3282         Accessors.
3283         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3284         doing async invocations.
3285         (dbus_g_method_return, dbus_g_method_return_error):
3286         Prototypes.
3287         * doc/dbus-tutorial.xml: Update GLib section.
3288         
3289         * tools/dbus-viewer.c (load_child_nodes): Update
3290         for new invocation type of dbus_g_proxy_end_call.
3291         (load_from_service_thread_func): Ditto.
3292
3293         * tools/print-introspect.c (main): Ditto.
3294
3295         * tools/dbus-names-model.c (have_names_notify)
3296         (names_model_reload, names_model_set_connection)
3297         Use GTypes.
3298
3299         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3300         needed since Python bindings use GLib bindings.
3301
3302         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3303         Add --prefix argument.
3304
3305         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3306         unneeded --ignore-unsupported arg.
3307         
3308         * test/glib/test-service-glib.c: 
3309         * test/glib/test-service-glib.xml:
3310         * test/glib/test-dbus-glib.c: Add many more tests.
3311
3312 2005-06-06  David Zeuthen  <davidz@redhat.com>
3313
3314         * doc/TODO: Add item about need to remove deprecated functions.
3315
3316         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3317
3318         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3319         to repair the ABI which was broken with the last commit.
3320
3321 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3322
3323         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3324         (dbus_connection_disconnect): renamed to dbus_connection_close 
3325         for API symmetry with dbus_connection_open
3326         (_dbus_connection_open_internal): 
3327         s/dbus_connection_disconnect/dbus_connection_close
3328
3329         * dbus/dbus-bus.c (dbus_bus_get):
3330         s/dbus_connection_disconnect/dbus_connection_close
3331
3332         * bus/connection.c (bus_connections_unref, 
3333         bus_connections_setup_connection, bus_connections_expire_incomplete):
3334         s/dbus_connection_disconnect/dbus_connection_close
3335
3336         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3337         kill_client_connection_unchecked, check_hello_connection):
3338         s/dbus_connection_disconnect/dbus_connection_close
3339
3340         * bus/bus.c (new_connection_callback):
3341         s/dbus_connection_disconnect/dbus_connection_close
3342
3343         * tools/dbus-send.c (main):
3344         s/dbus_connection_disconnect/dbus_connection_close
3345
3346         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3347         s/dbus_connection_disconnect/dbus_connection_close
3348         
3349         * test/test-service.c (path_message_func, filter_func):
3350         s/dbus_connection_disconnect/dbus_connection_close
3351         
3352         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3353         
3354 2005-05-25  Colin Walters  <walters@verbum.org>
3355
3356         * dbus/dbus-protocol.h: Move various bus service #defines such
3357           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3358           dbus/dbus-shared.h.
3359         * dbus/dbus-shared.h: Various defines moved here.
3360         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3361
3362 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3363
3364         * python/__init__.py: Python bindings deserve a minor version
3365         update.  Upped to (0, 40, 2)
3366
3367 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3368
3369         * python/decorators.py: add explicitly_pass_message decorator
3370         for passing in the dbus message as keyword for edge case signal
3371         handling
3372
3373         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3374         to conform with what dbus expects for match rules
3375         (SignalMatchRule.execute): add the dbus message as a keyword
3376         if the signal handler has requested it
3377
3378         * python/examples/example/signal-recipient.py: added some more
3379         examples on how to hook up to signals
3380
3381 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3382
3383         * python/decorators.py: import dbus_bindings
3384
3385         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3386         SignalMatchNode): new classes that implement wildcard signal
3387         callback matching using a tree lookup. Heavily modified from a
3388         patch sent by Celso Pinto (fd.o bug #3241)
3389
3390         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3391         use new match classes to handle signals.
3392
3393 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3394         
3395         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3396
3397 2005-05-18  Havoc Pennington  <hp@redhat.com>
3398
3399         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3400         gettext. Not really worth requiring yet perhaps, but any
3401         production quality 1.0 would require it so we should go ahead and
3402         get things set up. We do have a couple token calls to
3403         bindtextdomain in the code already.
3404
3405 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3406
3407         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3408         when using recursive g_main_loops
3409
3410         * python/_dbus.py (class Bus): add the ProxyObjectClass
3411         alias for ProxyObject to make it easier for the Twisted 
3412         networking framework to integrate dbus.
3413
3414         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3415         alias for ProxyMethod to make it easier for the Twisted 
3416         networking framework to integrate dbus. 
3417
3418 2005-05-11  Ross Burton  <ross@openedhand.com>
3419
3420         * glib/dbus-glib-tool.c: Add --prefix argument.
3421         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3422         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3423         Add prefix argument.
3424         (generate_glue): Pass prefix argument down.
3425         (dbus_binding_tool_output_glib_server): Pass prefix to
3426         glib-genmarshal.
3427         
3428 2005-05-11  Colin Walters  <walters@verbum.org>
3429
3430         * tools/dbus-send.c (append_array): New function.
3431         (append_arg): Broken out from main.
3432         (main): Add cheesy hack to send arrays and variants.
3433         (usage): Update.
3434         * tools/dbus-print-message.c (print_iter): Broken out
3435         from main.
3436
3437 2005-05-11  Colin Walters  <walters@verbum.org>
3438
3439         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3440         New function, returns signature string for signature iter.
3441         * dbus/dbus-signature.h: Prototype it.
3442         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3443         New function, returns signature string for message iter.
3444         (dbus_message_iter_get_array_len): New function, returns
3445         length of array.
3446         (dbus_message_iter_get_fixed_array): Fix assertion; this
3447         function should be used when the iter is pointing to the
3448         contents of an array
3449         * dbus/dbus-message.h: Prototypes.
3450         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3451         New function; returns length of an array.
3452         * dbus/dbus-marshal-recursive.h: Prototype it.
3453         
3454 2005-05-11  Colin Walters  <walters@verbum.org>
3455
3456         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3457         compilation error.
3458         
3459 2005-05-08  Havoc Pennington  <hp@redhat.com>
3460
3461         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3462         daemon's pid, not the parent's pid, to the file descriptor.
3463         Reported by Taj Morton.
3464
3465 2005-05-05  Havoc Pennington  <hp@redhat.com>
3466
3467         * configure.in (LT_*): add notes on how the libtool versioning
3468         works to save thinking. Increment soname to indicate protocol
3469         breakage (though really the library interface hasn't changed I
3470         guess)
3471
3472         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3473         verify the GUID received from server matches what we were
3474         expecting, if we had an expectation
3475
3476         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3477         (_dbus_auth_get_guid_from_server): new function
3478         (send_begin): parse the OK args
3479
3480         * doc/dbus-specification.xml: add GUID to the auth protocol
3481
3482 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3483
3484         * Fix my name in previous changelog ;)
3485
3486         * python/proxies.py (ProxyObject.__getattr__): add further patch
3487         from Anthony Baxter to throw an AttributeError when python 
3488         __special__ functions are called instead of marshling them over 
3489         the bus (Bug#1685 comment 3).
3490
3491 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3492
3493         * python/Makefile.am: changed to use pyexecdir for the binding
3494         shared libraries (Bug#2494)
3495
3496         * python/exceptions.py: bring exceptions over from the bindings
3497         so they can be used in applications (Bug#2036)
3498         Make all exceptions derive from DBusException
3499
3500         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3501         of classes so that print obj doesn't throw an exception (Bug #1685)
3502
3503 2005-05-03  Ross Burton  <ross@openedhand.com>
3504
3505         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3506         Return if we get an error during registration.  Set up a
3507         weak reference on object to unregister if object is destroyed.
3508         (unregister_gobject): New function.
3509         
3510 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3511
3512         * python/dbus_bindings.pyx.in: 
3513         - added new type classes for hinting to the marashaler what type 
3514         to send over the wire
3515         - added int16 and uint16 marshalers
3516         - Fixed a bug in the type constants that caused int32 to go out
3517         as uint16 over the wire
3518         * python/dbus.py: split up into different files and renamed _dbus.py
3519         * python/__init__.py, python/_util.py, python/decorators.py, 
3520         python/exceptions.py, python/proxies.py, python/services.py,
3521         python/types.py: new files split off from dbus.py
3522         * python/Makefile.am: Add new files, remove dbus.py and 
3523         install all python files to <python module dir>/dbus
3524         * python/examples/*: Added #!/usr/bin/env python to the top of
3525         every example.  Patch provided by Tatavarty Kalyan
3526
3527 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3528
3529         * NEWS: Update to 0.33
3530
3531 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3532
3533         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3534         method for doing async calls
3535         (_pending_call_notification): New C function for handling pendning call
3536         callbacks
3537         (set_notify): New method for setting pending call notification
3538         
3539         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3540         Async capabilities added to remote method calls
3541         (Sender): class removed
3542         (RemoteService): class removed
3543         (ObjectTree): class removed for now
3544         (RemoteObject): Renamed to ProxyObject
3545         (RemoteMethod): Renamed to ProxyMethod
3546         (method): Decorator added for decorating python methods as dbus methods
3547         (signal): Decorator added for decorating python methods as signal emitters
3548         (ObjectType): Metaclass added for generating introspection data and the
3549         method callback vtable
3550         (Interface): Wrapper class added to wrap objects in a dbus interface
3551         (Object): Uses ObjectType as its metaclass and exports Introspect
3552         of the org.freedesktop.DBus.Introspectable interface
3553         (ValidationException, UnknownMethodException): new exceptions
3554
3555         * python/examples/*: Modified to fit with the new bindings
3556
3557 2005-04-23  Havoc Pennington  <hp@redhat.com>
3558
3559         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3560         reported by Tony Houghton
3561
3562         * test/test-service.c (main): test
3563         dbus_connection_get_object_path_data()
3564
3565         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3566         the exact_match
3567         (_dbus_object_tree_get_user_data_unlocked): new function used by
3568         dbus_connection_get_object_path_data()
3569         (do_register): add assertion test for get_user_data_unlocked
3570         (object_tree_test_iteration): more tests
3571
3572         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3573         new function from Dan Reed to let you get the user data from 
3574         dbus_connection_register_object_path()
3575
3576 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3577
3578         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3579         in numerous places that did not account for the NULL terminator
3580         (signature_from_seed): changed the manual string copy loop to 
3581         just use strcpy instead
3582         make check should now pass
3583
3584 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3585
3586         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3587         so that it allows messages that are not signals to pass in 
3588         NULL as the interface.
3589
3590 2005-04-18  David Zeuthen  <davidz@redhat.com>
3591
3592         * glib/dbus-gmain.c (io_handler_destroy_source): 
3593         (timeout_handler_destroy_source, connection_setup_free): 
3594         Also unref the source to avoid memory leaks.
3595
3596 2005-04-13  David Zeuthen  <davidz@redhat.com>
3597
3598         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3599         more reasonable, yet still totally arbitrary, value :-). 
3600
3601 2005-04-13  David Zeuthen  <davidz@redhat.com>
3602
3603         * doc/TODO: Added an "important for 1.0" item about selinux
3604         allow/deny messages
3605
3606 2005-04-13  David Zeuthen  <davidz@redhat.com>
3607
3608         * bus/selinux.c: Add c-file-style to top of file
3609         (log_audit_callback): Don't free the data here anymore
3610         (bus_selinux_check): Don't take spid and tpid since appending
3611         that to auxdata may OOM.
3612         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3613         to the caller if we are OOM by taking an error object.
3614         (bus_selinux_allows_send): -do-
3615
3616         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3617         and bus_selinux_allows_send
3618
3619         * bus/bus.c (bus_context_check_security_policy): Pass error and
3620         pass on OOM thrown by bus_selinux_allows_send()
3621
3622         * bus/services.c (bus_registry_acquire_service): Pass error and
3623         pass on OOM thrown by bus_selinux_allows_acquire_service()
3624
3625 2005-04-13  Havoc Pennington  <hp@redhat.com>
3626
3627         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3628         message at a time to avoid monopolizing the main loop, bug 
3629         #2953 from Benjamin Otte
3630
3631 2005-04-09  Havoc Pennington  <hp@redhat.com>
3632
3633         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3634         possible overlap, fix from Daniel Reed
3635         (fixup_alignment): fix signedness warnings
3636         (_dbus_string_append_unichar): ditto
3637
3638 2005-04-09  Havoc Pennington  <hp@redhat.com>
3639
3640         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3641
3642         * glib/dbus-glib-tool.c (main): fix warning
3643
3644         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3645
3646         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3647         add a new function that can be used in simple applications that
3648         don't have a main loop and are willing to block
3649
3650 2005-04-05  David Zeuthen  <davidz@redhat.com>
3651
3652         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3653
3654         * glib/dbus-gmain.c:
3655         (io_handler_destroy_source): Remove from list of IO handlers
3656         of the ConnectionSetup object
3657         (timeout_handler_destroy_source): -do- for timeout handlers
3658         (io_handler_source_finalized): Don't remove from list since
3659         we now do that in io_handler_destroy_source(). Renamed from
3660         io_handler_source_destroyed
3661         (timeout_handler_source_destroyed): -do- for timeout handlers
3662         (connection_setup_free): It is now safe to iterate over all
3663         IO and timeout handlers as the _destroy_source removes them
3664         from the list synchronously
3665
3666 2005-03-30  Havoc Pennington  <hp@redhat.com>
3667
3668         * configure.in: change check to gtk 2.4
3669
3670         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3671         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3672         to 2.4
3673
3674 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3675
3676         * News: Update 0.32
3677
3678         * HACKING: Fixed realease instructions.  configure.in should be updated to
3679           the next release by the person who made the last release.
3680
3681 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3682
3683         * python/lvalue_cast_post_process.py - removed.  Patch has been
3684           submitted to Pyrex maintainers that fixes gcc4.0 errors
3685
3686         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3687
3688 2005-03-24  Daniel Reed  <n@ml.org>
3689
3690         * tools/Makefile.am: Make print-introspect and
3691         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3692
3693 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3694
3695         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3696
3697         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3698           had in Red Hat packages for a while but for some reason never 
3699           got merged upstream
3700           (_dbus_is_a_number): New checks if a string
3701           can be converted to a number and does the conversion if it can
3702           (_dbus_user_database_lookup): Add check to see if the given username
3703           is a udi.  This allows udi's to be used instead of usernames in the
3704           config file.
3705           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3706           is a gdi.  This allows gdi's to be used instead of groupnames in the
3707           config file.
3708
3709 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3710
3711         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3712           code so that it compiles with gcc4.0
3713
3714         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3715           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3716           results back to dbus_binding.c
3717
3718 2005-03-20  Colin Walters  <walters@verbum.org>
3719
3720         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3721
3722         * configure.in: Require GTK+ 2.6.
3723         
3724 2005-03-20  Colin Walters  <walters@verbum.org>
3725
3726         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3727
3728 2005-03-17  Tom Parker  <palfrey@tevp.net>
3729
3730         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3731         print DBUS_UID_UNSET; instead print passed username.  Also
3732         be sure to actually use gid looked up in cache.
3733         
3734         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3735         for DBUS_GID_UNSET and groupname.
3736
3737 2005-03-17  Colin Walters  <walters@verbum.org>
3738
3739         * bus/print-introspect.c: Move to tools/.
3740         * bus/run-with-tmp-session-bus.sh: Ditto.
3741         
3742         * glib/Makefile.am (dbus-glib-bindings.h): Move
3743         generation to tools/Makefile.am.
3744
3745         * test/glib/run-test.sh: Update to handle move
3746         of run-with-tmp-session-bus.sh.
3747
3748         * test/glib/test-service-glib.c: Update to handle
3749         move of dbus-glib-bindings.h.
3750
3751         * tools/print-introspect.c: Moved here
3752         from bus/, and ported to GLib bindings.
3753
3754         * tools/run-with-tmp-session-bus.sh: Moved here
3755         from bus/.
3756
3757         * tools/Makefile.am: Generate dbus-glib-bindings.h
3758         and dbus-bus-introspect.xml here.
3759
3760         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3761         Update.
3762
3763 2005-03-17  Colin Walters  <walters@verbum.org>
3764
3765         * bus/driver.c (write_args_for_direction): Use
3766         _dbus_string_get_const_data to retrieve string;
3767         _dbus_string_get_const_data_len doesn't actually return
3768         a NULL-terminated substring.
3769
3770         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3771         (main): Change to use org_freedesktop_DBus_request_name
3772         instead of using g_proxy_begin_call/end_call.
3773
3774 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3775
3776         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3777         generating the finalizer.  Fixes from Ben Maurer.
3778
3779 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3780
3781         * mono/BusDriver.cs: Update method names: ListServices
3782         becomes ListNames; GetOwner becomes GetNameOwner.
3783
3784         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3785         onto the eval stack when removing the delegate.
3786
3787 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3788
3789         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3790         LT_CURRENT.  Set it to the autoconf variable.
3791                                                                                 
3792         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3793         classes that disconnects the signal handler delegate from the
3794         service object.  Fixes a big leak of proxy objects on the
3795         client side of things.  Patch from Ben Maurer
3796         <bmaurer@ximian.com>
3797
3798 2005-03-12  Colin Walters  <walters@verbum.org>
3799
3800         * bus/driver.c (write_args_for_direction): New function,
3801         parses a type signature into arguments and outputs to
3802         XML.
3803         (bus_driver_handle_introspect): Use it instead of
3804         hardcoding XML for certain signatures.
3805         
3806         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3807         dependency on dbus-daemon.
3808
3809         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3810         argument, pass it to dbus_binding_tool_output_glib_client.
3811
3812         * glib/dbus-binding-tool-glib.c
3813         (generate_client_glue): Protect against multiple inclusion.
3814         (dbus_binding_tool_output_glib_client): Add
3815         G_BEGIN_DECLS/G_END_DECLS.
3816
3817         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3818         Change to just take iface prefix directly.
3819         (write_formal_parameters): Clarify error message.
3820         (check_supported_parameters): New function; checks to see type
3821         signatures of method parameters are supported.
3822         (generate_client_glue): Handle ignore_unsupported flag.
3823         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3824         parameter.
3825
3826         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3827         --ignore-unsupported by default until glib bindings
3828         support arrays.
3829
3830 2005-03-11  Colin Walters  <walters@verbum.org>
3831
3832         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3833         install it.
3834
3835         * bus/print-introspect.c: New file; prints introspection
3836         data for a given name and object path.
3837
3838         * bus/run-with-tmp-session-bus.sh: New file, refactored
3839         from test/glib/run-test.sh.  Creates a temporary session
3840         bus and runs another program.
3841
3842         * test/glib/run-test.sh: Refactor to invoke
3843         run-with-tmp-session-bus.sh.
3844
3845         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3846         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3847         macros instead of hardcoding.
3848
3849         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3850
3851 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3852
3853         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3854         this unref; it doesn't match up evenly in some codepaths.
3855         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3856         this evenly matches with the ref near the top of this function.
3857
3858 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3859
3860         * dbus/dbus-object-tree.c
3861         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3862         and we try to unregister a path that's not registered, still go
3863         through the process of unlocking and don't just return.
3864
3865 2005-03-09  Colin Walters  <walters@verbum.org>
3866
3867         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3868         to this are generated for client-side wrappers.  Invokes a
3869         D-BUS method and returns reply values.  
3870
3871         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3872         function; writes signature string for argument direction.
3873         (write_args_for_direction): Change to pass input values directly
3874         instead of via address, and fix indentation.
3875         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3876         make generated wrappers inlineable.
3877
3878         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3879         note about using dbus_type_is_fixed.
3880
3881         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3882         dbus/dbus-signature.c as dbus_type_is_fixed.
3883
3884         All callers updated.
3885
3886         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3887         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3888
3889         * dbus/dbus-signature.h: Prototype.
3890
3891         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3892         error printf code.
3893
3894         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3895         appropriate instead of just freeing it.
3896         (main): Free returned strings using g_free.
3897
3898         * test/glib/Makefile.am (test-service-glib-glue.h)
3899         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3900
3901         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3902         simply maps a simple D-BUS type to GType.
3903         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3904         GType.
3905         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3906         initialize the value with it.
3907         (dbus_gvalue_binding_type_from_type): Unused, delete.
3908         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3909         various types instead of unmarshalling to value data directly.
3910         Remove can_convert boolean.
3911         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3912         returning directly instead of using can_convert boolean.
3913         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3914         Stores a GValue in a pointer to a value of its corresponding C
3915         type.
3916
3917         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3918         add dbus_gvalue_store.
3919
3920 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3921
3922         Fix a bunch of lifecycle and memory management problems
3923         in the mono bindings.
3924
3925         * mono/Arguments.cs (Arguments): Implement IDisposable
3926
3927         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3928         strictly a static class.
3929
3930         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3931         delegates into this file.
3932         (Connection): Implement IDisposable.
3933         (Dispose): Disconnect the connection and set the raw connection
3934         pointer to IntPtr.Zero.
3935         (~Connection): Call Dispose().
3936         (RegisterObjectPath): Added.  Manages the registration of object
3937         paths so we can cleanly disconnect them at dispose/finalize time.
3938         (UnregisterObjectPath): Ditto.
3939         (set_RawConnection): Unregister all of the object paths when
3940         changing the underlying DBusConnection.  Add them back onto the
3941         new connection, if any.
3942
3943         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3944         more unmanaged resources anymore, so it's not necessary.  Move all
3945         the DBusObjectPathVTable stuff out of here.
3946         (Handler): Save references to our delegates so that they don't get
3947         finalized.  Call Connection.RegisterObjectPath() instead of
3948         dbus_connection_register_object_path() directly.
3949         (Message_Called): Dispose the message after we're finished with
3950         it.
3951
3952         * mono/Message.cs (Message): Implement IDisposable.
3953         (Dispose): Dispose the Arguments, and set the RawMessage to
3954         IntPtr.Zero.
3955         (SendWithReplyAndBlock): We own the ref to the reply that comes
3956         back from dbus_connection_send_with_reply_and_block() so add a
3957         comment about that and unref it after we've constructed a managed
3958         MethodReturn class around it.  Fixes a big, big leak.
3959
3960         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3961         method.
3962         (BuildSignalHandler): After we've sent the Signal message, dispose
3963         of it.
3964         (BuildMethod): Dispose of the method call and reply messages after
3965         we've sent the message and extracted the data we want from the
3966         reply.
3967
3968         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3969         anymore.
3970         (Service_FilterCalled): Dispose of the message after we're
3971         finished with it.
3972
3973 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3974
3975         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3976         After we attach our pending call to the connection, unref
3977         it.  Fixes a leak.
3978  
3979         * mono/Connection.cs (set_RawConnection): Disconnect our
3980         filter and match callbacks from the old connection and
3981         reconnect them to the new connection, if any.
3982
3983         * mono/DBusType/Array.cs: "Code" is a static member, so
3984         don't use "this" to refer to it.  Fix for stricter checking
3985         in Mono 1.1.4.
3986  
3987         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3988         object path that we pass into unmanaged code.
3989  
3990         * mono/DBusType/String.cs (Append): Don't leak the string
3991         that we pass into unmanged code.
3992
3993 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3994         * NEWS: Update for 0.31
3995
3996         * configure.in: Release 0.31
3997         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3998
3999         * qt/Makefile.am: fixed build
4000
4001         * dbus/Makefile.am: soname bump for libdbus
4002
4003         * glib/Makefile.am: soname bump for libdbus-glib
4004
4005 2005-03-05  Havoc Pennington  <hp@redhat.com>
4006
4007         * dbus/dbus-sysdeps.c:
4008         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4009         value
4010         (_dbus_generate_random_bytes_buffer): fix return value
4011
4012         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4013         checks actually work, from Tom Parker <fdo@tevp.net>
4014
4015 2005-03-01  Colin Walters  <walters@verbum.org>
4016
4017         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4018         functions copied from dbus-glib-tool.c.
4019         (main): Convert lots of error code to use them.
4020         Also add some testing for introspection bits.
4021
4022 2005-03-01  Colin Walters  <walters@verbum.org>
4023         
4024         * doc/TODO: Remove introspection signature TODO.
4025
4026 2005-02-27  Colin Walters  <walters@verbum.org>
4027
4028         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4029         Change return value to const char * instead of int so we can do
4030         full signatures.
4031         (struct PropertyInfo, struct ArgInfo): Store char *.
4032         (property_info_new, arg_info_new): Update parameters, strdup.
4033         (property_info_unref, arg_info_unref): Free.
4034
4035         * glib/dbus-gidl.h: Update prototypes.
4036
4037         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4038         (validate_signature): New function, just validates signature and
4039         sets GError.
4040         (parse_property, parse_arg): Invoke validate_signature.  Store
4041         signature instead of just type code.
4042
4043         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4044         function to return a primary type for a signature, dropping
4045         information about types in container types.
4046         (dbus_gvalue_genmarshal_name_from_type)
4047         (dbus_gvalue_binding_type_from_type)
4048         (dbus_gvalue_ctype_from_type): Update to take full signature
4049          instead of type code.
4050         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4051
4052         * glib/dbus-gvalue.h: Update prototypes for above.
4053
4054         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4055         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4056         (introspect_properties, introspect_signals, write_interface):
4057         Update to handle signatures, and remove usage of
4058         _dbus_gutils_type_to_string.
4059         (handle_introspect): Print out type codes instead of e.g. "string"
4060         in hardcoded introspection XML; also use x_AS_STRING constants
4061         instead of hardcoding in string.
4062
4063         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4064         to string.  Remove usage of _dbus_gutils_type_to_string.
4065
4066         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4067
4068         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4069         deletion.
4070         
4071         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4072         (compute_marshaller_name, generate_glue): Handle signature change
4073         to string.
4074         (write_formal_parameters, write_args_for_direction): Ditto, and
4075         remove FIXME.
4076
4077         * tools/dbus-tree-view.c (type_to_string): Delete.
4078         (info_set_func_text): Update to print full signatures.
4079
4080         * test/glib/test-service-glib.xml: Change types to new
4081         introspection format.
4082
4083 2005-02-26  Havoc Pennington  <hp@redhat.com>
4084
4085         * doc/TODO: remove the "guid" item
4086
4087         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4088         (with_bus_thread_func): use open_private
4089
4090         * dbus/dbus-connection.c (dbus_connection_open_private): new
4091         function that works like the old dbus_connection_open()
4092         (dbus_connection_open): now returns an existing connection if
4093         possible
4094
4095         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4096         through the GUID to the transport
4097
4098         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4099         GUID in hex-encoded form.
4100
4101         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4102         pass GUID argument in to the transport
4103
4104         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4105         guid argument
4106
4107         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4108
4109         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4110
4111 2005-02-25  Havoc Pennington  <hp@redhat.com>
4112
4113         * doc/dbus-specification.xml: document the GUID thing
4114
4115         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4116         globally unique ID for the server, and put a "guid=hexencoded"
4117         field in the address
4118
4119         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4120
4121         * dbus/dbus-message.c: ditto
4122
4123         * dbus/dbus-dataslot.c: ditto
4124
4125         * dbus/dbus-list.c: ditto
4126
4127         * dbus/dbus-internals.h: wait, just include
4128         dbus-threads-internal.h here
4129         
4130         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4131         use in main library
4132
4133         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4134
4135 2005-02-24  Colin Walters  <walters@verbum.org>
4136
4137         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4138
4139 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4140
4141         * glib/Makefile.am: added dbus-gobject.h to sources list
4142         so distcheck doesn't fail
4143         
4144 2005-02-24  Havoc Pennington  <hp@redhat.com>
4145
4146         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4147         you must disconnect before unref, since locking and other things
4148         are screwed up otherwise. Fix assorted other locking stuff.
4149
4150         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4151         fix compilation
4152
4153         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4154         into a private header and don't export from the library
4155
4156         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4157
4158 2005-02-24  Colin Walters  <walters@verbum.org>
4159         
4160         * dbus/dbus-signature.c: New file; implements various functions
4161         related to type signatures.  Includes an interator for parsing,
4162         validation functions.
4163         (dbus_type_is_basic): Moved here from
4164         dbus-marshal-basic.c:_dbus_type_is_basic.
4165         (dbus_type_is_container): Moved here from
4166         dbus-marshal-basic.c:_dbus_type_is_container.
4167
4168         All callers of _dbus_type_is_container and _dbus_type_is_basic
4169         updated, and include dbus-signature.h.
4170
4171         * dbus/dbus-signature.h: New file; prototypes for the above.
4172
4173         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4174         dbus-signature.h.
4175
4176         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4177         function factored out of _dbus_first_type_in_signature.
4178         (_dbus_first_type_in_signature_c_str): New function; returns first
4179         type code for a type signature character.
4180
4181         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4182         handle function moves.
4183
4184         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4185
4186         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4187         function; skips to next complete type in type signature.
4188         Implemented using previous skip_one_complete_type.  Now
4189         skip_one_complete_type just delegates to
4190         _dbus_type_signature_next.
4191
4192         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4193         to dbus-signature.c
4194         (_dbus_type_is_container): Ditto.
4195
4196         * doc/dbus-specification.xml: Update introspection sample to
4197         use real type signatures.
4198
4199         * dbus/dbus-test.h: Prototype signature test.
4200
4201         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4202         signature tests.
4203
4204         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4205
4206 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4207
4208         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4209         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4210
4211 2005-02-21  Colin Walters  <walters@verbum.org>
4212
4213         * dbus/dbus-test-main.c (main): Take optional specific test
4214         argument.
4215
4216         * dbus/dbus-test.c (run_test): New function, runs a test function
4217         with no data directory.
4218         (run_data_test): Like above, but takes data directory.
4219         (dbus_internal_do_not_use_run_tests): Take
4220         specific test argument.  Replace lots of cut n' paste code
4221         with run_test and run_data_test.
4222
4223         * dbus/dbus-test.h: Update prototype for
4224         dbus_internal_do_not_use_run_tests.
4225
4226 2005-02-20  Havoc Pennington  <hp@redhat.com>
4227
4228         Fix bugs reported by Daniel P. Berrange
4229         
4230         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4231         (protected_change_watch): new function
4232         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4233         (_dbus_server_add_watch): change to work like the
4234         dbus-connection.c equivalents; like those, probably kind of
4235         busted, but should at least mostly work for now
4236         (dbus_server_disconnect): drop the lock if we were already
4237         disconnected, patch from Daniel P. Berrange
4238
4239         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4240         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4241         same stuff
4242
4243         * doc/TODO: todo about unscrewing this mess
4244
4245 2005-02-19  Colin Walters  <walters@verbum.org>
4246
4247         * glib/dbus-binding-tool-glib.c
4248         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4249
4250         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4251         as errno.h and sys/stat.h.
4252         (lose): New function, prints error with
4253         newline and exits.
4254         (lose_gerror): Similar, but takes GError for message.
4255         (main): Add --output argument to specify output file to write to,
4256         instead of always printing to stdout.  In this mode, determine
4257         timestamps on source files to see whether any are newer than the
4258         target file.  If not, exit.  Also convert a number of error
4259         messages to use lose (since it's shorter), and switch to using
4260         g_io_channel_shutdown.
4261
4262 2005-02-19  Havoc Pennington  <hp@redhat.com>
4263
4264         * glib/dbus-gobject.c
4265         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4266
4267         * glib/dbus-glib.c: fix doxygen warnings
4268
4269         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4270         is found on an <arg>
4271
4272 2005-02-17  Colin Walters  <walters@verbum.org>
4273
4274         * glib/dbus-gobject.h: Don't export
4275         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4276         
4277         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4278         (invoke_object_method): Handle it.
4279
4280         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4281         Handle rename.
4282         
4283 2005-02-17  Colin Walters  <walters@verbum.org>
4284
4285         * bus/.cvsignore, doc/.cvsignore
4286         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4287         Update.
4288
4289 2005-02-17  Colin Walters  <walters@verbum.org>
4290         
4291         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4292         Rename to DBUS_SERVICE_DBUS.
4293         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4294         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4295         Change the value from "org.freedesktop.Local"
4296         to "org.freedesktop.DBus.Local".
4297         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4298         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4299         DBUS_INTERFACE_INTROSPECTABLE.
4300         Change the value from "org.freedesktop.Introspectable"
4301         to "org.freedesktop.DBus.Introspectable".
4302         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4303         DBUS_INTERFACE_PROPERTIES.
4304         Change the value from "org.freedesktop.Properties"
4305         to "org.freedesktop.DBus.Properties".
4306         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4307         DBUS_INTERFACE_PEER.
4308         Change the value from "org.freedesktop.Peer"
4309         to "org.freedesktop.DBus.Peer".
4310         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4311         DBUS_INTERFACE_LOCAL.
4312         Change the value from "org.freedesktop.Local"
4313         to "org.freedesktop.DBus.Local".
4314
4315         All other users of those constants have been changed.
4316
4317         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4318
4319         * glib/dbus-gobject.c (handle_introspect): Use constants.
4320
4321         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4322
4323 2005-02-17  Colin Walters  <walters@verbum.org>
4324
4325         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4326         (parse_node, parse_interface, parse_method, parse_signal)
4327         (parse_property, parse_annotation): Lose if we're currently in an
4328         annotation.
4329         (parse_annotation): New function.
4330         (parser_start_element, parser_end_element): Handle annotation.
4331         (parse_method, parse_interface): Remove support for c_name attribute,
4332         switch to annotations.
4333
4334         * glib/dbus-gidl.h (interface_info_get_binding_names)
4335         (method_info_get_binding_names)
4336         (interface_info_get_binding_name, method_info_get_binding_name)
4337         (interface_info_set_binding_name, method_info_set_binding_name):
4338         Remove.
4339         (interface_info_get_annotations, method_info_get_annotations)
4340         (interface_info_get_annotation, method_info_get_annotation)
4341         (interface_info_add_annotation, method_info_add_annotation):
4342         Prototype.
4343
4344         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4345         for "bindings".
4346         (struct MethodInfo): Ditto.
4347         Straightfoward conversion of binding methods into annotation methods
4348         as prototyped.
4349
4350         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4351
4352         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4353
4354         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4355         Use new annotation API.
4356
4357         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4358         annotation element.
4359         
4360         * doc/dbus-specification.xml: Discuss introspection annotations,
4361         include list of well-known annotations.
4362
4363         * test/glib/test-service-glib.xml: Make validate against new DTD.
4364
4365 2005-02-17  Colin Walters  <walters@verbum.org>
4366
4367         This patch is based on initial work from
4368         Paul Kuliniewicz <kuliniew@purdue.edu>.
4369
4370         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4371         initialization of GValue from dbus type to here.
4372         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4373         for the "glib-genmarshal" program from a DBus type.
4374         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4375         into the C name for it we use in the glib bindings.
4376         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4377         glib C type (not GValue).
4378         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4379
4380         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4381         from dbus-gobject.c.
4382
4383         * glib/dbus-gutils.h: Prototype it.
4384
4385         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4386         (marshal_dbus_message_to_g_marshaller): Use new shared function
4387         dbus_glib_marshal_dbus_message_to_gvalue_array.
4388
4389         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4390         Will be changed once we have annotations.
4391
4392         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4393         GStaticRWLock.  Callers updated.
4394         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4395         (string_table_next): New function for iterating over zero-terminated
4396         string value array.
4397         (string_table_lookup): New function; retrieves specific entry in
4398         array.
4399         (get_method_data): New function; look up method data in object data chunk.
4400         (object_error_domain_prefix_from_object_info)
4401         (object_error_code_from_object_info): New functions, but not implemented yet.
4402         (method_interface_from_object_info): New function; retrieve interface name.
4403         (method_name_from_object_info): New function; retrieve method name.
4404         (method_arg_info_from_object_info): New function; retrieve argument data.
4405         (arg_iterate): New function; iterates over serialized argument data.
4406         (method_dir_signature_from_object_info): New function; returns a
4407         GString holding type signature for arguments for just one
4408         direction (input or output).
4409         (method_input_signature_from_object_info)
4410         (method_output_signature_from_object_info): New functions.
4411         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4412         converts dbus message arguments into a GValue array.  Used for both
4413         signal handling and method invocation.
4414         (struct DBusGlibWriteIterfaceData): New utility structure.
4415         (write_interface): New function; generate introspection XML for
4416         an interface.
4417         (introspect_interfaces): New function; gathers all interface->methods,
4418         generates introspection XML for them.
4419         (handle_introspect): Invoke introspect_interfaces.
4420         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4421         (lookup_object_and_method): New function; examines an incoming message
4422         and attempts to match it up (via interface, method name, and argument
4423         signature) with a known object and method.
4424         (gerror_domaincode_to_dbus_error_name): New function; converts a
4425         GError domain and code into a DBus error name.  Needs GError data
4426         added to object introspection to work well.
4427         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4428         GError.
4429         (invoke_object_method): New function to invoke an object method
4430         looked up via lookup_object_and_method.  Parses the incoming
4431         message, turns it into a GValue array, then invokes the marshaller
4432         specified in the DBusGMethodInfo.  Creates a new message with
4433         either return values or error message as appropriate.
4434         (gobject_message_function): Invoke lookup_object_and_method and
4435         invoke_object_method.
4436
4437         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4438         (enum DBusBindingOutputMode): New enum for binding output modes.
4439         (pretty_print): Print binding names.
4440         (dbus_binding_tool_error_quark): GError bits.
4441         (version): Fix typo.
4442         (main): Create GIOChannel for output.  Parse new --mode argument,
4443         possible values are "pretty-print", "glib-server", "glib-client".
4444         Use mode to invoke appropriate function.
4445         
4446         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4447
4448         * glib/dbus-glib-tool.h: New header, just includes GError bits
4449         for now.
4450
4451         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4452         maps binding style to name.
4453         (struct MethodInfo): Ditto.
4454         (get_hash_keys, get_hash_key): Utility function, returns keys for
4455         a GHashTable.
4456         (interface_info_new, method_info_new): Initialize bindings.
4457         (interface_info_unref, method_info_unref): Destroy bindings.
4458         (method_info_get_binding_names, method_info_get_binding_name)
4459         (interface_info_get_binding_names, interface_info_get_binding_name):
4460         Functions for retrieving binding names.
4461         (method_info_set_binding_name, interface_info_set_binding_name):
4462         Functions for setting binding names.
4463
4464         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4465         for glib binding generation.
4466
4467         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4468         and client-side glib glue generation.
4469
4470         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4471         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4472         dbus-glib-tool.h.
4473
4474         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4475         of using GClosureMarshal directly.
4476         (struct DBusGObjectInfo): Add n_infos member.
4477
4478         * test/glib/test-service-glib.xml: New file; contains introspection data
4479         for MyTestObject used in test-service-glib.c.
4480
4481         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4482         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4483         (my_object_uppercase, my_object_many_args): New test methods.
4484         (main): Use dbus_g_object_class_install_info to include generated object
4485         info.
4486
4487         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4488         as well as client-side bindings.
4489
4490         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4491         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4492         using both the dbus_gproxy stuff directly as well as the generated bindings.
4493
4494 2005-02-15  Havoc Pennington  <hp@redhat.com>
4495
4496         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4497         complete a pending call, don't run filters first.
4498
4499         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4500         dbus_pending_call_steal_reply
4501
4502         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4503         _dbus_connection_block_pending_call
4504         (dbus_pending_call_get_reply): change to steal_reply and return a
4505         ref
4506
4507         * dbus/dbus-connection.c
4508         (dbus_connection_send_with_reply_and_block): port to work in terms
4509         of DBusPendingCall
4510         (_dbus_connection_block_pending_call): replace block_for_reply
4511         with this
4512
4513 2005-02-14  Havoc Pennington  <hp@redhat.com>
4514
4515         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4516         properly handle looking up group information by name; fix 
4517         from j@bootlab.org
4518
4519 2005-02-13  Havoc Pennington  <hp@redhat.com>
4520
4521         * dbus/dbus-connection.c (dbus_connection_return_message) 
4522         (dbus_connection_borrow_message): hold dispatch lock while message
4523         is outstanding
4524         (_dbus_connection_block_for_reply): hold dispatch lock while we
4525         block for the reply, so nobody steals our reply
4526         (dbus_connection_pop_message): hold the dispatch lock while we
4527         pluck the message
4528
4529 2005-02-13  Havoc Pennington  <hp@redhat.com>
4530
4531         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4532         (_dbus_connection_release_dispatch)
4533         (_dbus_connection_acquire_io_path)
4534         (_dbus_connection_release_io_path): make the mutex and condvar
4535         control access to the "acquired" flag. Drop the connection lock
4536         while waiting on the condvar. Hopefully these are baby steps in
4537         roughly the right direction.
4538
4539 2005-02-13  Havoc Pennington  <hp@redhat.com>
4540
4541         * dbus/dbus-connection.c: use separate mutexes for the condition
4542         variables; this is some kind of baseline for sanity, but the
4543         condition variables still aren't used correctly afaict
4544
4545 2005-02-13  Havoc Pennington  <hp@redhat.com>
4546
4547         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4548         fix a double-unlock
4549
4550         * dbus/dbus-connection.c
4551         (_dbus_connection_detach_pending_call_unlocked): add this
4552
4553         Initial semi-correct pass through to fix thread locking; there are
4554         still some issues with the condition variable paths I'm pretty
4555         sure
4556         
4557         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4558         lock/unlock calls
4559
4560         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4561         rename to add _unlocked
4562         (struct DBusConnection): move "dispatch_acquired" and
4563         "io_path_acquired" to use only one bit each.
4564         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4565         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4566         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4567         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4568         (_dbus_connection_remove_timeout) 
4569         (_dbus_connection_toggle_timeout): drop lock when calling out to
4570         user functions; done in a hacky/bad way.
4571         (_dbus_connection_send_and_unlock): add a missing unlock
4572         (_dbus_connection_block_for_reply): add a missing unlock
4573
4574         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4575         drop lock in a hacky probably unsafe way to call out to user
4576         function
4577
4578 2005-02-12  Havoc Pennington  <hp@redhat.com>
4579
4580         * tools/dbus-tree-view.c (info_set_func_text): display more
4581         details on args
4582
4583         * bus/driver.c (bus_driver_handle_list_services): list the bus
4584         driver
4585
4586         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4587
4588         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4589         (method_info_get_n_args): new function
4590
4591 2005-02-12  Havoc Pennington  <hp@redhat.com>
4592
4593         * bus/driver.c (bus_driver_handle_introspect): add introspection
4594         for bus driver
4595
4596 2005-02-12  Havoc Pennington  <hp@redhat.com>
4597
4598         * bus/driver.c: put the signature of each bus driver method in the
4599         table of handlers and check it on incoming calls; this isn't
4600         really useful, but going to add introspect support in a minute.
4601
4602 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4603
4604         * mono/Connection.cs: The unpredictability of finalizers in mono
4605         prevents us from deterministically disconnecting the filters from
4606         the Service class's finalizer, so move tracking of filters and
4607         matches here.  Add API for that.
4608
4609         * mono/Service.cs: Remove the code, add code which calls the
4610         methods now on the Connection class.
4611
4612 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4613
4614         * python/dbus.py (class Sender): added to support dbus signals better
4615         (Bus::add_signal_receiver): added expand_args parameter which defaults
4616         to True.  When expand args is True the signal handler will pass the 
4617         message arguments as parameters to the signal handler.  If False
4618         revert to previous behavior where the signal handler must get the
4619         argument list from the message.  This is to help port applications
4620         like HAL that have a tendancy to send variable length argument lists.
4621         self._match_rule_to_receivers is now a dict of dicts.
4622         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4623         removing it from a list
4624         (Bus::_signal_func): change signal handlers so that interface,
4625         signal_name, service, path and message are packed into a Sender
4626         object and that is passed to the handler.  If expand_args is True
4627         extract the args list from the message and append it to the parameter
4628         list
4629         
4630         * python/dbus_bindings.pyx.in (class Signature): added to support 
4631         signiature types
4632         (MessageIter::__init__): changed iteration limit to match D-BUS
4633         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4634         STRUCT and VARIENT type support
4635         (MessageIter::python_value_to_dbus_sig): made recursive to support
4636         recursive types
4637         (MessageIter::append*): added Signature, dict, tuple 
4638         support
4639
4640         * python/examples/example-client.py: added examples of getting tuples
4641         and dicts
4642
4643         * python/examples/example-service.py: added examples of sending tuples
4644         and dicts
4645
4646         * python/examples/example-signal-recipient.py: Fixed to handle new
4647         signal callback format
4648
4649 2005-02-10  Havoc Pennington  <hp@redhat.com>
4650
4651         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4652         (call dbus_g_proxy_add_signal)
4653
4654         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4655         escape the hostname
4656         (_dbus_server_new_for_domain_socket): escape the path
4657
4658         * dbus/dbus-address.c (dbus_address_escape_value): new
4659         (dbus_address_unescape_value): new
4660         (dbus_parse_address): unescape values
4661
4662         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4663
4664         * doc/dbus-specification.xml: explain how to escape values in
4665         addresses
4666
4667 2005-02-10  Havoc Pennington  <hp@redhat.com>
4668
4669         * dbus/dbus-message-factory.c (generate_special): modify test to
4670         avoid using a non-basic dict key
4671
4672         * dbus/dbus-marshal-validate-util.c: add test for the below
4673
4674         * doc/dbus-specification.xml: require that dict keys are a basic
4675         type
4676
4677         * dbus/dbus-marshal-validate.c
4678         (_dbus_validate_signature_with_reason): require that dict key is a
4679         basic type
4680
4681 2005-02-10  Havoc Pennington  <hp@redhat.com>
4682
4683         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4684         change to be _and_unlock instead of _unlocked
4685
4686         * dbus/dbus-connection.c
4687         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4688         have no_update so we can find this bug quickly in future
4689
4690 2005-02-10  Havoc Pennington  <hp@redhat.com>
4691
4692         * dbus/dbus-message-util.c (verify_test_message): tests for string
4693         array
4694
4695         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4696         support for arrays of string/signature/path
4697
4698 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4699
4700         * dbus/dbus-connection.c
4701         (_dbus_connection_queue_received_message_link,
4702         _dbus_connection_message_sent): Add the path to
4703         the verbose output.
4704         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4705         _dbus_connection_send_preallocated_unlocked(), updated the
4706         dispatch status, and unlocks.  Fixes a bug where certain
4707         situations (like a broken pipe) could cause a Disconnect message
4708         to not be sent, tricking the bus into thinking a service was still
4709         there when the process had quit.
4710         (_dbus_connection_send_preallocated): Call
4711         _dbus_connection_send_preallocated_and_unlock().
4712         (_dbus_connection_send_and_unlock): Added.  Calls
4713         _dbus_connection_send_preallocated_and_unlock().
4714         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4715         (dbus_connection_send_with_reply): Update the dispatch status and
4716         unlock.
4717
4718         * mono/Service.cs (~Service): Added.  Removes the filter so that
4719         we don't get unmanaged code calling back into a GCed delegate.
4720         (RemoveFilter); Added.
4721
4722 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4723
4724         * dbus/dbus-message.c (dbus_message_iter_open_container):
4725         - Removed check for iterator type being an array because
4726         get_arg_type does not work with writer iterators
4727         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4728
4729 2005-02-07  Havoc Pennington  <hp@redhat.com>
4730
4731         * doc/dbus-specification.xml: some more language cleanups; add
4732         stuff about how to deal with invalid protocol and extension
4733         points; add _ to allowed chars in auth commands; add EXTENSION_
4734         auth command prefix
4735
4736 2005-02-06  Havoc Pennington  <hp@redhat.com>
4737
4738         * s/expected/required/ in a couple places for clarity
4739
4740 2005-02-07  Colin Walters  <walters@verbum.org>
4741
4742         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4743         sender or proposed_recipient.
4744
4745 2005-02-06  Havoc Pennington  <hp@redhat.com>
4746
4747         * dbus/dbus-message-factory.c (generate_special): more tests
4748
4749         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4750         array length that exceeds the maximum
4751
4752 2005-02-05  Havoc Pennington  <hp@redhat.com>
4753
4754         * dbus/dbus-message-factory.c (generate_special): more test cases,
4755         increasing coverage
4756
4757         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4758         reason why a signature was invalid
4759
4760         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4761         skip the length of the string before we look at it in validation
4762
4763         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4764         equal_substring
4765
4766         * dbus/dbus-message.c (_dbus_message_loader_new): default
4767         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4768
4769 2005-02-05  Havoc Pennington  <hp@redhat.com>
4770
4771         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4772         if the signature of a variant was empty
4773         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4774         struct with no element type)
4775
4776         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4777         mangled messages to break things
4778
4779 2005-02-04  Havoc Pennington  <hp@redhat.com>
4780
4781         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4782         g_quark_try_string() so it actually can return 0
4783         (dbus_g_proxy_connect_signal): ditto
4784
4785 2005-02-04  Havoc Pennington  <hp@redhat.com>
4786
4787         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4788         bogus warning
4789         (tristring_from_message): assert cleanly on null path/interface
4790         (should not be possible though I decided later)
4791         (dbus_g_proxy_dispose): move proxy manager unregistration here
4792         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4793         g_return_if_fail() checks
4794
4795 2005-02-04  Havoc Pennington  <hp@redhat.com>
4796
4797         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4798
4799         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4800         (with some minor changes)
4801
4802         * doc/dbus-specification.xml: add deprecated attribute to
4803         introspection format
4804
4805 2005-01-31  Havoc Pennington  <hp@redhat.com>
4806
4807         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4808         think it's sort of right
4809
4810 2005-01-30  Havoc Pennington  <hp@redhat.com>
4811
4812         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4813
4814 2005-01-30  Havoc Pennington  <hp@redhat.com>
4815
4816         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4817
4818         * autogen.sh: change to autotools 1.9
4819
4820         * glib/dbus-gproxy.c: completely change how signals work
4821         (dbus_g_proxy_add_signal): new function to specify signature of a
4822         signal
4823         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4824         and g_warning if the incoming message has the wrong signature.
4825
4826 2005-01-30  Havoc Pennington  <hp@redhat.com>
4827
4828         * tools/dbus-names-model.c (have_names_notify): fix this
4829
4830         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4831         up the string array handling a bit 
4832
4833 2005-01-30  Havoc Pennington  <hp@redhat.com>
4834
4835         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4836         (dbus_g_pending_call_cancel): new function
4837
4838         * dbus/dbus-glib.h: move GType decls for connection/message here;
4839         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4840         here, just kind of rationalizing how we handle all that
4841
4842         * tools/dbus-names-model.c: new file for a tree model listing the
4843         services on a bus
4844
4845         * tools/dbus-tree-view.c (model_new): use proper typing on the
4846         model rows
4847
4848 2005-01-30  Havoc Pennington  <hp@redhat.com>
4849
4850         * glib/dbus-gmain.c: add a custom GSource back that just checks
4851         whether the message queue has anything in it; otherwise, there are 
4852         cases where we won't see messages in the queue since there was no 
4853         IO visible to the glib main loop
4854
4855         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4856         increase default message timeout to 25 seconds
4857
4858 2005-01-30  Havoc Pennington  <hp@redhat.com>
4859
4860         * test/glib/test-profile.c (no_bus_stop_server): remove the
4861         warning about the g_warning that I just fixed
4862
4863         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4864         custom source, seems to be a lot easier to understand and work
4865         better.
4866
4867 2005-01-30  Havoc Pennington  <hp@redhat.com>
4868
4869         I think this main loop thing is conceptually broken, but here are 
4870         some band aids. I'll maybe rewrite it in a minute.
4871         
4872         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4873         custom GSource, so don't pass it in; confusing
4874         (gsource_server_finalize, gsource_connection_finalize): add
4875         finalize handlers that remove all the watches.  
4876
4877 2005-01-30  Havoc Pennington  <hp@redhat.com>
4878
4879         * glib/dbus-gobject.c (introspect_properties): fix the XML
4880         generated
4881
4882         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4883         which effectively detects the use of freed messages
4884
4885         * glib/dbus-gobject.c (handle_introspect): modify and return the
4886         reply message instead of the incoming message
4887
4888         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4889         gee, maybe it should SEND THE XML instead of just making a string
4890         and freeing it again ;-)
4891
4892         * tools/dbus-print-message.c (print_message): improve printing of
4893         messages
4894
4895         * configure.in: add debug-glib.service to the output
4896
4897 2005-01-30  Havoc Pennington  <hp@redhat.com>
4898
4899         dbus-viewer introspected and displayed the bus driver
4900         
4901         * dbus/dbus-object-tree.c 
4902         (object_tree_test_iteration): add tests for a handler registered on "/"
4903
4904         * dbus/dbus-object-tree.c
4905         (_dbus_decompose_path): fix to handle path "/" properly
4906         (run_decompose_tests): add tests for path decomposition
4907         
4908         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4909         properly
4910
4911         * glib/dbus-gobject.c (handle_introspect): fix quotes
4912
4913         * test/glib/run-test.sh: support launching the bus, then running
4914         dbus-viewer
4915
4916         * test/glib/test-service-glib.c (main): put in a trivial gobject
4917         subclass and register it on the connection
4918
4919         * bus/driver.c (bus_driver_handle_introspect): implement
4920         introspection of the bus driver service
4921
4922         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4923         identifiers, doctype decl
4924
4925         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4926         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4927         returning the service unchanged.
4928         (bus_driver_handle_message): remove old check for reply_serial in
4929         method calls, now the message type deals with that
4930         (bus_driver_handle_message): handle NULL interface
4931
4932         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4933
4934         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4935         -1 for len
4936
4937         * tools/dbus-viewer.c: add support for introspecting a service on
4938         a bus
4939
4940         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4941         (dbus_g_pending_call_unref): add
4942
4943 2005-01-29  Havoc Pennington  <hp@redhat.com>
4944
4945         * tools/dbus-tree-view.c: add support for displaying properties.
4946         (run dbus-viewer with an introspect xml file as arg, then resize
4947         the window so the tree elements show up, not sure what that is)
4948
4949         * glib/dbus-gobject.c (handle_introspect): return
4950         org.freedesktop.Properties and org.freedesktop.Introspectable
4951         interfaces when we are introspected.
4952
4953         * doc/dbus-specification.xml: allow empty interface name when 
4954         Get/Set a property
4955
4956 2005-01-29  Havoc Pennington  <hp@redhat.com>
4957
4958         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4959         though it uses glib, it could be extended for any binding in
4960         principle
4961
4962         * glib/dbus-gobject.c (gobject_message_function): change to the
4963         new way properties work
4964
4965         * dbus/dbus-protocol.h: add the new interfaces
4966
4967         * doc/dbus-specification.xml: document the introspection format,
4968         Introspectable interface, and add an org.freedesktop.Properties
4969         interface.
4970
4971         * glib/dbus-gparser.c: add support for a <property> element
4972
4973         * glib/dbus-gidl.c: add PropertyInfo
4974
4975         * glib/dbus-gobject.c (handle_introspect): put the outermost
4976         <node> outside the signal and property descriptions.
4977         (introspect_properties): export properties as <property> rather
4978         than as method calls
4979
4980 2005-01-28  Havoc Pennington  <hp@redhat.com>
4981
4982         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4983         related to authentication protocol
4984
4985 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4986
4987         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4988                 - BUS_ACTIVATION -> BUS_STARTER
4989                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4990                 - class MessageIter (__init__): Added recursion checking 
4991                 so we throw a nice error instead of just disconnecting from the
4992                 bus.
4993                 (get): Added arg_type parameter for recursion.
4994                 Removed the nil type
4995                 Added signiture type placeholder (not implemented)
4996                 Added struct type placeholder (not implemented)
4997                 Added varient type placeholder (not implemented)
4998                 Commented out dict type for now     
4999                 (get_element_type): renamed from get_array_type
5000                 (get_*): changed to use the dbus_message_iter_get_basic API
5001                 (get_*_array): removed in favor of recursive get_array method
5002                 (get_array): new recursive method which calls get to marshal
5003                 the elements of the array
5004                 (value_to_dbus_sig): New method returns the corrasponding
5005                 dbus signiture to a python value
5006                 (append): Comment out dict handling for now
5007                 Handle lists with the new recursive API
5008                 Comment out None handling for now
5009                 (append_nil): removed
5010                 (append_*): changed to use dbus_message_iter_append_basic API
5011                 (append_*_array): removed in favor of recursive append_array 
5012                 method
5013                 (__str__): Make it easier to print out recursive iterators
5014                 for debugging
5015                 - class Message (__str__): moved type inspection to the
5016                 MessageIter class' __str__ method
5017                 (get_iter): Added an append parameter wich defaults to False
5018                 If True use the new API's to create an append iterator
5019
5020         * python/dbus.py: Update to use new bindings API
5021                 - TYPE_ACTIVATION -> TYPE_STARTER
5022                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5023                 - class ActivationBus -> class StarterBus
5024                 - class RemoteObject (__call__): get an append iterator
5025                 - (_dispatch_dbus_method_call): get an append iterator
5026                 - class Object (emit_signal): get an append iterator
5027
5028         * python/examples/: Fixed up the examples to work with the new API
5029                 
5030 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5031
5032         * configure.in: Bump version up to 0.30.
5033
5034         * HACKING: Add a release item to bump the version number up after 
5035         a release.
5036
5037 2005-01-28  Havoc Pennington  <hp@redhat.com>
5038
5039         * doc/dbus-specification.xml: update to describe 16-bit types and
5040         dict entries
5041
5042         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5043         assertion
5044
5045         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5046         type
5047
5048         * dbus/dbus-marshal-recursive.c: implement
5049
5050 2005-01-27  Havoc Pennington  <hp@redhat.com>
5051
5052         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5053
5054         * configure.in: find the right type for 16 and 32 bit ints as well
5055         as 64
5056
5057         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5058         the 16-bit types so people don't have to stuff them in 32-bit or
5059         byte arrays.
5060
5061 2005-01-27  Havoc Pennington  <hp@redhat.com>
5062
5063         * dbus/dbus-message.c: byteswap the message if you init an
5064         iterator to read/write from it
5065         
5066         * dbus/dbus-marshal-byteswap.c: new file implementing 
5067         _dbus_marshal_byteswap()
5068
5069         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5070
5071 2005-01-26  Havoc Pennington  <hp@redhat.com>
5072         
5073         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5074         build, apparently - nobody noticed?)
5075         
5076 2005-01-26  Havoc Pennington  <hp@redhat.com>
5077
5078         * dbus/dbus-marshal-recursive.h: remove todo comment
5079
5080 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5081
5082         * Land the mono binding changes to conform to the new APIs.
5083
5084         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5085         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5086
5087         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5088         type code as a string.
5089         (InitAppending): Rename dbus_message_append_iter_init() to
5090         dbus_message_iter_init_append().
5091
5092         * mono/BusDriver.cs: Rename ServiceEventHandler to
5093         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5094         Rename ServiceOwnerChanged to NameOwnerChanged.
5095
5096         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5097         underlying C call.
5098
5099         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5100
5101         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5102         dbus_bus_acquire_service() to dbus_bus_request_name().
5103
5104         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5105         of Type.UnderlyingSystemType to get the correct element type for
5106         the array.
5107         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5108         dbus_message_get_{element|arg}_type() instead of
5109         dbus_message_iter_init_array_iterator().
5110         (Append): Replace dbus_message_iter_append_array() with
5111         dbus_message_iter_open_container() and
5112         dbus_message_iter_close_container().
5113
5114         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5115         types have been removed.
5116         
5117         * mono/DBusType/*.cs: Replace calls of
5118         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5119         but specify the type in the DllImport extern declaration.  Ditto
5120         for dbus_message_iter_append_[type]() ->
5121         dbus_message_iter_append_basic().
5122
5123         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5124         NameOwnerChangedHandler.
5125
5126 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5127
5128         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5129                 - get_base_service -> get_unique_name
5130                 - bus_get_base_service -> bus_get_unique_name
5131                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5132                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5133                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5134                 - bus_activate_service -> bus_start_service_by_name
5135                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5136                 - bus_acquire_service -> bus_request_name
5137                 - dbus_bus_acquire_service -> dbus_bus_request_name
5138                 - bus_service_exists -> bus_name_has_owner
5139                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5140
5141         * python/dbus.py: Rename of methods
5142                 - activate_service -> start_service_by_name
5143                 - bus_acquire_service -> bus_request_name
5144                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5145                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5146
5147         
5148 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5149
5150         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5151         signature for the method that can't be found.
5152
5153         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5154         the message has any arguments, we need to call
5155         _dbus_type_reader_get_current_type(), not
5156         _dbus_type_reader_has_next().
5157
5158 2005-01-24  Havoc Pennington  <hp@redhat.com>
5159
5160         * dbus/dbus-message-factory.c: more testing of message validation
5161
5162         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5163         header
5164
5165 2005-01-23  Havoc Pennington  <hp@redhat.com>
5166
5167         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5168         get this all working, not many tests in the framework yet though
5169
5170 2005-01-22  Havoc Pennington  <hp@redhat.com>
5171
5172         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5173         tutorial, based on work from David Wheeler.
5174
5175 2005-01-21  Havoc Pennington  <hp@redhat.com>
5176
5177         * dbus/dbus-bus.c: add more return_if_fail checks
5178
5179         * dbus/dbus-message.c (load_message): have the "no validation"
5180         mode (have to edit the code to toggle the mode for now though)
5181
5182         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5183         skips all validation; I want to use this at least for benchmark
5184         baseline, I'm not sure if it should be a publicly-available switch.
5185
5186 2005-01-21  Havoc Pennington  <hp@redhat.com>
5187
5188         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5189         toplevel doxygen group as the low-level API stuff
5190
5191         * dbus/dbus.h: note that libdbus is the low-level API
5192
5193 2005-01-20  Havoc Pennington  <hp@redhat.com>
5194
5195         * update-dbus-docs.sh: script to update docs on the web site, only
5196         works for me though. neener.
5197
5198 2005-01-20  Havoc Pennington  <hp@redhat.com>
5199
5200         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5201         code can reveal bugs in it
5202
5203 2005-01-20  Havoc Pennington  <hp@redhat.com>
5204
5205         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5206         select() version, patches from Tor Lillqvist
5207
5208 2005-01-20  Havoc Pennington  <hp@redhat.com>
5209
5210         * doc/dbus-tutorial.xml: replace > with &gt;
5211
5212         * bus/services.c (bus_registry_acquire_service): validate the name
5213         and return a better error if it's no good.
5214
5215         * doc/dbus-specification.xml: note NO_AUTO_START change
5216
5217         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5218         from AUTO_START, we're toggling the default
5219
5220         * bus/dispatch.c: adapt the tests to change of auto-start default
5221
5222 2005-01-18  Havoc Pennington  <hp@redhat.com>
5223
5224         * rename dbus-daemon-1 to dbus-daemon throughout
5225
5226 2005-01-18  Havoc Pennington  <hp@redhat.com>
5227
5228         * Throughout, grand renaming to strip out the use of "service",
5229         just say "name" instead (or "bus name" when ambiguous).  Did not
5230         change the internal code of the message bus itself, only the
5231         programmer-facing API and messages.
5232         
5233         * doc/dbus-specification.xml: further update the message bus section
5234         
5235         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5236         in error case
5237
5238 2005-01-17  Havoc Pennington  <hp@redhat.com>
5239
5240         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5241         ever
5242
5243         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5244         "invalid name character" not only non-ASCII
5245
5246         * doc/dbus-specification.xml: further update spec, message bus 
5247         parts are still out-of-date but the marshaling etc. stuff is now
5248         accurate-ish
5249
5250 2005-01-17  Havoc Pennington  <hp@redhat.com>
5251
5252         * doc/dbus-specification.xml: partially update spec
5253
5254 2005-01-17  Havoc Pennington  <hp@redhat.com>
5255
5256         * Throughout, align variant bodies according to the contained
5257         type, rather than always to 8. Should save a fair bit of space in
5258         message headers.
5259         
5260         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5261         fix handling of case where p == end
5262
5263         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5264
5265 2005-01-17  Havoc Pennington  <hp@redhat.com>
5266
5267         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5268
5269         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5270         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5271         are marshaling/unmarshaling a boolean.
5272
5273 2005-01-16  Havoc Pennington  <hp@redhat.com>
5274
5275         This is about it on what can be disabled/deleted from libdbus
5276         easily, back below 150K anyhow. Deeper cuts are more work than 
5277         just turning the code off as I've done here.
5278         
5279         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5280         signed int convenience funcs
5281
5282         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5283         verbose mode
5284
5285         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5286         things out of libdbus
5287
5288         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5289         
5290         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5291         tests-enabled-only, though it should probably be deleted)
5292
5293         * dbus/dbus-message-util.c: same stuff
5294
5295         * dbus/dbus-auth-util.c: same stuff
5296
5297 2005-01-16  Havoc Pennington  <hp@redhat.com>
5298
5299         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5300
5301         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5302         way for stripping down dbus-userdb.c stuff included in libdbus.
5303         Rename _dbus_parse_uid for consistency.
5304
5305 2005-01-16  Havoc Pennington  <hp@redhat.com>
5306
5307         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5308         name the assertion failed in
5309
5310         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5311         (_dbus_return_val_if_fail): assert that the name of the function
5312         containing the check doesn't start with '_', since we only want to 
5313         use checks on public functions
5314         
5315         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5316         checks to assertions
5317
5318         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5319         change checks to asserts for private function
5320
5321         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5322         to asserts for private function
5323
5324         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5325         broken assertion that was breaking make check
5326         (_dbus_type_reader_array_is_empty): remove this rather than fix
5327         it, was only used in assertions
5328
5329 2005-01-16  Havoc Pennington  <hp@redhat.com>
5330
5331         * test/unused-code-gc.py: hacky script to find code that's used
5332         only by the bus (not libdbus) or used only by tests or not used at
5333         all. It has some false alarms, but looks like we can clean up a
5334         lot of size from libdbus.
5335
5336         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5337         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5338         
5339 2005-01-16  Havoc Pennington  <hp@redhat.com>
5340
5341         * Add and fix docs according to Doxygen warnings throughout
5342         source.
5343         
5344         * dbus/dbus-marshal-recursive.c
5345         (_dbus_type_reader_array_is_empty): change this to just call
5346         array_reader_get_array_len() and make it static
5347
5348         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5349         from get_array_type
5350         (dbus_message_iter_init_append): rename from append_iter_init
5351
5352         * dbus/dbus-marshal-recursive.c
5353         (_dbus_type_reader_get_element_type): rename from
5354         _dbus_type_reader_get_array_type
5355
5356 2005-01-15  Havoc Pennington  <hp@redhat.com>
5357
5358         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5359
5360         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5361         when DBUS_DISABLE_ASSERT
5362         (_dbus_marshal_set_basic): be sure we align for the string length
5363
5364         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5365         this look faster
5366
5367         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5368         inline macro version
5369         (_dbus_string_set_byte): provide inline macro version
5370
5371 2005-01-15  Havoc Pennington  <hp@redhat.com>
5372
5373         * Land the new message args API and type system.
5374
5375         This patch is huge, but the public API change is not 
5376         really large. The set of D-BUS types has changed somewhat, 
5377         and the arg "getters" are more geared toward language bindings;
5378         they don't make a copy, etc.
5379
5380         There are also some known issues. See these emails for details
5381         on this huge patch:
5382         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5383         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5384         
5385         * dbus/dbus-marshal-*: all the new stuff
5386
5387         * dbus/dbus-message.c: basically rewritten
5388
5389         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5390         freed blocks to be all non-nul bytes so using freed memory is less
5391         likely to work right
5392
5393         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5394         DBUS_FAIL_MALLOC=N environment variable, so you can do
5395         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5396         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5397         thorough.
5398
5399         * qt/message.cpp: port to the new message args API
5400         (operator<<): use str.utf8() rather than str.unicode()
5401         (pretty sure this is right from the Qt docs?)
5402
5403         * glib/dbus-gvalue.c: port to the new message args API
5404
5405         * bus/dispatch.c, bus/driver.c: port to the new message args API
5406
5407         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5408         "locked" flag to TRUE and align_offset to 0; I guess we never
5409         looked at these anyhow, but seems cleaner.
5410
5411         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5412         move allocation padding macro to this header; use it to implement
5413         (_DBUS_STRING_STATIC): ability to declare a static string.
5414
5415         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5416         change to return TRUE if the interface is not set.
5417
5418         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5419         to dbus-marshal-validate.[hc]
5420
5421         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5422         dbus-internals.c
5423
5424         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5425         to dbus-marshal-*.[hc]
5426
5427         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5428         function here from dbus-marshal.c
5429
5430 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5431
5432         * NEWS: Update for 0.23.
5433
5434         * configure.in: Release 0.23.
5435
5436 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5437
5438         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5439         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5440         behind.
5441
5442         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5443         uninstall"
5444
5445         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5446         is an enum, get the enum's underlying type.  Another mono
5447         1.1.3 fix.
5448
5449 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5450
5451         Patch from Sjoerd Simons <sjoerd@luon.net>
5452
5453         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5454         DESTDIR.  It breaks stuff.
5455
5456 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5457
5458         Patch from Tambet Ingo <tambet@ximian.com>
5459
5460         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5461         calling type.GetElementType().  The code previously depended on
5462         broken Mono behavior, which was fixed in Mono 1.1.3.
5463
5464         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5465         Activator.CreateInstance() so that the class's constructor is
5466         called with the right parameters.
5467
5468 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5469
5470         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5471
5472         * dbus/dbus-connection.c
5473         (_dbus_connection_queue_received_message_link): Call
5474         _dbus_connection_remove_timeout() instead of the _locked()
5475         variant, since it's always called from
5476         _dbus_connection_handle_watch(), which handles the locking.
5477         Removed the _locked() variant since it's no longer used.
5478
5479 2005-01-03  Havoc Pennington  <hp@redhat.com>
5480
5481         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5482         return
5483         
5484 2004-12-26  Havoc Pennington  <hp@redhat.com>
5485
5486         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5487
5488 2005-01-03  Havoc Pennington  <hp@redhat.com>
5489
5490         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5491         floating point
5492
5493         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5494
5495 2005-01-02  Havoc Pennington  <hp@redhat.com>
5496
5497         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5498
5499 2005-01-01  Havoc Pennington  <hp@redhat.com>
5500
5501         * configure.in: add -Wfloat-equal
5502
5503 2005-01-01  Havoc Pennington  <hp@redhat.com>
5504
5505         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5506         for a variety of reasons '==' doesn't do this.
5507
5508 2004-12-31  Havoc Pennington  <hp@redhat.com>
5509
5510         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5511         I keep wishing I had
5512
5513 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5514
5515         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5516
5517 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5518
5519         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5520         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5521         dbus-protocol.h.  Because they are defines and not enums they are not
5522         autogenerated.
5523
5524 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5525
5526         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5527         dbus_bus_activate_service
5528
5529         * python/dbus.py (Bus.activate_service): activate a service on the
5530         bus.
5531
5532 2004-12-24  Havoc Pennington  <hp@redhat.com>
5533
5534         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5535         file format has also changed and I haven't adapted to that yet
5536         
5537         * Makefile.am: load .gcno files from latest gcc
5538
5539 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5540         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5541
5542         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5543         lowlevel binding
5544
5545         * python/dbus.py (get_unix_user): Added binding to 
5546         call dbus_bindings.bus_get_unix_user
5547
5548         * python/extract.py: Modified the proto_pat regex to
5549         handle unsigned long
5550
5551 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5552
5553         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5554         better POSIX compliance.
5555
5556 2004-12-19  Havoc Pennington  <hp@redhat.com>
5557
5558         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5559         (_dbus_string_insert_8_aligned): new functions
5560
5561         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5562
5563 2004-12-18  Havoc Pennington  <hp@redhat.com>
5564
5565         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5566         macro
5567
5568         * dbus/dbus-message.c: fix a comment, and add a still-unused
5569         not-implemented function
5570
5571         * dbus/dbus-marshal.h: fix comment
5572
5573         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5574
5575 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5576
5577         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5578         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5579         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5580         Type.UnderlyingSystemType to get the actual system type
5581         underneath.  This code previously depended on the broken Mono
5582         behavior, which was fixed in 1.1.3.
5583
5584 2004-11-27  Havoc Pennington  <hp@redhat.com>
5585
5586         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5587         are disabled
5588         (_dbus_string_get_const_data): inline when asserts are disabled
5589
5590         * dbus/dbus-message.c: record the _dbus_current_generation of
5591         creation so we can complain if dbus_shutdown() is used improperly.
5592         Do this only if checks are enabled.
5593
5594         * dbus/dbus-connection.c: ditto
5595         
5596 2004-11-26  Havoc Pennington  <hp@redhat.com>
5597
5598         * test/glib/test-profile.c: add with_bus mode to profile echoes
5599         that go through the bus.
5600
5601         * test/glib/run-test.sh: add ability to run test-profile
5602
5603         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5604         config file reload.
5605
5606 2004-11-26  Havoc Pennington  <hp@redhat.com>
5607
5608         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5609         thing was implemented
5610
5611 2004-11-26  Havoc Pennington  <hp@redhat.com>
5612
5613         * test/glib/test-profile.c: tweak a bit, add support for some
5614         made-up minimal malloc overhead with plain sockets, since in 
5615         real life some sort of buffers are unavoidable thus we could 
5616         count them in the theoretical best case
5617
5618 2004-11-26  Havoc Pennington  <hp@redhat.com>
5619
5620         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5621         where I was trying to cache one too many messages
5622
5623 2004-11-26  Havoc Pennington  <hp@redhat.com>
5624
5625         * dbus/dbus-message.c: reimplement message cache as an array which 
5626         makes the cache about twice as fast and saves maybe 1.5% overall
5627
5628 2004-11-26  Havoc Pennington  <hp@redhat.com>
5629
5630         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5631         message cache lock here
5632
5633 2004-11-26  Havoc Pennington  <hp@redhat.com>
5634
5635         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5636         the "char byte_order" next to each other to save 4 bytes
5637         (dbus_message_new_empty_header): reduce preallocation, since the
5638         message cache should achieve a similar effect
5639         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5640         message cache that keeps a few DBusMessage around in a pool,
5641         another 8% speedup or so.
5642
5643         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5644
5645 2004-11-25  Havoc Pennington  <hp@redhat.com>
5646
5647         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5648         to write, without reading or blocking, try it before the poll()
5649         and skip the poll() if nothing remains to write. This is about a
5650         3% speedup in the echo client/server
5651
5652 2004-11-25  Havoc Pennington  <hp@redhat.com>
5653
5654         The primary change here is to always write() once before adding
5655         the write watch, which gives us about a 10% performance increase.
5656         
5657         * dbus/dbus-transport-unix.c: a number of modifications to cope
5658         with removing messages_pending
5659         (check_write_watch): properly handle
5660         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5661         messages_pending stuff
5662         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5663         AUTHENTICATED cases
5664         (unix_handle_watch): after writing, see if the write watch can be
5665         removed
5666         (unix_do_iteration): assert that write_watch/read_watch are
5667         non-NULL rather than testing that they aren't, since they 
5668         aren't allowed to be NULL. check_write_watch() at the end so 
5669         we add the watch if we did not finish writing (e.g. got EAGAIN)
5670
5671         * dbus/dbus-transport-protected.h: remove messages_pending call,
5672         since it resulted in too much inefficient watch adding/removing; 
5673         instead we now require that the transport user does an iteration 
5674         after queueing outgoing messages, and after trying the first
5675         write() we add a write watch if we got EAGAIN or exceeded our 
5676         max bytes to write per iteration setting
5677
5678         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5679         function
5680
5681         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5682         freed and then accessed, valgrind flagged this bug, fix it
5683
5684         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5685         as the last valid field plus 1, where really it is equal to the
5686         last valid field. Corrects some message corruption issues.
5687
5688         * dbus/dbus-mainloop.c: verbosity changes
5689
5690         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5691         instead of aborting in one of the test codepaths
5692
5693         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5694         caused not printing the pid ever again if a verbose was missing
5695         the newline at the end
5696         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5697
5698         * dbus/dbus-connection.c: verbosity changes; 
5699         (dbus_connection_has_messages_to_send): new function
5700         (_dbus_connection_message_sent): no longer call transport->messages_pending
5701         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5702         try to write() immediately, so we can avoid the write watch. This
5703         is the core purpose of this patchset
5704         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5705         dump the outgoing message queue, so nobody will get confused
5706         trying to send them or thinking stuff is pending to be sent
5707
5708         * bus/test.c: verbosity changes
5709
5710         * bus/driver.c: verbosity/assertion changes
5711
5712         * bus/dispatch.c: a bunch of little tweaks to get it working again
5713         because this patchset changes when/where you need to block.
5714
5715 2004-11-23  Havoc Pennington  <hp@redhat.com>
5716
5717         * test/glib/test-profile.c: modify to accept a plain_sockets
5718         argument in which case it will bench plain sockets instead of
5719         libdbus, for comparison purposes.
5720
5721 2004-11-22  Havoc Pennington  <hp@redhat.com>
5722
5723         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5724         threads for more time, so sysprof can get a grip on it.
5725
5726         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5727         pointless variable
5728
5729 2004-11-13  Havoc Pennington  <hp@redhat.com>
5730
5731         * test/glib/test-profile.c: fix this thing up a bit
5732
5733         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5734         preallocation sizes by a fair bit; not sure if this will be an
5735         overall performance win or not, but it does reduce reallocs.
5736
5737         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5738         the test hack that forced constant realloc if asserts are
5739         disabled, so we can profile sanely. Sprinkle in some
5740         _DBUS_UNLIKELY() which are probably pointless, but before I
5741         noticed the real performance problem I put them in.
5742         (_dbus_string_validate_utf8): micro-optimize this thing a little
5743         bit, though callgrind says it didn't help; then special-case
5744         ascii, which did help a lot; then be sure we detect nul bytes as
5745         invalid, which is a bugfix.
5746         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5747         superstition; use memset to nul the padding instead of a manual
5748         loop.
5749         (_dbus_string_get_length): inline this as a
5750         macro; it showed up in the profile because it's used for loop
5751         tests and so forth
5752
5753 2004-11-10  Colin Walters  <walters@verbum.org>
5754
5755         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5756         for extra paranoia.
5757
5758 2004-11-09  Colin Walters  <walters@verbum.org>
5759
5760         * dbus/dbus-string.c (_dbus_string_get_length): New
5761         function, writes DBusString to C buffer.
5762
5763         * dbus/dbus-string.h: Prototype it.
5764
5765         * dbus/dbus-message.c (dbus_message_type_to_string): New
5766         function, converts message type into C string.
5767
5768         * dbus/dbus-message.h: Prototype it.
5769
5770         * bus/selinux.c (bus_selinux_check): Take source pid,
5771         target pid, and audit data.  Pass audit data to
5772         avc_has_perm.
5773         (log_audit_callback): New function, appends extra
5774         audit information.
5775         (bus_selinux_allows_acquire_service): Also take
5776         service name, add it to audit data.
5777         (bus_selinux_allows_send): Also take message
5778         type, interface, method member, error name,
5779         and destination, and add them to audit data.
5780         (log_cb): Initialize func_audit.
5781         
5782         * bus/selinux.h (bus_selinux_allows_acquire_service)
5783         (bus_selinux_allows_send): Update prototypes 
5784
5785         * bus/services.c (bus_registry_acquire_service): Pass
5786         service name to bus_selinux_allows_acquire_service.
5787
5788         * bus/bus.c (bus_context_check_security_policy): Pass
5789         additional audit data.  Move assignment of dest
5790         to its own line.
5791
5792 2004-11-07  Colin Walters  <walters@verbum.org>
5793
5794         * dbus/dbus-transport-unix.c (do_authentication): Always
5795         initialize auth_completed.
5796         
5797 2004-11-07  Colin Walters  <walters@verbum.org>
5798
5799         * bus/bus.c (load_config): Break into three
5800         separate functions: process_config_first_time_only,
5801         process_config_every_time, and process_config_postinit.
5802         (process_config_every_time): Move call of
5803         bus_registry_set_service_context_table into
5804         process_config_postinit.
5805         (process_config_postinit): New function, does
5806         any processing that needs to happen late
5807         in initialization (and also on reload).
5808         (bus_context_new): Instead of calling load_config,
5809         open config parser here and call process_config_first_time_only
5810         and process_config_every_time directly.  Later, after
5811         we have forked but before changing UID,
5812         invoke bus_selinux_full_init, and then call
5813         process_config_postinit.
5814         (bus_context_reload_config): As in bus_context_new,
5815         load parse file inside here, and call process_config_every_time
5816         and process_config_postinit.
5817
5818         * bus/services.h, bus/services.c
5819         (bus_registry_set_service_context_table): Rename
5820         from bus_registry_set_sid_table.  Take string hash from config
5821         parser, and convert them here into SIDs.
5822
5823         * bus/config-parser.c (struct BusConfigParser): Have
5824         config parser only store a mapping of service->context
5825         string.
5826         (merge_service_context_hash): New function.
5827         (merge_included): Merge context string hashes instead
5828         of using bus_selinux_id_table_union.
5829         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5830         simply create a new string hash.
5831         (bus_config_parser_unref): Unref it.
5832         (start_selinux_child): Simply insert strings into hash,
5833         don't call bus_selinux_id_table_copy_over.
5834
5835         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5836         (bus_selinux_id_table_copy_over): Delete.
5837
5838 2004-11-03  Colin Walters  <walters@verbum.org>
5839
5840         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5841         variables.
5842         
5843 2004-11-03  Colin Walters  <walters@verbum.org>
5844
5845         * bus/test-main.c (test_pre_hook): Fix test logic,
5846         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5847
5848 2004-11-02  Colin Walters  <walters@redhat.com>
5849
5850         * bus/selinux.c (bus_selinux_init): Split into two functions,
5851         bus_selinux_pre_init and bus_selinux_post_init.
5852         (bus_selinux_pre_init): Just determine whether SELinux is
5853         enabled.
5854         (bus_selinux_post_init): Do everything else.
5855
5856         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5857         config file, and bus_selinux_post_init after.  This ensures that
5858         we don't lose the policyreload notification thread that
5859         bus_selinux_init created before forking previously.
5860         
5861         * bus/test-main.c (test_pre_hook): Update for split.
5862
5863 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5864
5865         Patch from Johan Fischer <linux@fischaz.com>
5866         
5867         * mono/doc/Makefile.am (install-data-local): Added directory
5868         install for DESTDIR
5869
5870 2004-10-29  Colin Walters  <walters@redhat.com>
5871
5872         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5873         parameter for fd to write pid to.       
5874
5875         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5876         
5877         * bus/bus.c (bus_context_new): Pass print_pid_fd
5878         to _dbus_become_daemon (bug #1720)
5879
5880 2004-10-29  Colin Walters  <walters@redhat.com>
5881
5882         Patch from Ed Catmur <ed@catmur.co.uk>
5883
5884         * mono/doc/Makefile.am (install-data-local): Handle
5885         DESTDIR.
5886
5887 2004-10-29  Colin Walters  <walters@redhat.com>
5888
5889         * bus/.cvsignore, qt/.cvsignore: Update.
5890
5891 2004-10-29  Colin Walters  <walters@redhat.com>
5892
5893         Patch from Kristof Vansant <de_lupus@pandora.be>
5894
5895         * configure.in: Detect Slackware.
5896         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5897         * bus/rc.messagebus.in: New file.
5898
5899 2004-10-29  Colin Walters  <walters@redhat.com>
5900
5901         * tools/dbus-monitor.c (filter_func): Return
5902         DBUS_HANDLER_RESULT_HANDLED in filter function
5903         for now.  See:
5904         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5905
5906 2004-10-29  Colin Walters  <walters@redhat.com>
5907
5908         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5909
5910         * bus/services.c (bus_registry_acquire_service): 
5911         Correctly retrieve service name from DBusString
5912         for printing.
5913
5914 2004-10-29  Colin Walters  <walters@redhat.com>
5915
5916         * dbus/dbus-glib.h: Update documentation to not
5917         refer to internal APIs.
5918
5919 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5920
5921         * mono/Arguments.cs (GetDBusTypeConstructor):
5922         type.UnderlyingSystemType will return "System.Byte" if you do it
5923         on "byte[]", which is not what we want.  So check the type.IsArray
5924         property and use System.Array instead.
5925
5926 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5927
5928         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5929         the DBusUserInfo structure since this is passed into the function.
5930         This would cause a double free when the function that allocated
5931         the structure would try to free it when an error occured.
5932
5933         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5934         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5935         for service activation to avoid 32bit/64bit parallel install issues
5936
5937 2004-10-21  Colin Walters  <walters@verbum.org>
5938
5939         * AUTHORS: Fix my email address, the @gnu.org one
5940         has been bouncing for some time.  Also add J5.
5941         
5942 2004-10-21  Colin Walters  <walters@verbum.org>
5943
5944         * dbus/dbus-transport-unix.c (do_authentication): Return
5945         authentication status to callers.
5946         (unix_handle_watch): If we completed authentication this round,
5947         don't do another read.  Instead wait until the next iteration,
5948         after we've read any pending data in the auth buffer.
5949         (unix_do_iteration): Ditto.
5950         (unix_handle_watch): Updated for new do_authentication prototype.
5951
5952 2004-10-18  Colin Walters  <walters@verbum.org>
5953
5954         * bus/selinux.c (bus_selinux_enabled): Handle
5955         --disable-selinux case.
5956         
5957 2004-10-18  Colin Walters  <walters@verbum.org>
5958
5959         * bus/selinux.h: Add bus_selinux_enabled.
5960         
5961         * bus/selinux.c (bus_selinux_enabled): Implement it.
5962         
5963         * bus/config-parser.c (struct include): Add
5964         if_selinux_enabled member.
5965         (start_busconfig_child): Parse if_selinux_enabled
5966         attribute for include.
5967         (bus_config_parser_content): Handle it.
5968
5969         * bus/session.conf.in, bus/system.conf.in: Add
5970         inclusion of context mapping to default config files;
5971         conditional on SELinux being enabled.
5972         
5973         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5974         
5975         * test/data/invalid-config-files/badselinux-1.conf, 
5976         test/data/invalid-config-files/badselinux-2.conf:
5977         Test files for bad syntax.
5978         
5979 2004-10-17  Colin Walters  <walters@verbum.org>
5980
5981         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5982         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5983         format specifier mismatches.
5984
5985 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5986
5987         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5988         format string.
5989
5990         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5991         pointer (bug #1540, Leonardo Boiko).
5992
5993 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5994
5995         * mono/BusDriver.cs: Changed BusDriver struct to remove
5996         the ServiceCreated and ServiceDeleted events and replace them
5997         with the new ServiceOwnerChanged event.
5998
5999         * mono/example/BusListener.cs: Added a new example program,
6000         which listens for and reports any ServiceOwnerChanged events
6001         on the bus driver.
6002
6003         * mono/example/Makefile.am (DESTDIR): Build changes for the
6004         new BusListener.cs example.
6005
6006 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6007
6008         * bus/signals.c (bus_match_rule_parse): validate the components of
6009         match rules (bug #1439).
6010
6011         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6012
6013 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6014
6015         * doc/dbus-specification.xml: document ServiceOwnerChanged
6016         signal.
6017         
6018         * bus/driver.c, bus/driver.h, bus/services.c: Use
6019         ServiceOwnerChanged signal instead of ServiceCreated and
6020         ServiceDeleted.
6021         
6022         * bus/dispatch.c: update testcase for the new signal.
6023
6024 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6025
6026         Patch from Nat Friedman <nat@novell.com>
6027
6028         * mono/Makefile.am: A number of small build fixes to allow "make
6029         distcheck" to succeed.
6030
6031         * mono/example/Makefile.am: "make distcheck" fixes.
6032
6033         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6034         key in @srcdir@.
6035
6036         * test/Makefile.am: "make distcheck" fixes.
6037
6038 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6039
6040         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6041
6042         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6043
6044         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6045         messages after the first one (bug #1389).
6046         
6047         * bus/dispatch.c (check_double_hello_message): add a test case for
6048         the double hello message bug.
6049         (check_existent_service_activation): fix check of spawning error.
6050         
6051 2004-09-16  David Zeuthen  <david@fubar.dk>
6052
6053         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6054
6055 2004-09-12  David Zeuthen  <david@fubar.dk>
6056
6057         Patch from Kay Sievers <kay.sievers@vrfy.org>
6058
6059         * bus/bus.c (bus_context_new):
6060         * bus/bus.h:
6061         * bus/main.c (usage)
6062         (main):
6063         Add commandline option --nofork to override configuration file
6064         setting.
6065
6066 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6067
6068         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6069         compilers don't like it (bug #974).
6070
6071 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6072
6073         * qt/connection.*: Applied patch by Jérôme Lodewyck
6074         <lodewyck@clipper.ens.fr> to integrate an existing
6075         connection into the Qt eventloop
6076
6077 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6078
6079         * mono/BusDriver.cs: Added.  This is a class for interacting with
6080         the org.freedesktop.DBus service.
6081
6082         * mono/Message.cs: Added a mechanism to expose the message that is
6083         currently being dispatched via the static Message.Current
6084         property.  Added Message.Sender and Message.Destination
6085         properties.
6086
6087         * mono/Handler.cs: Expose the dispatched message via
6088         Message.Current when handling method calls.
6089
6090         * mono/Service.cs: Expose the dispatched message via
6091         Message.Current when handling signal emissions.
6092         
6093         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6094         Connection.BaseService property.
6095
6096 2004-08-28  Havoc Pennington  <hp@redhat.com>
6097
6098         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6099
6100         More fixes from Steve Grubb
6101         
6102         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6103         (_dbus_listen_tcp_socket): fix fd leak
6104
6105         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6106         EINTR to a bit lower in the code
6107
6108 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6109
6110         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6111         TRUE if we are inquiring about the existence of the built-in
6112         org.freedesktop.DBus service.
6113
6114 2004-08-25  John Palmieri  <johnp@redhat.com>
6115         * bus/config-parser.c:
6116         (struct PolicyType): Add POLICY_CONSOLE
6117         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6118         (start_busconfig_child): Sets up console element when
6119         <policy at_console=""> is encountered in a policy file
6120         (append_rule_from_element): Convert console elements to console
6121         rules.
6122
6123         * bus/policy.c: 
6124         (bus_policy_create_client_policy): Add console rules to the client
6125         policy based on if the client is at the console
6126         (bus_policy_append_console_rule): New function for adding a
6127         console rule to a policy
6128         (bus_policy_merge): Handle console rule merging
6129
6130         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6131         where we check for console user files
6132         
6133         * dbus/dbus-sysdeps.c:
6134         (_dbus_file_exists): New function which checks if the given
6135         file exists
6136         (_dbus_user_at_console): New function which does the system
6137         specific process of checking if the user is at the console
6138
6139         * dbus/dbus-userdb.c:
6140         (_dbus_is_console_user): New function converts a UID to user name
6141         and then calls the system specific _dbus_user_at_console to 
6142         see if the user is at the console and therefor a console user
6143
6144 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6145
6146         * bus/config-parser.c (set_limit):
6147         * bus/dbus-daemon-1.1.in:
6148         * test/data/valid-config-files/many-rules.conf: set the
6149         max_match_rules_per_connection limt from the config file. 
6150
6151         * doc/busconfig.dtd: update the DTD.
6152
6153         * bus/driver.c: remove some unused variables.
6154
6155 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6156
6157         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6158         it's been replaced by dbus_g_bus_get
6159
6160 2004-08-23  Colin Walters  <walters@redhat.com>
6161
6162         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6163
6164         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6165
6166         * bus/selinux.c: Create a thread for policy reload notification.
6167         (bus_selinux_get_policy_root): Implement.
6168
6169         * bus/config-parser.c (start_busconfig_child)
6170         (bus_config_parser_content): Support SELinux-root relative
6171         inclusion.
6172
6173         * configure.in <HAVE_SELINUX>: Add -lpthread.
6174         
6175         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6176         (test_post_hook): Move memory checking into here.
6177         (test_pre_hook, test_post_hook): Move SELinux checks in
6178         here, but conditional on a DBUS_TEST_SELINUX environment
6179         variable.  Unfortunately we can't run the SELinux checks
6180         as a normal user, since they won't have any permissions
6181         for /selinux.  So this will have to be tested manually
6182         for now, until we have virtualization for most of
6183         libselinux.
6184         
6185 2004-08-23  Havoc Pennington  <hp@redhat.com>
6186
6187         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6188         drop supplementary groups, suggested by Steve Grubb
6189
6190 2004-08-20  Colin Walters  <walters@redhat.com>
6191
6192         * bus/config-parser.c (start_busconfig_child): Remove some unused
6193         variables.
6194         
6195         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6196         warning.
6197
6198 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6199
6200         * configure.in: If --enable-mono is passed in, if we can't find
6201         mono error out.
6202
6203         * mono/Makefile.am: Use /gacutil to install assemblies into the
6204         GAC and not /root.
6205
6206 2004-08-12  Havoc Pennington  <hp@redhat.com>
6207
6208         * NEWS: update for 0.22
6209
6210         * configure.in: release 0.22
6211
6212 2004-08-11  Colin Walters  <walters@redhat.com>
6213
6214         * tools/dbus-send.c (main, usage): Add --reply-timeout
6215         argument.
6216
6217 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6218
6219         * bus/bus.c (process_config_first_time_only): get rid of an unused
6220         DBusError that was causing a memoy leak (bug #989).
6221
6222         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6223         fix compilation on Solaris/Forte C (bug #974)
6224
6225         * bus/main.c (main): plug two minuscule memleaks.
6226
6227 2004-08-10  Havoc Pennington  <hp@redhat.com>
6228
6229         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6230
6231 2004-08-09  Havoc Pennington  <hp@redhat.com>
6232
6233         * COPYING: switch to Academic Free License version 2.1 instead of
6234         2.0, to resolve complaints about patent termination clause.
6235
6236 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6237
6238         * README: added documentation for the --enable-python 
6239         configure switch.
6240
6241 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6242
6243         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6244         _unref in the SELinux support.
6245
6246         * doc/busconfig.dtd: update DTD for SELinux support.
6247
6248         * bus/config-loader-libxml.c: fix error handler and parser
6249         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6250
6251         * configure.in: remove the warning about libxml2.
6252
6253         * dbus/dbus-bus.c: silence doxygen warning.
6254
6255 2004-07-31  Colin Walters  <walters@redhat.com>
6256
6257         * configure.in: Move #error in SELinux check to its own line.
6258
6259 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6260
6261         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6262         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6263         dbus_error_set.
6264
6265         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6266         broken by the change in the _SET_OOM macros.
6267
6268 2004-07-31  Colin Walters  <walters@redhat.com>
6269
6270         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6271         BUS_SET_OOM.
6272
6273 2004-07-31  Colin Walters  <walters@redhat.com>
6274
6275         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6276         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6277         AC_MSG_CHECKING.
6278
6279 2004-07-24  Havoc Pennington  <hp@redhat.com>
6280
6281         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6282
6283         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6284         functionality
6285
6286         * configure.in: add --enable-selinux
6287         
6288         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6289
6290         * bus/main.c (main): initialize and shut down selinux
6291
6292         * bus/connection.c: store SELinux ID on each connection, to avoid 
6293         repeated getting of the string context and converting it into 
6294         an ID
6295
6296         * bus/bus.c (bus_context_get_policy): new accessor, though it
6297         isn't used
6298         (bus_context_check_security_policy): check whether the security
6299         context of sender connection can send to the security context of
6300         recipient connection
6301
6302         * bus/config-parser.c: add parsing for <selinux> and <associate>
6303         
6304         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6305         implement dbus_connection_get_unix_fd()
6306
6307         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6308         function, used by the selinux stuff
6309         
6310 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6311
6312         * bus/config-loader-libxml.c: complete the implementation of
6313         libxml backend for config file loader. Doesn't work with full OOM
6314         test yet. 
6315         
6316         * configure.in: change error when selecting libxml into a warning.
6317         
6318         * test/data/invalid-config-files: add two non-well-formed XML
6319         files. 
6320         
6321         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6322         
6323         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6324         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6325         be necessary to read all the buffer. (bug #894)
6326
6327         * bus/activation.c (bus_activation_activate_service): fix a
6328         potential assertion failure (bug #896). Small optimization in the
6329         case of auto-activation messages.
6330
6331         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6332         add test case for byte-through-vararg bug (#901). patch by Kimmo
6333         Hämäläinen. 
6334
6335 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6336
6337         * python/dbus.py:
6338         * python/dbus_bindings.pyx.in:
6339         Add dbus.init_gthreads (), allow emit_signal to pass
6340         arguments to the signal.
6341         
6342 2004-07-24  Havoc Pennington  <hp@redhat.com>
6343
6344         * AUTHORS: add some people, not really comprehensively, let me
6345         know if I missed you
6346
6347 2004-07-24  Havoc Pennington  <hp@redhat.com>
6348
6349         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6350         Owen
6351
6352         * test/Makefile.am (DIST_SUBDIRS): here also
6353
6354 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6355
6356         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6357         breaking build on Solaris, reported by Farhad Saberi on the ML.
6358
6359         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6360         va_arg invocation to account for integer promotion in the case of
6361         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6362
6363         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6364         _dbus_list_get_first_link, not _dbus_list_get_first.
6365
6366         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6367
6368         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6369         handler functions so that the asserts in _dbus_object_subtree_unref
6370         do not fail.
6371
6372         * dbus/dbus-transport-unix.c (do_reading):
6373         _dbus_transport_queue_messages return value is of type
6374         dbus_bool_t, not DBusDispatchStatus.
6375         
6376 2004-07-19  David Zeuthen  <david@fubar.dk>
6377
6378         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6379
6380         * bus/dispatch.c:
6381         (check_get_connection_unix_user): Debug says GetProperty; but the
6382         method is called GetConnectionUnixUser
6383         (check_get_connection_unix_process_id): New function
6384         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6385         also call check_get_connection_unix_process_id()
6386         
6387         * bus/driver.c:
6388         (bus_driver_handle_get_connection_unix_process_id): New function,
6389         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6390         interface
6391         
6392         * dbus/dbus-auth.c:
6393         (handle_server_data_external_mech): Set pid from the credentials
6394         obtained from the socket
6395         
6396         * dbus/dbus-connection.c:
6397         (dbus_connection_get_unix_process_id): New function
6398         
6399         * dbus/dbus-connection.h: 
6400         Add prototype for dbus_connection_get_unix_process_id
6401         
6402         * dbus/dbus-transport.c:
6403         (_dbus_transport_get_unix_process_id): New function
6404         
6405         * dbus/dbus-transport.h:
6406         Add prototype for _dbus_transport_get_unix_process_id
6407         
6408 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6409
6410         * dbus/dbus-message.c: Message counter fix, patch by Christian
6411         Hammond <chipx86@gnupdate.org>
6412
6413 2004-07-18  Seth Nickell  <seth@gnome.org>
6414
6415         * python/dbus.py:
6416         * python/dbus_bindings.pyx.in:
6417         * python/tests/test-client.py:
6418
6419         Add dbus.ByteArray and dbus_bindings.ByteArray
6420         types so that byte streams can be passed back.
6421
6422         Give jdahlin the heaps of credit that are so
6423         rightfully his.
6424         
6425 2004-07-12  Seth Nickell  <seth@gnome.org>
6426
6427         * python/dbus.py:
6428
6429         Add message argument to the default object_method_handler
6430         function.
6431         
6432         * python/dbus_bindings.pyx.in:
6433
6434         Automatically return NIL when passed an empty list
6435         (we can't pass back a list since lists are typed
6436         and we don't have any idea what type the the client
6437         intended the list to be... :-( )
6438         
6439 2004-07-10  Seth Nickell  <seth@gnome.org>
6440
6441         * python/examples/Makefile.am:
6442
6443         Fix distcheck breakage caused by new examples.
6444
6445 2004-07-10  Seth Nickell  <seth@gnome.org>
6446
6447         * python/dbus.py:
6448
6449         Add "message" argument to service-side dbus.Object
6450         methods. This will break existing services written
6451         using the python bindings, but will allow extraction
6452         of all the message information (e.g. who its from).
6453
6454         Add improved "object oriented" signal handling/emission.
6455         
6456         * python/examples/example-service.py:
6457
6458         Nix this example.
6459         
6460         * python/examples/example-signal-emitter.py:
6461         * python/examples/example-signal-recipient.py:
6462
6463         Two new examples that show how to emit and receive
6464         signals using the new APIs.
6465         
6466         * python/examples/example-signals.py:
6467         * python/examples/gconf-proxy-service.py:
6468         * python/examples/gconf-proxy-service2.py:
6469
6470         Add "message" argument to service methods.
6471
6472 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6473
6474         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6475         * dbus/bus.c (dbus_bus_get_unix_user)
6476         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6477         method of org.freedesktop.DBus interface.
6478
6479         * bus/dispatch.c: test case
6480
6481 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6482
6483         * python/Makefile.am: switched include directory from glib/ to dbus/
6484         since dbus-glib.h moved
6485  
6486 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6487
6488         * configure.in: prevent building the gcj stuff and libxml loader
6489         since they are broken.
6490
6491 2004-06-20  Havoc Pennington  <hp@redhat.com>
6492
6493         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6494         codes from the dbus error names
6495         
6496         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6497         as dbus/dbus-glib.h and that breakage is now visible due to 
6498         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6499         
6500         * glib/dbus-glib.h: s/gproxy/g_proxy/
6501
6502         * dbus/dbus-shared.h: new header to hold stuff shared with
6503         binding APIs
6504         
6505         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6506         than dbus-errors.h
6507
6508         * glib/dbus-glib.h (dbus_set_g_error): move to
6509         dbus-glib-lowlevel.h
6510
6511         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6512         of stuff to enable this
6513
6514         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6515
6516         * a bunch of other changes with the same basic "separate glib 
6517         bindings from dbus.h" theme
6518         
6519 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6520
6521         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6522
6523         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6524
6525 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6526
6527         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6528         the reply value of the ServiceExists message.
6529
6530 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6531
6532         * python/dbus_bindings.pyx.in: No longer need to parse path
6533         elements and pass them as arrays of strings.  The C API now
6534         accepts plain path strings.
6535         (_build_parsed_path): removed 
6536
6537 2004-06-07  Havoc Pennington  <hp@redhat.com>
6538
6539         * doc/TODO: remove auto-activation item since it's done; sort
6540         items by importance/milestone
6541
6542 2004-06-07  Havoc Pennington  <hp@redhat.com>
6543
6544         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6545         random signature when using REQUIRED_FIELDS (this hack won't work
6546         in the long term)
6547
6548         * dbus/dbus-message.c: change the signature to be a header field,
6549         instead of message->signature special-case string. Incremental
6550         step forward. Then we can fix up code to send the signature in the
6551         message, then fix up code to validate said signature, then fix up
6552         code to not put the typecodes inline, etc.
6553         (load_one_message): don't make up the signature after the fact
6554         (decode_header_data): require signature field for the known
6555         message types
6556
6557         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6558
6559         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6560
6561 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6562
6563         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6564
6565         * mono/Handler.cs: Updated to follow new path argument for
6566         (un-)registering objects.
6567
6568         * mono/example/Makefile.am:
6569         * mono/Makefile.am:
6570         * configure.in: Bumped required version for mono and use new -pkg
6571         syntax for deps
6572
6573 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6574
6575         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6576         registration functions take the path argument as char* instead of
6577         char**.
6578
6579         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6580         split off the path decompostion part of
6581         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6582         warnings. 
6583
6584         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6585         
6586 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6587  
6588         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6589         machine approach.  A state is implemented as a function that
6590         handles incoming events as specified for that state.
6591         
6592         * doc/dbus-specification.xml: Update auth protocol state machine
6593         specification to match implementation.  Remove some leftover
6594         base64 examples.
6595
6596 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6597
6598         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6599         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6600         quiet doxygen.
6601
6602         * Doxyfile.in: remove deprecated options.
6603
6604         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6605         glib/test-thread.h, glib/test-thread-client.c,
6606         glib/test-thread-server.c, glib/test-profile.c,
6607         glib/test-dbus-glib.c: remove these unused files.
6608
6609 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6610
6611         * dbus/dbus-object-tree.c
6612         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6613         non-fallback handlers (bug #684).
6614         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6615         (find_subtree_recurse): report wether the returned subtree is an
6616         exact match or a "fallback" match higher up in the tree.
6617         (object_tree_test_iteration): update test case.
6618
6619 2004-06-01  Seth Nickell  <seth@gnome.org>
6620
6621         * python/dbus_bindings.pyx.in:
6622         * python/tests/test-client.py:
6623
6624         Round off basic type support. Add dicts (yay!), and 
6625         remaining array types.
6626
6627         Make MessageIter more general so it works for dicts too.
6628
6629         Mark all loop variables as C integers.
6630         
6631 2004-05-31  Havoc Pennington  <hp@redhat.com>
6632
6633         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6634         "in" before "out"
6635
6636         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6637
6638         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6639         option that runs the tests, and start filling in some code
6640         including for starters just dumping the interfaces to stdout
6641
6642         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6643
6644         * test/data/valid-introspection-files/lots-of-types.xml: test of
6645         an example introspection file
6646
6647         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6648         "node" (I think...)
6649
6650 2004-05-31  Seth Nickell  <seth@gnome.org>
6651
6652         * python/dbus_bindings.pyx.in:
6653         * python/tests/test-client.py:
6654
6655         Test Suite: 1
6656         Python Bindings: 0
6657
6658         Fix string array memory trashing bug... oops...
6659
6660 2004-05-30  Seth Nickell  <seth@gnome.org>
6661
6662         * python/dbus.py:
6663
6664         Add a nicer-but-less-flexible alternate API for handling 
6665         calls to virtual objects in dbus.ObjectTree.
6666
6667         Screw up the argument order to the dbus.Object constructor
6668         for consistency with dbus.ObjectTree (and to make dbus_methods
6669         optional for future extension)
6670         
6671         * python/examples/Makefile.am:
6672         * python/examples/gconf-proxy-service.py:
6673         * python/examples/gconf-proxy-service2.py:
6674
6675         Alternate implementation of gconf-proxy-service using the
6676         nicer dbus.ObjectTree API.
6677         
6678         * python/examples/example-service.py:
6679         * python/tests/test-server.py
6680
6681         Reverse the argument order to deal with dbus.Object constructor
6682         changes.
6683         
6684 2004-05-30  Seth Nickell  <seth@gnome.org>
6685
6686         * python/examples/example-client.py:
6687         * python/examples/example-service.py:
6688
6689         Take it back. Lists seem to work but they're broken
6690         in the test suite. Make the base examples use
6691         lists (works fine).
6692
6693 2004-05-30  Seth Nickell  <seth@gnome.org>
6694
6695         * python/dbus_bindings.pyx.in:
6696         * python/tests/test-client.py:
6697
6698         Add some more tests and fix errors that crop up.
6699         Unfortunately, currently it seems like marshalling
6700         and unmarshalling of lists is completely broken :-(
6701
6702 2004-05-30  Seth Nickell  <seth@gnome.org>
6703
6704         * python/dbus_bindings.pyx.in:
6705
6706         Add support for ObjectPath type.
6707
6708         * python/dbus.py:
6709
6710         Refactor message handling code to a common function.
6711         
6712         * python/tests/test-client.py:
6713         * python/tests/test-server.py:
6714
6715         Add tests that check to make sure values of all types
6716         can be echoed from a service w/o mangling.
6717         
6718 2004-05-29  Seth Nickell  <seth@gnome.org>
6719
6720         * python/dbus.py:
6721
6722         Add ObjectTree class which allows implementation
6723         of trees of "virtual" objects. Basically the python
6724         wrapper for "register_fallback".
6725         
6726         * python/examples/Makefile.am
6727         * python/examples/gconf-proxy-client.py:
6728         * python/examples/gconf-proxy-service.py:
6729
6730         Implement a simple GConf proxy service that supports
6731         get/set on string and int GConf keys using the ObjectTree.
6732         
6733 2004-05-29  Seth Nickell  <seth@gnome.org>
6734
6735         * python/dbus.py:
6736         * python/examples/example-client.py:
6737         * python/examples/example-service.py:
6738         * python/examples/list-system-services.py:
6739
6740         Add SessionBus, SystemBus and ActivationBus classes
6741         so you don't need to know the special little BUS_TYPE
6742         flag.
6743         
6744 2004-05-29  Havoc Pennington  <hp@redhat.com>
6745
6746         * bus/config-parser.c (process_test_valid_subdir): temporarily
6747         stop testing config parser OOM handling, since expat has issues
6748         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6749
6750         * bus/dbus-daemon-1.1.in: change requested_reply to
6751         send_requested_reply/receive_requested_reply so we can send the
6752         replies, not just receive them.
6753
6754         * bus/config-parser.c: parse the new
6755         send_requested_reply/receive_requested_reply
6756
6757         * bus/policy.c (bus_client_policy_check_can_send): add
6758         requested_reply argument and use it
6759
6760         * bus/bus.c (bus_context_check_security_policy): pass through
6761         requested_reply status to message send check
6762
6763         * bus/system.conf.in: adapt to requested_reply change
6764         
6765 2004-05-28  Havoc Pennington  <hp@redhat.com>
6766
6767         * test/glib/test-service-glib.c (main): remove unused variable
6768
6769         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6770
6771         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6772         from the enum, no longer in use.
6773
6774         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6775         works right.
6776
6777         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6778         whether error_name passed in is a valid error name.
6779
6780 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6781
6782         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6783         OBJECT_PATH and OBJECT_PATH_ARRAY
6784
6785 2004-05-28  Seth Nickell  <seth@gnome.org>
6786
6787         * python/examples/Makefile.am:
6788
6789         Forget to add Makefile.am. Do not pass go.
6790
6791 2004-05-28  Michael Meeks  <michael@ximian.com>
6792
6793         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6794         fix no int64 case.
6795
6796         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6797
6798         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6799         (_dbus_message_iter_get_basic_type_array): impl.
6800         drastically simplify ~all relevant _get methods to use these.
6801         (_dbus_message_iter_append_basic_array),
6802         (dbus_message_iter_append_basic): impl
6803         drastically simplify ~all relevant _append methods to use these.
6804
6805         * dbus/dbus-message-builder.c (parse_basic_type) 
6806         (parse_basic_array, lookup_basic_type): impl.
6807         (_dbus_message_data_load): prune scads of duplicate /
6808         cut & paste coding.
6809
6810         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6811         (_dbus_demarshal_basic_type): implement,
6812         (demarshal_and_validate_len/arg): beef up debug.
6813         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6814
6815 2004-05-27  Seth Nickell  <seth@gnome.org>
6816
6817         * configure.in:
6818         * python/Makefile.am:
6819
6820         Include the example python apps in the tarball.
6821         
6822         * python/examples/list-system-services.py
6823
6824         Add a python new example that fetches the list of services
6825         from the system bus.
6826         
6827 2004-05-27  Seth Nickell  <seth@gnome.org>
6828
6829         * python/dbus.py:
6830         * python/dbus_bindings.pyx.in:
6831
6832         Fix failure to notify that a signal was not handled,
6833         resulted in hung functions.
6834         
6835 2004-05-25  Colin Walters  <walters@redhat.com>
6836
6837         * tools/dbus-monitor.c (main): Monitor all types of messages.
6838
6839 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6840
6841         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6842         which unregisters the object path and disposes the handler.
6843
6844 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6845  
6846         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6847          
6848         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6849         operands to && so we call dbus_message_iter_next () for the last
6850         argument also.
6851
6852 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6853
6854         * dbus/dbus-object-tree.c
6855         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6856         children even if the requested path isn't registered.
6857         (object_tree_test_iteration): test object_tree_list_registered.
6858
6859         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6860         it to 0.
6861         
6862 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6863
6864         * doc/TODO: Remove resolved items.
6865
6866         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6867         field.
6868         
6869         * bus/connection.c (bus_connections_expect_reply): Enforce the
6870         per-connection limit on pending replies.
6871         
6872         Patch from Jon Trowbridge <trow@ximian.com>:
6873  
6874         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6875         up a watch that triggers a config reload when one end of the pipe
6876         becomes readable.
6877         (signal_handler): Instead of doing the config reload in our SIGHUP
6878         handler, just write to the reload pipe and let the associated
6879         watch handle the reload when control returns to the main loop.
6880  
6881         * bus/driver.c (bus_driver_handle_reload_config): Added.
6882         Implements a ReloadConfig method for requesting a configuration
6883         file reload via the bus driver.
6884  
6885 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6886
6887         * HACKING: Updated release instructions concerning the wiki page.
6888
6889 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6890
6891         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6892         filter against auth->allowed_mechs; we only add allowed mechs in
6893         record_mechanisms().
6894  
6895         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6896         ALLOWED_MECHS to auth-script format so we can set the list of
6897         allowed mechanisms.
6898  
6899         * data/auth/client-out-of-mechanisms.auth-script: New test to
6900         check client disconnects when it is out of mechanisms to try.
6901  
6902         * dbus/dbus-auth.c (process_command): Remove check for lines
6903         longer that 1 MB; we only buffer up maximum 16 kB.
6904  
6905         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6906         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6907         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6908         assume there might be unused bytes.
6909  
6910         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6911         client-out-of-mechs, it is handled in process_reject(). Move check
6912         for max failures to send_rejected(), as it's a server-only thing.
6913
6914         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6915         send_auth(), send_data(), send_rejected(), send_error(),
6916         send_ok(), send_begin() and send_cancel().
6917
6918 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6919
6920         Remove base64 encoding, replace with hex encoding. Original patch
6921         from trow@ximian.com, added error handling.
6922
6923         * dbus/dbus-string.c (_dbus_string_base64_encode)
6924         (_dbus_string_base64_decode): Remove.
6925         (_dbus_string_hex_decode): Add end_return argument so we can
6926         distinguish between OOM and invalid hex encoding.
6927         (_dbus_string_test): Remove base64 tests and add test case for
6928         invalid hex.
6929
6930         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6931         Replace base64 with hex.
6932
6933         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6934         for invalid hex encoded data in auth protocol.
6935
6936 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6937
6938         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6939         leak.
6940
6941 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6942
6943         * mono/dbus-sharp.dll.config.in: Added for GAC
6944         * mono/dbus-sharp.snk: Added for GAC
6945         * mono/Assembly.cs.in: Added for GAC
6946         * mono/Makefile.am: Changes for GAC installation        
6947         * configure.in: Added refs for dbus-sharp.dll.config.in and
6948         Assembly.cs.in. More fixes for mono testing
6949         * mono/example/Makefile.am: Changed var to CSC
6950         * Makefile.am: Changed flag name to DBUS_USE_CSC
6951
6952 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6953
6954         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6955         * mono/doc/*: Added documentation framework
6956         * configure.in: Added monodoc check
6957         * README: Added description of mono configure flags
6958
6959 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6960
6961         * doc/dbus-specification.xml: Added a "Required" column to the 
6962         header fields table and changed the "zero or more" verbage in
6963         the above paragraph to read "The header must contain the required 
6964         named header fields and zero or more of the optional named header 
6965         fields".
6966         * test/data/invalid-messages/*.message: Added the required PATH 
6967         named header field to the tests so that they don't fail on 
6968         'Missing path field'
6969
6970 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6971
6972         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6973         the stack by implicitly defining variable and parameter types and
6974         removing the hack of defining C pointers as python objects and later
6975         casting them.
6976
6977 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6978
6979         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6980
6981 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6982
6983         * mono/DBusType/Dict.cs: Handle empty dicts
6984         * mono/DBusType/Array.cs: Handle empty arrays
6985         * mono/Arguments.cs: Handle empty arguments
6986
6987 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6988
6989         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6990         field
6991
6992 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6993
6994         * test/data/valid-messages/standard-*.message: Update message
6995         test scripts to new header field names.
6996
6997 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6998
6999         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7000         overflow to times_we_did_each_thing array which would chop off the
7001         first character of the failure_dir string. Increased the size of
7002         the array to 7 to reflect the number of random mutation functions
7003         we have.
7004
7005 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7006
7007         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7008         unix_server->watch here, it is unreffed in disconnect.
7009         (_dbus_server_new_for_tcp_socket): convert NULL host to
7010         "localhost" here so we don't append NULL to address.
7011         
7012         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7013         various addresses, including tcp with no explicit host.
7014
7015 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7016
7017         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7018         fix incorrect setting of .name_offset in the HeaderField (it was
7019         off by two bytes, positioned right after the name and typecode)
7020
7021         * bus/bus.c (bus_context_new, bus_context_unref): test before
7022         calling dbus_server_free_data_slot and _dbus_user_database_unref
7023         in case of an error.
7024
7025         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7026         by libdbus-gtool.
7027
7028 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7029
7030         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7031         _dbus_poll() instead of select().
7032
7033 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7034
7035         * bus/main.c (signal_handler): Reload the configuration files
7036         on SIGHUP.
7037         (main): Set up our SIGHUP handler.
7038
7039         * bus/bus.c (struct BusContext): Store the config file, user and
7040         fork flag in the BusContext.
7041         (process_config_first_time_only): Added.  Contains the code
7042         (previously in bus_context_new) for setting up the BusContext from
7043         the BusConfigParser that should only be run the first time the
7044         config files are read.
7045         (process_config_every_time): Added.  Contains the code (previously
7046         in bus_context_new) for setting up the BusContext from the
7047         BusConfigParser that should be run every time the config files are
7048         read.
7049         (load_config): Added.  Builds a BusConfigParser from the config
7050         files and passes the resulting structure off to
7051         process_config_first_time_only (assuming this is the first time)
7052         and process_config_every_time.
7053         (bus_context_new): All of the config-related code has been moved
7054         to process_config_first_time_only and process_config_every_time.
7055         Now this function just does the non-config-related initializations
7056         and calls load_config.
7057         (bus_context_reload_config): Added.
7058
7059 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7060
7061         * bus/driver.c (bus_driver_handle_get_service_owner):
7062         implement a GetServiceOwner method.
7063         * doc/dbus-specification.xml: document it.
7064         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7065         
7066         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7067         implement, using the bus GetServiceOwner method.
7068
7069         * test/glib/test-dbus-glib.c:
7070         use dbus_gproxy_new_for_service_owner so that we can receive the
7071         signal. 
7072
7073 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7074
7075         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7076         dbus/dbus-message.c, dbus/dbus-protocol.h
7077         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7078
7079         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7080         dbus/dbus-message.c, dbus/dbus-protocol.h
7081         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7082
7083         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7084         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7085         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7086
7087         * doc/dbus-specification.xml (Header Fields Table):
7088         s/SERVICE/DESTINATION
7089         s/SENDER_SERVICE/SENDER
7090
7091
7092 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7093
7094         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7095         a few seconds.
7096
7097 2004-04-13  Michael Meeks  <michael@ximian.com>
7098
7099         * glib/dbus-gobject.c (handle_introspect): split out
7100         (introspect_properties): this.
7101         (handle_introspect): implement this.
7102
7103         * test/glib/Makefile.am: use the absolute path so the bus
7104         daemon's chdir ("/") doesn't kill us dead.
7105
7106         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7107
7108 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7109
7110         * bus/config-parser.c (struct BusConfigParser): Added
7111         included_files field.
7112         (seen_include): Added.  Checks whether or not a file has already
7113         been included by any parent BusConfigParser.
7114         (bus_config_parser_new): Copy the parent's included_files.
7115         (include_file): Track which files have been included, and fail on
7116         circular inclusions.
7117         (process_test_valid_subdir): Changed printf to report if we are
7118         testing valid or invalid conf files.
7119         (all_are_equiv): Changed printf to be a bit clearer about
7120         what we are actually doing.
7121         (bus_config_parser_test): Test invalid configuration files.
7122
7123 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7124
7125         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7126         argument.  If non-null, the newly-constructed BusConfigParser will
7127         be initialized with the parent's BusLimits instead of the default
7128         values.
7129         (include_file): When including a config file, pass in
7130         the current parser as the parent and then copy the BusLimits
7131         from the included BusConfigParser pack to the current parser.
7132         (process_test_valid_subdir): Renamed from process_test_subdir.
7133         (process_test_equiv_subdir): Added.  Walks through a directory,
7134         descending into each subdirectory and loading the config files
7135         it finds there.  If any subdirectory contains two config files
7136         that don't produce identical BusConfigParser structs, fail.
7137         For now, the BusConfigParser's BusPolicies are not compared.
7138         (bus_config_parser_test): Call both process_test_valid_subdir and
7139         process_test_equiv_subdir.
7140
7141         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7142         argument and pass it along to the call to bus_config_parser_new.
7143         Also made a few small changes to allow this code to compile.
7144
7145         * bus/config-loader-expat.c (bus_config_load): Take a parent
7146         argument and pass it along to the call to bus_config_parser_new.
7147
7148         * bus/bus.c (bus_context_new): Load the config file
7149         with a NULL parent argument.
7150
7151 2004-03-29  Michael Meeks  <michael@ximian.com>
7152
7153         * glib/dbus-gobject.c (introspect_properties): split
7154         out, fix mangled 'while' flow control.
7155         (introspect_signals): implement.
7156         (handle_introspect): update.
7157
7158 2004-03-29  Michael Meeks  <michael@ximian.com>
7159
7160         * glib/dbus-gobject.c (set_object_property): split out / 
7161         re-work, use the property type, and not the message type(!)
7162         (get_object_property): ditto.
7163
7164         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7165         (dbus_gvalue_marshal): make this code re-usable, needed
7166         for signals too, also on both proxy and server side.
7167         Re-write for more efficiency / readability.
7168
7169 2004-03-29  Michael Meeks  <michael@ximian.com>
7170
7171         * dbus/dbus-message.c
7172         (dbus_message_new_error_printf): impl.
7173
7174         * dbus/dbus-connection.c
7175         (dbus_connection_unregister_object_path): fix warning.
7176
7177         * configure.in: fix no-mono-installed situation.
7178
7179 2004-03-27  Havoc Pennington  <hp@redhat.com>
7180
7181         Patch from Timo Teräs:
7182         
7183         * tools/dbus-send.c (main): if --print-reply, assume type is
7184         method call; support boolean type args
7185         
7186         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7187         bunch of memleak and logic bugs
7188         
7189 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7190
7191         * mono/Arguments.cs:
7192         * mono/Introspector.cs:
7193         * mono/Handler.cs:
7194         * mono/InterfaceProxy.cs:
7195         * mono/Message.cs
7196         * mono/ProxyBuilder.cs:
7197         * mono/Service.cs:
7198         Added InterfaceProxy class to avoid building proxies for every
7199         object.
7200
7201         * dbus-message.h:
7202         * dbus-message.c (dbus_message_append_args_valist)
7203         (dbus_message_iter_get_object_path)
7204         (dbus_message_iter_get_object_path_array)
7205         (dbus_message_iter_append_object_path)
7206         (dbus_message_iter_append_object_path_array):
7207         Added object_path iter functions to handle OBJECT_PATH arguments
7208         
7209 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7210
7211         First checkin of mono bindings.
7212         * configure.in:
7213         * Makefile.am:
7214         Build stuff for the bindings
7215         * dbus-sharp.pc.in: Added for pkgconfig
7216         
7217 2004-03-21  Havoc Pennington  <hp@redhat.com>
7218
7219         * test/test-service.c (main): remove debug spew
7220
7221 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7222
7223         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7224         arrays
7225
7226         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7227         (dbus_message_iter_init_array_iterator)
7228         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7229         indicate whether the iterator is empty
7230
7231         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7232         warnings
7233
7234 2004-03-19  Havoc Pennington  <hp@redhat.com>
7235
7236         * NEWS: 0.21 updates
7237
7238         * configure.in: 0.21
7239
7240         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7241         
7242         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7243         you don't need pyrex to make dist
7244
7245         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7246         sources; run moc
7247         
7248 2004-03-18  Richard Hult  <richard@imendio.com>
7249
7250         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7251         (dbus_message_set_auto_activation): Add doxygen docs.
7252
7253 2004-03-16  Richard Hult  <richard@imendio.com>
7254
7255         * bus/activation.c: (bus_activation_service_created),
7256         (bus_activation_send_pending_auto_activation_messages),
7257         (bus_activation_activate_service):
7258         * bus/activation.h:
7259         * bus/dispatch.c: (bus_dispatch),
7260         (check_nonexistent_service_auto_activation),
7261         (check_service_auto_activated),
7262         (check_segfault_service_auto_activation),
7263         (check_existent_service_auto_activation), (bus_dispatch_test):
7264         * bus/driver.c: (bus_driver_handle_activate_service):
7265         * bus/services.c: (bus_registry_acquire_service):
7266         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7267         (dbus_message_get_auto_activation):
7268         * dbus/dbus-message.h:
7269         * dbus/dbus-protocol.h: Implement auto-activation.
7270         
7271         * doc/dbus-specification.xml: Add auto-activation to the spec.
7272
7273 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7274
7275         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7276         fix a bug with CUSTOM types.
7277
7278         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7279         a unit test for this bug (used to fail).
7280
7281 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7282
7283         * bus/activation.c:
7284         (babysitter_watch_callback): notify all pending activations waiting for
7285           the same exec that the activation failed.
7286         (bus_activation_activate_service): shortcut the activation if we 
7287           already waiting for the same executable to start up.
7288
7289 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7290
7291         * bus/activation.c: 
7292         - Added service file reloading. 
7293           Each service files directory is kept in an hash table in 
7294           BusActivation and each BusActivationEntry knows what .service-file it
7295           was read from. So when you try to activate a service the bus will 
7296           check if it's been updated, removed or if new .service-files has 
7297           been installed.
7298         - Test code at the bottom for the service file reloading.
7299         * bus/test-main.c: (main):
7300         * bus/test.h:
7301         - added service reloading test.
7302         * dbus/dbus-sysdeps.c: 
7303         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7304
7305 2004-03-08  Michael Meeks  <michael@ximian.com>
7306
7307         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7308         bail immediately if disconnected, to avoid busy loop.
7309
7310         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7311         cleanup cut/paste/inefficiency.
7312
7313 2004-03-01  David Zeuthen  <david@fubar.dk>
7314
7315         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7316         bug where args were used twice. This bug resulted in a segfault
7317         on a Debian/PPC system when starting the messagebus daemon. Include
7318         dbus-sysdeps.h for DBUS_VA_COPY
7319
7320         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7321
7322         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7323         appropriate va_copy implementation. From GLib
7324         
7325 2004-02-24  Joe Shaw  <joe@ximian.com>
7326
7327         * bus/services.c (bus_registry_acquire_service): We need to pass
7328         in the service name to dbus_set_error() to prevent a crash.
7329
7330 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7331
7332         * AUTHORS: Reveal my True identity.
7333
7334 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7335
7336         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7337         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7338
7339 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7340
7341         * doc/TODO: Added not about better error check of configuration files.
7342
7343 2003-12-02  Richard Hult  <richard@imendio.com>
7344
7345         * Update AFL version to 2.0 throughout the source files to reflect
7346         the update that was done a while ago.
7347
7348 2003-12-02  Richard Hult  <richard@imendio.com>
7349
7350         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7351         wrote_dict_key to FALSE on the iter that the dict is appended to,
7352         just like when appending other types. Fixes a bug where a dict
7353         couldn't be put inside a dict.
7354         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7355         (message_iter_test, _dbus_message_test): Add test case for dict
7356         inside dict.
7357
7358 2003-12-01  David Zeuthen  <david@fubar.dk>
7359
7360         * python/dbus.py: Add the actual message when calling the reciever
7361         of a signal such that parameters can be inspected. Add the method
7362         remove_signal_receiver
7363         
7364 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7365
7366         * bus/*.[ch]:
7367         * dbus/*.[ch]:
7368         * glib/*.[ch]: Made ref functions return the pointer
7369
7370 2003-11-25  Zack Rusin  <zack@kde.org>
7371
7372         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7373
7374         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7375         wrappers,
7376
7377         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7378         the Integrator and to better fit with the server,
7379
7380 2003-11-24  Zack Rusin  <zack@kde.org>
7381
7382         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7383         the integrator handles it now
7384
7385         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7386         since QTimer wasn't really meant to be used the way DBusTimeout is
7387
7388 2003-11-24  Zack Rusin  <zack@kde.org>
7389
7390         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7391         Integrator class which integrates D-BUS with the Qt event loop,
7392
7393         * qt/connection.h, qt/connection.cpp: Move all the code which
7394         was dealing with D-BUS integration to the Integrator class,
7395         and start using Integrator,
7396
7397 2003-11-23  Zack Rusin  <zack@kde.org>
7398
7399         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7400         wrapper
7401
7402         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7403         switching namespaces to DBusQt, reworking the class,
7404
7405         * Makefile.cvs: switching dependencies so that it matches KDE 
7406         schematics,
7407         
7408         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7409         the library
7410
7411 2003-11-19  Havoc Pennington  <hp@redhat.com>
7412
7413         * NEWS: update
7414
7415         * configure.in: bump version to 0.20
7416
7417         * configure.in (have_qt): add yet another place to look for qt
7418         (someone hand trolltech a .pc file...)
7419
7420 2003-11-01  Havoc Pennington  <hp@redhat.com>
7421
7422         * doc/dbus-specification.xml: add state machine docs on the auth
7423         protocol; just a first draft, I'm sure it's wrong.      
7424
7425 2003-10-28  David Zeuthen  <david@fubar.dk>
7426
7427         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7428         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7429         
7430 2003-10-28  Havoc Pennington  <hp@redhat.com>
7431
7432         * dbus/dbus-message.c (get_next_field): delete unused function
7433
7434 2003-10-28  Havoc Pennington  <hp@redhat.com>
7435
7436         * bus/expirelist.c (do_expiration_with_current_time): detect
7437         failure of the expire_func due to OOM
7438
7439         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7440
7441         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7442         NoReply error that's now created by the bus when the service exits
7443
7444 2003-10-28  Havoc Pennington  <hp@redhat.com>
7445
7446         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7447         tests for set_path, set_interface, set_member, etc.
7448
7449         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7450
7451         * dbus/dbus-message.c (set_string_field): always just delete and
7452         re-append the field; accept NULL for deletion
7453         (re_align_fields_recurse): reimplement
7454         
7455 2003-10-26  Havoc Pennington  <hp@redhat.com>
7456
7457         * dbus/dbus-connection.c: fix docs to properly describe the
7458         disconnected message
7459         (_dbus_connection_notify_disconnected): remove this function; 
7460         we can't synchronously add the disconnected message, we have to 
7461         do it after we've queued any remaining real messages
7462         (_dbus_connection_get_dispatch_status_unlocked): queue the
7463         disconnect message only if the transport has finished queueing all
7464         its real messages and is disconnected.
7465         (dbus_connection_disconnect): update the dispatch status here
7466
7467 2003-10-22  Havoc Pennington  <hp@redhat.com>
7468
7469         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7470
7471         * bus/connection.c (bus_transaction_send_from_driver): set the
7472         destination to the connection's base service
7473
7474 2003-10-20  Havoc Pennington  <hp@redhat.com>
7475
7476         hmm, make check is currently not passing.
7477         
7478         * doc/dbus-specification.xml: add requirement that custom type
7479         names follow the same rules as interface names.
7480
7481         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7482         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7483         'map'
7484
7485         * doc/dbus-specification.xml: update type codes to match
7486         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7487         CUSTOM. Add type OBJECT_PATH to the spec.
7488
7489 2003-10-17  Havoc Pennington  <hp@redhat.com>
7490
7491         * bus/driver.c (create_unique_client_name): use "." as separator
7492         in base service names instead of '-'
7493
7494         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7495         byte at the end of the string
7496
7497         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7498         optimization macros since string validation seems to be a slow
7499         point.
7500         
7501         * doc/dbus-specification.xml: restrict valid
7502         service/interface/member/error names. Add test suite code for the
7503         name validation.
7504
7505         * dbus/dbus-string.c: limit service/interface/member/error names 
7506         to [0-9][A-Z][a-z]_
7507
7508         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7509         format arg to verbose spew
7510
7511         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7512         memory, return instead of g_error
7513
7514         * test/test-service.c (path_message_func): support emitting a
7515         signal on request
7516
7517         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7518         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7519         assuming the activation bus was the session bus so that services
7520         started manually will still register.
7521         (init_connections_unlocked): fix so that in OOM situation we get
7522         the same semantics when retrying the function
7523         
7524         * test/test-service.c (main): change to use path registration, to
7525         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7526         than DBUS_BUS_SESSION
7527
7528 2003-10-16  Havoc Pennington  <hp@redhat.com>
7529
7530         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7531
7532         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7533         coverage of the tests
7534         (coverage-report.txt): don't move the .da and .bbg files around
7535
7536 2003-10-16  Havoc Pennington  <hp@redhat.com>
7537
7538         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7539         to put there
7540
7541 2003-10-16  Havoc Pennington  <hp@redhat.com>
7542
7543         * bus/connection.c (bus_pending_reply_expired): either cancel or
7544         execute, not both
7545         (bus_connections_check_reply): use unlink, not remove_link, as we
7546         don't want to free the link; fixes double free mess
7547
7548         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7549         where no reply was received
7550
7551         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7552         fix a refcount leak
7553
7554         * bus/signals.c (match_rule_matches): add special cases for the
7555         bus driver, so you can match on sender/destination for it.
7556
7557         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7558         DBUS_PRINT_BACKTRACE is set
7559
7560         * dbus/dbus-internals.c: add pid to assertion failure messages
7561
7562         * dbus/dbus-connection.c: add message type code to the debug spew
7563
7564         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7565         sender=foo not service=foo
7566
7567         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7568         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7569         DBUS_ACTIVATION_ADDRESS instead
7570
7571         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7572         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7573
7574         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7575         context struct
7576
7577         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7578         (dbus_message_iter_get_object_path_array): new function (half
7579         finished, disabled for the moment)
7580         
7581         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7582         DBUS_MESSAGE_TYPE_ERROR
7583
7584         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7585         avoid redirecting stderr to /dev/null
7586         (babysit): close stdin if not doing the "exit_with_session" thing
7587
7588         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7589         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7590         stdout/stdin, so things don't get confused
7591         
7592         * bus/system.conf.in: fix to allow replies, I modified .conf
7593         instead of .conf.in again.
7594
7595 2003-10-14  David Zeuthen  <david@fubar.dk>
7596
7597         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7598         argtype to arg_type when raising unknown arg type exception.
7599         Changed type list to reflect the changes in dbus-protocol.h so 
7600         the bindings actually work.
7601
7602 2003-10-14  Havoc Pennington  <hp@redhat.com>
7603
7604         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7605         to have a bug keeping it from outputting the .da files sometimes
7606         (string_get_string): don't append garbage nul bytes to the string.
7607
7608 2003-10-15  Seth Nickell  <seth@gnome.org>
7609
7610         * python/Makefile.am:
7611
7612         Include dbus_h_wrapper.h in the dist tarball.
7613
7614 2003-10-14  Havoc Pennington  <hp@redhat.com>
7615
7616         * bus/bus.c (bus_context_check_security_policy): revamp this to
7617         work more sanely with new policy-based requested reply setup
7618
7619         * bus/connection.c (bus_transaction_send_from_driver): set bus
7620         driver messages as no reply
7621
7622         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7623         requested_reply attribute on allow/deny rules
7624
7625         * bus/system.conf: add <allow requested_reply="true"/>
7626
7627         * bus/driver.c (bus_driver_handle_message): fix check for replies
7628         sent to the bus driver, which was backward. How did this ever work
7629         at all though? I think I'm missing something.
7630
7631         * dbus/dbus-message.c (decode_header_data): require error and
7632         method return messages to have a reply serial field to be valid
7633         (_dbus_message_loader_queue_messages): break up this function;
7634         validate that reply serial and plain serial are nonzero; 
7635         clean up the OOM/error handling.
7636         (get_uint_field): don't return -1 from this
7637         (dbus_message_create_header): fix signed/unsigned bug
7638
7639         * bus/connection.c (bus_connections_expect_reply): save serial of
7640         the incoming message, not reply serial
7641
7642 2003-10-14  Havoc Pennington  <hp@redhat.com>
7643
7644         * bus/connection.c: implement pending reply tracking using
7645         BusExpireList
7646
7647         * bus/bus.c (bus_context_check_security_policy): verify that a
7648         reply is pending in order to allow a reply to be sent. Deny 
7649         messages of unknown type.
7650
7651         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7652
7653         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7654         (bus_context_get_reply_timeout): new
7655
7656 2003-10-13  Seth Nickell  <seth@gnome.org>
7657
7658         * python/Makefile.am:
7659
7660         Pass "make distcheck": remove a couple files from DIST_FILES
7661         that weren't included in the final version.
7662
7663 2003-10-12  Havoc Pennington  <hp@pobox.com>
7664
7665         Added test code that 1) starts an actual bus daemon and 2) uses
7666         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7667         more testing possible, but this is the basic framework.
7668         
7669         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7670         empty proxy lists from the proxy list hash
7671
7672         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7673         couple of return_if_fail checks
7674
7675         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7676         to allocate, so everything is cleared to NULL as it should be.
7677
7678         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7679         source as data to dbus_connection_set_timeout_functions() as the 
7680         timeout functions expected
7681
7682         * test/glib/run-test.sh: add a little script to start up a message
7683         bus and run tests using it
7684
7685         * tools/dbus-launch.1: updates
7686
7687         * tools/dbus-launch.c (main): add --config-file option
7688
7689         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7690         that could never be reached.
7691
7692         * dbus/dbus-message.c (dbus_message_new_method_return) 
7693         (dbus_message_new_error, dbus_message_new_signal): set the
7694         no-reply-expected flag on all these. Redundant, but may
7695         as well be consistent.
7696
7697 2003-10-11  Havoc Pennington  <hp@pobox.com>
7698
7699         * test/decode-gcov.c (function_solve_graph): make broken block
7700         graph a nonfatal error since it seems to be broken. Need to debug
7701         this.
7702
7703         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7704         can't just check type > INVALID < LAST anymore
7705
7706         * dbus/dbus-message.c (dbus_message_get_signature): new function
7707         (dbus_message_has_signature): new function
7708         (struct DBusMessage): add signature field (right now it isn't sent
7709         over the wire, just generated on the fly)
7710         (dbus_message_copy): copy the signature, and init strings to
7711         proper length to avoid some reallocs
7712         (dbus_message_iter_init_array_iterator): return void, since it
7713         can't fail
7714         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7715         (_dbus_message_loader_queue_messages): add silly temporary hack to
7716         fill in message->signature on load
7717
7718         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7719         characters, so they are relatively human-readable.
7720
7721 2003-10-11  Havoc Pennington  <hp@pobox.com>
7722
7723         * dbus/dbus-message.c (_dbus_message_test): add more test
7724         coverage, but #if 0 for now since they uncover a bug 
7725         not fixed yet; I think in re_align_field_recurse()
7726         (re_align_field_recurse): add FIXME about broken assertion
7727
7728         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7729
7730         * bus/connection.c: share a couple code bits with expirelist.c
7731
7732         * bus/expirelist.h, bus/expirelist.c: implement a generic
7733         expire-items-after-N-seconds facility, was going to share between
7734         expiring connections and replies, decided not to use for expiring
7735         connections for now.
7736
7737         * COPYING: include AFL 2.0 (still need to change all the file headers)
7738
7739 2003-10-09  Havoc Pennington  <hp@redhat.com>
7740
7741         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7742         gcc 3.3. Not that we do anything about it yet.
7743
7744         * bus/signals.c (bus_match_rule_parse): impose max length on the
7745         match rule text
7746
7747         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7748
7749 2003-10-09  Havoc Pennington  <hp@redhat.com>
7750
7751         Make matching rules theoretically work (add parser).
7752         
7753         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7754         the case where destination is explicitly specified as bus driver
7755         and someone else is eavesdropping.
7756         
7757         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7758         definition of eavesdropping and assertion
7759
7760         * tools/dbus-send.c (main): use dbus_message_type_from_string
7761
7762         * bus/signals.c (bus_match_rule_parse): implement
7763
7764         * dbus/dbus-message.c (dbus_message_type_from_string): new
7765
7766         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7767
7768 2003-10-02  Havoc Pennington  <hp@pobox.com>
7769
7770         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7771         dbus_gproxy_oneway_call
7772
7773         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7774         (dbus_server_setup_with_g_main): fix to allow calling them more
7775         than once on the same args
7776         (dbus_bus_get_with_g_main): new function
7777
7778 2003-10-02  Havoc Pennington  <hp@redhat.com>
7779
7780         * doc/dbus-tutorial.xml: write some stuff
7781
7782 2003-09-29  Havoc Pennington  <hp@pobox.com>
7783
7784         * configure.in: split checks for Doxygen from XML docs, check for
7785         xmlto
7786
7787         * doc/Makefile.am: XML-ify all the docs, and add a blank
7788         dbus-tutorial.xml
7789
7790 2003-09-29  Havoc Pennington  <hp@pobox.com>
7791
7792         * Merge dbus-object-names branch. To see the entire patch 
7793         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7794         it's huuuuge though.
7795         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7796         
7797 2003-09-28  Havoc Pennington  <hp@pobox.com>
7798
7799         * HACKING: update to reflect new server
7800
7801 2003-09-26  Seth Nickell  <seth@gnome.org>
7802
7803         * python/dbus.py:
7804         * python/examples/example-signals.py:
7805
7806         Start implementing some notions of signals. The API
7807         is really terrible, but they sort of work (with the
7808         exception of being able to filter by service, and to
7809         transmit signals *as* a particular service). Need to
7810         figure out how to make messages come from the service
7811         we registered :-(
7812         
7813         * python/dbus_bindings.pyx.in:
7814
7815         Removed duplicate message_handler callbacks.
7816         
7817 2003-09-25  Havoc Pennington  <hp@redhat.com>
7818
7819         * bus/session.conf.in: fix my mess
7820
7821 2003-09-25  Havoc Pennington  <hp@pobox.com>
7822
7823         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7824
7825 2003-09-25  Seth Nickell  <seth@gnome.org>
7826
7827         * python/examples/example-service.py:
7828
7829         Johan notices complete wrong code in example-service, but
7830         completely wrong in a way that works exactly the same (!).
7831         Johan is confused, how could this possibly work? Example
7832         code fails to serve purpose of making things clear.
7833         Seth fixes.
7834
7835 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7836
7837         * doc/dbus-specification.sgml: don't require header fields
7838         to be 4-byte aligned and specify that fields should be
7839         distinguished from padding by the fact that zero is not
7840         a valid field name.
7841         
7842         * doc/TODO: remove re-alignment item and add item to doc
7843         the OBJECT_PATH type.
7844         
7845         * dbus/dbus-message.c:
7846         (HeaderField): rename the original member to value_offset
7847         and introduce a name_offset member to keep track of where
7848         the field actually begins.
7849         (adjust_field_offsets): remove.
7850         (append_int_field), (append_uint_field),
7851         (append_string_field): don't align the start of the header
7852         field to a 4-byte boundary.
7853         (get_next_field): impl finding the next marhsalled field
7854         after a given field.
7855         (re_align_field_recurse): impl re-aligning a number of
7856         already marshalled fields.
7857         (delete_field): impl deleting a field of any type and
7858         re-aligning any following fields.
7859         (delete_int_or_uint_field), (delete_string_field): remove.
7860         (set_int_field), (set_uint_field): no need to re-check
7861         that we have the correct type for the field.
7862         (set_string_field): ditto and impl re-aligning any
7863         following fields.
7864         (decode_header_data): update to take into account that
7865         the fields aren't 4-byte aligned any more and the new
7866         way to distinguish padding from header fields. Also,
7867         don't exit when there is too much header padding.
7868         (process_test_subdir): print the directory.
7869         (_dbus_message_test): add test to make sure a following
7870         field is re-aligned correctly after field deletion.
7871         
7872         * dbus/dbus-string.[ch]:
7873         (_dbus_string_insert_bytes): rename from insert_byte and
7874         allow the insert of multiple bytes.
7875         (_dbus_string_test): test inserting multiple bytes.
7876
7877         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7878         warning note to docs about having to re-align any
7879         marshalled values following the string.
7880         
7881         * dbus/dbus-message-builder.c:
7882         (append_string_field), (_dbus_message_data_load):
7883         don't align the header field.
7884         
7885         * dbus/dbus-auth.c: (process_test_subdir): print the
7886         directory.
7887         
7888         * test/break-loader.c: (randomly_add_one_byte): upd. for
7889         insert_byte change.
7890         
7891         * test/data/invalid-messages/bad-header-field-alignment.message:
7892         new test case.
7893         
7894         * test/data/valid-messages/unknown-header-field.message: shove
7895         a dict in the unknown field.
7896
7897 2003-09-25  Seth Nickell  <seth@gnome.org>
7898
7899         * python/dbus.py:
7900         * python/dbus_bindings.pyx.in:
7901
7902         Handle return values.
7903         
7904         * python/examples/example-client.py:
7905         * python/examples/example-service.py:
7906
7907         Pass back return values from the service to the client.
7908         
7909 2003-09-24  Seth Nickell  <seth@gnome.org>
7910
7911         * python/dbus.py:
7912
7913         Connect Object methods (when you are sharing an object) up... pass
7914         in a list of methods to be shared. Sharing all the methods just
7915         worked out too weird. You can now create nice Services over the
7916         DBus in Python. :-)
7917         
7918         * python/dbus_bindings.pyx.in:
7919
7920         Keep references to user_data tuples passed into C functions so 
7921         Python doesn't garbage collect on us.
7922
7923         Implement MethodReturn and Error subclasses of Message for creating
7924         DBusMessage's of those types.
7925         
7926         * python/examples/example-client.py:
7927         * python/examples/example-service.py:
7928
7929         Simple example code showing both how create DBus services and objects,
7930         and how to use them.
7931
7932 2003-09-23  Havoc Pennington  <hp@pobox.com>
7933
7934         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7935
7936 2003-09-23  Havoc Pennington  <hp@redhat.com>
7937
7938         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7939         (dbus_gproxy_disconnect_signal): implement
7940         (dbus_gproxy_manager_remove_signal_match): implement
7941         (dbus_gproxy_manager_add_signal_match): implement
7942         (dbus_gproxy_oneway_call): implement
7943
7944 2003-09-23  Havoc Pennington  <hp@pobox.com>
7945
7946         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7947         subclass. This means dropping the transparent thread safety of the
7948         proxy; you now need a separate proxy per-thread, or your own
7949         locking on the proxy. Probably right anyway.
7950         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7951
7952 2003-09-22  Havoc Pennington  <hp@redhat.com>
7953
7954         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7955
7956 2003-09-21  Seth Nickell  <seth@gnome.org>
7957
7958         First checkin of the Python bindings.
7959         
7960         * python/.cvsignore:
7961         * python/Makefile.am:
7962         * python/dbus_bindings.pyx.in:
7963         * python/dbus_h_wrapper.h:
7964
7965         Pieces for Pyrex to operate on, building a dbus_bindings.so
7966         python module for low-level access to the DBus APIs.
7967         
7968         * python/dbus.py:
7969
7970         High-level Python module for accessing DBus objects.
7971
7972         * configure.in:
7973         * Makefile.am:
7974
7975         Build stuff for the python bindings.
7976
7977         * acinclude.m4:
7978
7979         Extra macro needed for finding the Python C header files.
7980
7981 2003-09-21  Havoc Pennington  <hp@pobox.com>
7982
7983         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7984         implementing the proxy manager, didn't get very far.
7985
7986         * dbus/dbus-bus.c (dbus_bus_add_match): new
7987         (dbus_bus_remove_match): new
7988
7989         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7990         path_name argument; adjust the other not-yet-implemented 
7991         gproxy constructors to be what I think they should be.
7992
7993 2003-09-21  Havoc Pennington  <hp@pobox.com>
7994
7995         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7996         by default for message bus connections.
7997
7998         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7999         exit_on_disconnect flag is set and we process the disconnected
8000         signal.
8001         (dbus_connection_set_exit_on_disconnect): new function
8002
8003 2003-09-21  Havoc Pennington  <hp@pobox.com>
8004
8005         Get matching rules mostly working in the bus; only actually
8006         parsing the rule text remains. However, the client side of
8007         "signal connections" hasn't been started, this patch is only the
8008         bus side.
8009         
8010         * dbus/dispatch.c: fix for the matching rules changes
8011         
8012         * bus/driver.c (bus_driver_handle_remove_match)
8013         (bus_driver_handle_add_match): send an ack reply from these
8014         method calls
8015
8016         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8017         arguments, reported by Seth Nickell
8018
8019         * bus/config-parser.c (append_rule_from_element): support
8020         eavesdrop=true|false attribute on policies so match rules 
8021         can be prevented from snooping on the system bus.
8022
8023         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8024         and "destination" in attribute names; fix some docs bugs; 
8025         add eavesdrop=true|false attribute
8026
8027         * bus/driver.c (bus_driver_handle_add_match)
8028         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8029         messages
8030
8031         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8032         rid of broadcast service concept, signals are just always broadcast
8033
8034         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8035         mostly implement matching rules stuff (currently only exposed as signal
8036         connections)
8037
8038 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8039
8040         * doc/dbus-specification.sgml: Change the header field name
8041         to be an enum and update the rest of the spec to reference
8042         the fields using the conventinal name.
8043
8044         * dbus/dbus-protocol.h: update to reflect the spec.
8045
8046         * doc/TODO: add item to remove the 4 byte alignment requirement.
8047         
8048         * dbus/dbus-message.c: Remove the code to generalise the
8049         header/body length and serial number header fields as named
8050         header fields so we can reference field names using the 
8051         protocol values.
8052         (append_int_field), (append_uint_field), (append_string_field):
8053         Append the field name as a byte rather than four chars.
8054         (delete_int_or_uint_field), (delete_string_field): reflect the
8055         fact that the field name and typecode now occupy 4 bytes instead
8056         of 8.
8057         (decode_string_field), (decode_header_data): update to reflect
8058         protocol changes and move the field specific encoding from
8059         decode_string_field() back into decode_header_data().
8060         
8061         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8062         Add utility to aid debugging.
8063         
8064         * dbus/dbus-message-builder.c:
8065         (append_string_field), (_dbus_message_data_load): Update to
8066         reflect protocol changes; Change the FIELD_NAME directive
8067         to HEADER_FIELD and allow it to take the field's conventional
8068         name rather than the actual value.
8069         
8070         * test/data/*/*.message: Update to use HEADER_FIELD instead
8071         of FIELD_NAME; Always align the header on an 8 byte boundary
8072         *before* updating the header length.
8073
8074 2003-09-15  Havoc Pennington  <hp@pobox.com>
8075
8076         * dbus/dbus-pending-call.c: add the get/set object data
8077         boilerplate as for DBusConnection, etc. Use generic object data
8078         for the notify callback.
8079
8080         * glib/dbus-gparser.c (parse_node): parse child nodes
8081
8082         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8083         
8084         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8085         contain functions shared between the convenience lib and the
8086         installed lib
8087
8088         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8089         -export-symbols-regex to the GLib library
8090
8091         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8092         fix the locking in here, and add a default handler for
8093         Introspect() that just returns sub-nodes.
8094
8095 2003-09-14  Havoc Pennington  <hp@pobox.com>
8096
8097         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8098         rather than gfoo consistent
8099
8100         * glib/dbus-gproxy.h: delete for now, move contents to
8101         dbus-glib.h, because the include files don't work right since we
8102         aren't in the dbus/ subdir.
8103         
8104         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8105         (dbus_gproxy_end_call): finish
8106         (dbus_gproxy_begin_call): finish
8107
8108         * glib/dbus-gmain.c (dbus_set_g_error): new
8109
8110         * glib/dbus-gobject.c (handle_introspect): include information
8111         about child nodes in the introspection
8112
8113         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8114         function to help in implementation of introspection
8115
8116         * dbus/dbus-object-tree.c
8117         (_dbus_object_tree_list_registered_and_unlock): new function
8118
8119 2003-09-12  Havoc Pennington  <hp@pobox.com>
8120
8121         * glib/dbus-gidl.h: add common base class for all the foo_info
8122         types
8123
8124         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8125         similar to kdcop
8126
8127         * test/Makefile.am: try test srcdir -ef . in addition to test
8128         srcdir = ., one of them should work (yeah lame)
8129         
8130         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8131         library
8132         
8133         * glib/dbus-gparser.h: make description_load routines return
8134         NodeInfo* not Parser*
8135
8136         * Makefile.am (SUBDIRS): build test dir after all library dirs
8137
8138         * configure.in: add GTK+ detection
8139
8140 2003-09-07  Havoc Pennington  <hp@pobox.com>
8141
8142         * Make Doxygen contented.
8143
8144 2003-09-07  Havoc Pennington  <hp@pobox.com>
8145
8146         * doc/dbus-specification.sgml: more updates
8147
8148 2003-09-06  Havoc Pennington  <hp@pobox.com>
8149
8150         * doc/dbus-specification.sgml: partial updates
8151
8152         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8153         zillionth time; hopefully I edited the right file this time.
8154
8155         * bus/config-parser.c (append_rule_from_element): support
8156         send_type, send_path, receive_type, receive_path
8157
8158         * bus/policy.c: add message type and path to the list of things
8159         that can be "firewalled"
8160
8161 2003-09-06  Havoc Pennington  <hp@pobox.com>
8162
8163         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8164         (dbus_connection_register_object_path): make this not handle
8165         messages to paths below the given path
8166
8167 2003-09-03  Havoc Pennington  <hp@pobox.com>
8168
8169         * test/glib/Makefile.am: add this with random glib-linked test
8170         programs
8171
8172         * glib/Makefile.am: remove the random test programs from here,
8173         leave only the unit tests
8174
8175         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8176         uscore/javacaps conversion, and fix     
8177         (get_object_property, set_object_property): change to .NET
8178         convention for mapping props to methods, set_FooBar/get_FooBar, 
8179         since one language has such a convention we may as well copy it. 
8180         Plus real methods in either getFooBar or get_foo_bar style won't 
8181         collide with this convention.
8182
8183 2003-09-01  Havoc Pennington  <hp@pobox.com>
8184
8185         * glib/dbus-gparser.c: implement
8186
8187         * glib/dbus-gobject.c: start implementing skeletons support
8188
8189         * configure.in: when disabling checks/assert, also define
8190         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8191
8192 2003-09-01  Havoc Pennington  <hp@pobox.com>
8193
8194         * glib/Makefile.am: rearrange a bunch of files and get "make
8195         check" framework set up
8196
8197 2003-08-31  Havoc Pennington  <hp@pobox.com>
8198
8199         * fix build with --disable-tests
8200
8201 2003-08-30  Havoc Pennington  <hp@pobox.com>
8202
8203         * dbus/dbus-connection.c: purge DBusMessageHandler
8204
8205         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8206         use callbacks everywhere
8207
8208 2003-08-30  Havoc Pennington  <hp@pobox.com>
8209
8210         * test/data/valid-config-files/system.d/test.conf: change to 
8211         root for the user so warnings don't get printed
8212
8213         * dbus/dbus-message.c: add dbus_message_get_path,
8214         dbus_message_set_path
8215         
8216         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8217         dispatching to a path
8218
8219         * dbus/dbus-string.c (_dbus_string_validate_path): add
8220
8221         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8222         (_dbus_marshal_object_path): implement
8223
8224         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8225         to contain the path to the target object
8226         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8227         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8228
8229 2003-08-30  Havoc Pennington  <hp@pobox.com>
8230
8231         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8232
8233 2003-08-29  Havoc Pennington  <hp@pobox.com>
8234
8235         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8236         registered
8237         (struct DBusObjectSubtree): shrink this
8238         a lot, since we may have a lot of them
8239         (_dbus_object_tree_free_all_unlocked): implement
8240         (_dbus_object_tree_dispatch_and_unlock): implement
8241
8242 2003-08-29  Havoc Pennington  <hp@pobox.com>
8243
8244         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8245
8246 2003-08-28  Havoc Pennington  <hp@pobox.com>
8247
8248         purge DBusObjectID
8249         
8250         * dbus/dbus-connection.c: port to no ObjectID, create a
8251         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8252
8253         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8254         everything except UnregisterFunction and MessageFunction
8255         
8256         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8257         add DBUS_TYPE_OBJECT_PATH
8258         
8259         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8260         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8261         path-based object IDs
8262
8263 2003-08-25  Havoc Pennington  <hp@pobox.com>
8264
8265         Just noticed that dbus_message_test is hosed, I wonder when I
8266         broke that. I thought make check was passing earlier...
8267         
8268         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8269         container tree, will replace most of dbus-object-registry
8270
8271         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8272         screwup
8273
8274 2003-08-19  Havoc Pennington  <hp@pobox.com>
8275
8276         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8277         (dbus_message_is_error): fix this function
8278
8279         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8280         match
8281
8282         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8283         reflect clarified man page
8284         (bus_client_policy_check_can_send): ditto
8285         
8286         * bus/session.conf.in: fixup
8287
8288         * bus/system.conf.in: fixup
8289
8290 2003-08-18  Havoc Pennington  <hp@redhat.com>
8291
8292         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8293
8294         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8295         dumb bug created earlier (wrong order of args to
8296         decode_header_data())
8297         
8298         * tools/dbus-send.c: port
8299
8300         * tools/dbus-print-message.c (print_message): port
8301
8302         * test/data/*messages: port all messages over
8303         
8304         * dbus/dbus-message-builder.c: support including 
8305         message type
8306         
8307         * bus/driver.c: port over
8308         
8309         * bus/dispatch.c: port over to new stuff
8310
8311         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8312         rename disconnect signal to "Disconnected"
8313
8314 2003-08-17  Havoc Pennington  <hp@pobox.com>
8315
8316         This doesn't compile yet, but syncing up so I can hack on it from
8317         work. What are branches for if not broken code? ;-)
8318         
8319         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8320         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8321         DBUS_HEADER_FIELD_ERROR_NAME
8322         
8323         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8324         for the interface+member pairs
8325         (string_hash): change to use g_str_hash algorithm
8326         (find_direct_function, find_string_function): refactor these to
8327         share most code.
8328         
8329         * dbus/dbus-message.c: port all of this over to support 
8330         interface/member fields instead of name field
8331
8332         * dbus/dbus-object-registry.c: port over
8333         
8334         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8335         from _dbus_string_validate_name
8336
8337         * bus/dbus-daemon-1.1: change file format for the 
8338         <deny>/<allow> stuff to match new message naming scheme
8339
8340         * bus/policy.c: port over
8341
8342         * bus/config-parser.c: parse new format
8343         
8344 2003-08-16  Havoc Pennington  <hp@pobox.com>
8345
8346         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8347         broken assertion
8348
8349         * glib/dbus-gproxy.c: some hacking
8350
8351 2003-08-15  Havoc Pennington  <hp@redhat.com>
8352
8353         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8354
8355         * dbus/dbus-connection.c
8356         (dbus_connection_send_with_reply_and_block): factor out internals;
8357         change to convert any error replies to DBusError instead of 
8358         returning them as a message
8359
8360 2003-08-15  Havoc Pennington  <hp@pobox.com>
8361
8362         * dbus/dbus-connection.c, 
8363         dbus/dbus-pending-call.c: Finish the pending call stuff
8364
8365 2003-08-14  Havoc Pennington  <hp@redhat.com>
8366
8367         * dbus/dbus-pending-call.c: start on new object that will replace
8368         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8369         replies
8370
8371         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8372         with remote interfaces
8373
8374         * dbus/dbus-gidl.c: do the boring boilerplate in here
8375         
8376 2003-08-12  Havoc Pennington  <hp@pobox.com>
8377
8378         * bus/dispatch.c (bus_dispatch): make this return proper 
8379         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8380
8381         * dbus/dbus-errors.c (dbus_set_error): use
8382         _dbus_string_append_printf_valist
8383
8384         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8385         (_dbus_string_append_printf): new
8386
8387         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8388         UNKNOWN_METHOD
8389
8390         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8391         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8392         message is unhandled.
8393
8394 2003-08-11  Havoc Pennington  <hp@pobox.com>
8395
8396         * bus/test.c (client_disconnect_handler): change to return
8397         HANDLED (would have been REMOVE_MESSAGE)
8398
8399         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8400         HANDLED/NOT_YET_HANDLED instead of
8401         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8402         should be used.
8403
8404 2003-08-10  Havoc Pennington  <hp@pobox.com>
8405
8406         * tools/dbus-send.c (main): add --type argument, for now
8407         supporting only method_call and signal types.
8408
8409         * tools/dbus-print-message.c: print message type
8410
8411         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8412         init connection->objects
8413
8414         * doc/dbus-specification.sgml: fix sgml
8415
8416         * bus/*.c: port over to object-instance API changes
8417
8418         * test/test-service.c: ditto
8419         
8420         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8421         name, we will have to fix up the rest of the code to also handle
8422         this
8423         (dbus_message_new): generic message-creation call
8424         (set_string_field): allow appending name field
8425
8426 2003-08-06  Havoc Pennington  <hp@pobox.com>
8427
8428         * dbus/dbus-object-registry.c: implement signal connection 
8429         and dispatch
8430
8431         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8432
8433         * dbus/dbus-internals.c (_dbus_memdup): new function
8434
8435 2003-08-02  Havoc Pennington  <hp@pobox.com>
8436
8437         * dbus/dbus-message.c (dbus_message_get_no_reply)
8438         (dbus_message_set_no_reply): add these and remove
8439         set_is_error/get_is_error
8440
8441         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8442         remove the ERROR flag, since there's now an ERROR type
8443
8444 2003-08-01  Havoc Pennington  <hp@pobox.com>
8445
8446         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8447         implement
8448
8449         * dbus/dbus-message.c (dbus_message_get_type): new function
8450
8451         * doc/dbus-specification.sgml: add "type" byte to messages
8452
8453 2003-08-01  Havoc Pennington  <hp@pobox.com>
8454
8455         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8456         a message type enum to distinguish kinds of message
8457         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8458         that need not be replied to
8459
8460 2003-08-01  Havoc Pennington  <hp@pobox.com>
8461
8462         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8463         (unpack_8_octets): fix no-64-bit-int bug
8464
8465         * dbus/dbus-object-registry.c (validate_id): validate the 
8466         connection ID bits, not just the instance ID.
8467
8468         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8469         the connection-global 33 bits of the object ID
8470
8471         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8472         object ID in the new way
8473
8474         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8475         define server/client/instance bits.
8476
8477 2003-07-30  Havoc Pennington  <hp@pobox.com>
8478
8479         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8480         build
8481
8482 2003-07-13  Havoc Pennington  <hp@pobox.com>
8483
8484         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8485         fields to DBusObjectVTable and DBusObjectInfo
8486
8487 2003-07-12  Havoc Pennington  <hp@pobox.com>
8488
8489         * dbus/dbus-object-registry.c: implement unit test,
8490         fix bugs discovered in process
8491
8492         * dbus/dbus-connection.c: remove handler_table and
8493         register_handler(), add DBusObjectRegistry usage
8494
8495         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8496         (dbus_object_id_set_null): new functions
8497
8498 2003-07-08  Havoc Pennington  <hp@pobox.com>
8499
8500         * dbus/dbus-object.c: implement some of this
8501
8502         * dbus/dbus-object-registry.c
8503         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8504         param
8505         (_dbus_object_registry_new): handle OOM
8506
8507 2003-07-08  Havoc Pennington  <hp@pobox.com>
8508
8509         * dbus/dbus-object.h: sketch out an API for registering objects
8510         with a connection, that allows us to use as little as 24 bytes
8511         per object and lets application code represent an object in 
8512         any conceivable way.
8513
8514         * dbus/dbus-object-registry.c: implement the hard bits of the
8515         DBusConnection aspect of object API. Not yet wired up.
8516         
8517 2003-07-06  Havoc Pennington  <hp@pobox.com>
8518
8519         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8520         (_dbus_marshal_object_id): new
8521         (_dbus_demarshal_object_id): new
8522         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8523         consolidate identical switch cases. Don't conditionalize handling
8524         of DBUS_TYPE_UINT64, need to handle the type always.
8525         (_dbus_marshal_validate_arg): consolidate identical cases, and
8526         handle DBUS_TYPE_OBJECT_ID
8527
8528         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8529
8530         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8531
8532 2003-09-28  Havoc Pennington  <hp@pobox.com>
8533
8534         * real 0.13 release
8535
8536 2003-09-28  Havoc Pennington  <hp@pobox.com>
8537
8538         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8539         to work with Debian db2html
8540
8541 2003-09-28  Havoc Pennington  <hp@pobox.com>
8542
8543         * configure.in: 0.13
8544
8545         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8546         stylesheet-images for benefit of Debian
8547         
8548         Change back to using filesystem-linked sockets for the system
8549         bus, so only root can create the default system bus address.
8550         
8551         * bus/system.conf.in: change to use
8552         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8553
8554         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8555         from here.
8556
8557         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8558         here, and AC_DEFINE DBUS_SYSTEM_PATH
8559
8560 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8561
8562         * doc/TODO:
8563         * doc/busconfig.dtd:
8564         Add busconfig DTD.
8565         
8566 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8567
8568         * doc/dbus-specification.sgml:
8569         Add activation reply values.
8570         
8571 2003-08-05  Havoc Pennington  <hp@redhat.com>
8572
8573         * configure.in: 0.12
8574
8575 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8576
8577         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8578         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8579         (add_watch), (remove_watch), (create_source):
8580         Refcount fds, fixes some reentrancy issues.
8581         
8582 2003-07-30  Havoc Pennington  <hp@redhat.com>
8583
8584         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8585         bus address to be abstract if we have abstract sockets
8586
8587         * NEWS: update
8588
8589 2003-07-28  Havoc Pennington  <hp@redhat.com>
8590
8591         * bus/messagebus.in: fix to avoid processname/servicename 
8592         confusion, from Michael Kearey
8593         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8594         
8595 2003-07-23  Havoc Pennington  <hp@pobox.com>
8596
8597         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8598         fix from Andy Hanton to remove broken "+1"
8599
8600 2003-07-16  Havoc Pennington  <hp@pobox.com>
8601
8602         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8603         babysitter process, as suggested by Thomas Leonard, so 
8604         an "eval `dbus-launch --exit-with-session`" will actually 
8605         return
8606
8607 2003-07-16  Havoc Pennington  <hp@pobox.com>
8608
8609         * configure.in: print out EXPANDED_* variables in the summary at
8610         the end; clean up the code that computes EXPANDED_ variables and
8611         get the ones using exec_prefix right. Should make things work
8612         when you build without --prefix
8613
8614 2003-06-29  Havoc Pennington  <hp@pobox.com>
8615
8616         * mono/Test.cs (class Test): fire up a main loop and run it
8617
8618         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8619         done once, the app has to do it
8620
8621 2003-06-26  Havoc Pennington  <hp@pobox.com>
8622
8623         * mono/Connection.cs: set up connection with the glib main loop
8624
8625 2003-07-01  Havoc Pennington  <hp@redhat.com>
8626
8627         * doc/dbus-specification.sgml: clarify the format of a type code,
8628         change suggested by Jim Blandy
8629
8630 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8631
8632         * doc/Makefile.am:
8633         * tools/Makefile.am: Don't assume srcdir == builddir.
8634
8635         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8636         the allocated block.
8637         (_dbus_memory_test): New function.
8638         * dbus/dbus-test.h: Add _dbus_memory_test ().
8639         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8640
8641         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8642         of %c%c%c%c.
8643         (dbus_message_new): Remove obsolete @todo.
8644
8645         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8646         (_dbus_marshal_set_uint64): Fix comment.
8647
8648         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8649         hardcode FIELD_REPLY_SERIAL.
8650
8651         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8652         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8653
8654         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8655         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8656
8657 2003-06-24  Havoc Pennington  <hp@pobox.com>
8658
8659         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8660
8661 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8662
8663         * configure.in:
8664         * gcj/.cvsignore:
8665         * gcj/Hello.java:
8666         * gcj/Makefile.am:
8667         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8668         * gcj/org/.cvsignore:
8669         * gcj/org/Makefile.am:
8670         * gcj/org/freedesktop/.cvsignore:
8671         * gcj/org/freedesktop/Makefile.am:
8672         * gcj/org/freedesktop/dbus/.cvsignore:
8673         * gcj/org/freedesktop/dbus/Makefile.am:
8674         * gcj/org/freedesktop/dbus/Message.java: (Message),
8675         (Message.Message):
8676         * gcj/org/freedesktop/dbus/natMessage.cc:
8677         Fix the build system.
8678
8679 2003-06-22  Havoc Pennington  <hp@pobox.com>
8680
8681         * mono/Connection.cs: add more bindings
8682
8683         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8684         more than once.
8685
8686 2003-06-22  Havoc Pennington  <hp@pobox.com>
8687
8688         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8689         Start wrapping more stuff.
8690
8691 2003-06-22  Havoc Pennington  <hp@pobox.com>
8692
8693         * mono/Message.cs: implement Message.Wrap() that ensures we only
8694         have a single C# wrapper per DBusMessage, assuming it works which
8695         it probably doesn't.
8696
8697         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8698         (dbus_message_free_data_slot): new
8699         (dbus_message_set_data): new
8700         (dbus_message_get_data): new
8701
8702 2003-06-22  Havoc Pennington  <hp@pobox.com>
8703
8704         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8705         (_dbus_data_slot_allocator_alloc): rework these to keep a
8706         reference count on each slot and automatically manage a global
8707         slot ID variable passed in by address
8708
8709         * bus/bus.c: convert to new dataslot API
8710
8711         * dbus/dbus-bus.c: convert to new dataslot API
8712
8713         * dbus/dbus-connection.c: convert to new dataslot API
8714
8715         * dbus/dbus-server.c: convert to new dataslot API
8716
8717         * glib/dbus-gmain.c: ditto
8718
8719         * bus/test.c: ditto
8720
8721         * bus/connection.c: ditto
8722
8723 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8724
8725         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8726         after the gcj checks so that the correct configuration tags
8727         will be added to libtool.
8728
8729         * dbus-glib-1.pc.in: No need to specify any includes since
8730         dbus-1.pc.in has those.
8731
8732 2003-06-22  Havoc Pennington  <hp@pobox.com>
8733
8734         * mono/*, gcj/*, configure.in, Makefile.am:
8735         Check in makefiles and subdirs for mono and gcj bindings.
8736         Neither binding actually exists, just trying to get through
8737         all the build and other boring bits.
8738
8739 2003-06-21  Philip Blundell  <philb@gnu.org>
8740
8741         * tools/dbus-monitor.1: Updated.
8742
8743         * tools/dbus-send.1: Likewise.
8744
8745 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8746
8747         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8748         for hangup and error after checking read so we won't discard
8749         pending data if both hangup and read are set.
8750
8751 2003-06-19  Philip Blundell  <philb@gnu.org>
8752
8753         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8754
8755         * tools/dbus-send.c: Accept both --system and --session.
8756
8757         * tools/dbus-monitor.c: Same here.
8758
8759 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8760
8761         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8762         from C++ (Patch by Miloslav Trmac).
8763
8764 2003-06-15  Joe Shaw  <joe@assbarn.com>
8765
8766         * configure.in: Check for socklen_t.
8767
8768         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8769
8770         * test/test-segfault.c: Add #include <sys/time.h>
8771
8772         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8773         dbus-launch needs it.
8774
8775 2003-06-09  Havoc Pennington  <hp@redhat.com>
8776
8777         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8778         SUN_LEN, it breaks abstract socket usage
8779
8780         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8781         starts of lines.
8782
8783 2003-06-04  Havoc Pennington  <hp@pobox.com>
8784
8785         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8786         using unix:abstract=/foo, and when listening in a tmpdir
8787         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8788
8789         * dbus/dbus-transport.c (_dbus_transport_open): support
8790         unix:abstract=/foo
8791
8792         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8793         support abstract sockets
8794
8795         * dbus/dbus-transport-unix.c
8796         (_dbus_transport_new_for_domain_socket): support abstract sockets
8797
8798         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8799         toggle as an argument, implement abstract namespace support
8800         (_dbus_listen_unix_socket): ditto
8801
8802         * configure.in: add --enable-abstract-sockets and implement
8803         a configure check for autodetection of the right value.
8804
8805 2003-06-01  Havoc Pennington  <hp@pobox.com>
8806
8807         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8808         in /tmp (though on Linux this will end up being useless,
8809         when we add abstract namespace support)
8810
8811         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8812         subst'ing it
8813
8814 2003-05-28  Colin Walters  <walters@verbum.org>
8815
8816         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8817
8818 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8819
8820         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8821
8822 2003-05-17  Colin Walters  <walters@gnu.org>
8823
8824         * tools/dbus-send.c: Don't exit with an error code if --help was
8825         passed.  Default to using the session bus instead of the system
8826         one.
8827
8828         * tools/dbus-launch.c: Ditto.
8829
8830         * tools/dbus-monitor.c: Ditto.
8831
8832         * tools/dbus-send.1: Update with new arguments.
8833
8834         * tools/dbus-launch.c: Emit code to export variables.  New
8835         arguments -s and -c to specify shell syntax, and a bit of code to
8836         autodetect syntax.  Also, allow specifying a program to run.
8837
8838         * tools/dbus-launch.1: Update with new arguments.
8839
8840         * tools/dbus-send.1: Ditto.
8841
8842         * tools/dbus-monitor.1: Ditto.
8843
8844 2003-05-17  Havoc Pennington  <hp@pobox.com>
8845
8846         * bus/config-parser.c (merge_included): merge in policies from
8847         child configuration file.
8848
8849         * bus/policy.c (bus_policy_merge): function to merge two policies
8850         together
8851
8852 2003-05-16  Havoc Pennington  <hp@redhat.com>
8853
8854         * dbus/dbus-connection.c: disable verbose lock spew
8855
8856         * tools/dbus-send.c: add --print-reply command line option
8857
8858         * tools/dbus-print-message.h (print_message): new util function
8859         shared by dbus-send and dbus-monitor
8860
8861         * tools/dbus-monitor.c (handler_func): exit on disconnect
8862
8863         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8864         disconnected, don't try to use the read_watch
8865
8866         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8867         so we can find this bug more easily
8868
8869 2003-05-16  Havoc Pennington  <hp@redhat.com>
8870
8871         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8872         NULL as DBusHashTable is annoyingly likely to do.
8873
8874 2003-05-16  Colin Walters  <walters@verbum.org>
8875
8876         * tools/dbus-monitor.c: Add --session argument and usage()
8877         function.
8878
8879         * tools/dbus-monitor.1: Update with new --session arg.
8880
8881         * bus/Makefile.am (install-data-hook): Create
8882         $(libdir)/dbus-1.0/services so that the session bus is happy.
8883
8884 2003-05-15  Havoc Pennington  <hp@redhat.com>
8885
8886         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8887         on non-x86. ifdef's are evil.
8888
8889 2003-05-15  Havoc Pennington  <hp@redhat.com>
8890
8891         * configure.in: 0.11
8892
8893         * NEWS: update
8894
8895         * bus/Makefile.am (initddir): apparently we are supposed to put
8896         init scripts in /etc/rc.d/init.d not /etc/init.d
8897
8898         * bus/Makefile.am: remove the "you must --enable-tests to make
8899         check" as it broke distcheck
8900
8901         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8902
8903 2003-05-13  James Willcox  <jwillcox@gnome.org>
8904
8905         * configure.in:
8906         * bus/activation.c: (bus_activation_service_created),
8907         (bus_activation_activate_service):
8908         * bus/driver.c: (bus_driver_send_service_deleted),
8909         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8910         (bus_driver_send_service_acquired),
8911         (bus_driver_send_welcome_message),
8912         (bus_driver_handle_list_services):
8913         * bus/session.conf.in:
8914         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8915         (dbus_bus_service_exists), (dbus_bus_activate_service):
8916         * dbus/dbus-bus.h:
8917
8918         Add some convenience API which lets you activate a service, and did a
8919         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8920         and dbus_message_get_args()
8921
8922 2003-05-11  Havoc Pennington  <hp@pobox.com>
8923
8924         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8925         calling _dbus_marshal_validate_arg() for every byte in a byte
8926         array, etc.
8927
8928         * dbus/dbus-message-handler.c: use atomic reference counting to
8929         reduce number of locks slightly; the global lock in here sucks
8930
8931         * dbus/dbus-connection.c
8932         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8933         update_dispatch_status that can be called with lock held; then use
8934         in a couple places to reduce locking/unlocking
8935         (dbus_connection_send): hold the lock over the whole function
8936         instead of acquiring it twice.
8937
8938         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8939
8940         * bus/connection.c (bus_connections_setup_connection): fix access
8941         to already-freed memory.
8942
8943         * dbus/dbus-connection.c: keep a little cache of linked list
8944         nodes, to avoid using the global linked list alloc lock in the
8945         normal send-message case. Instead we just use the connection lock
8946         that we already have to take.
8947
8948         * dbus/dbus-list.c (_dbus_list_find_last): new function
8949
8950         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8951         change to use a struct for the atomic type; fix docs,
8952         they return value before increment, not after increment.
8953
8954         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8955         (_dbus_string_append_8_aligned): new functions to try to
8956         microoptimize this operation.
8957         (reallocate_for_length): break this out of set_length(), to
8958         improve profile info, and also so we can consider inlining the
8959         set_length() part.
8960
8961         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8962         strings with some preallocation, cuts down on our calls to realloc
8963         a fair bit. Though if we can get the "move entire string to empty
8964         string" optimization below to kick in here, it would be better.
8965
8966         * dbus/dbus-string.c (_dbus_string_move): just call
8967         _dbus_string_move_len
8968         (_dbus_string_move_len): add a special case for moving
8969         an entire string into an empty string; we can just
8970         swap the string data instead of doing any reallocs.
8971         (_dbus_string_init_preallocated): new function
8972
8973 2003-05-11  Havoc Pennington  <hp@pobox.com>
8974
8975         Write a "test-profile" that does echo client-server with threads;
8976         profile reveals lock contention, memcpy/realloc of buffers, and
8977         UTF-8 validation as hot spots. 20% of lock contention eliminated
8978         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8979         contention is global mempool locks for GList and DBusList.
8980
8981         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8982         x86 implementation
8983
8984         * dbus/dbus-connection.c (struct DBusConnection): use
8985         dbus_atomic_t for the reference count
8986
8987         * dbus/dbus-message.c (struct DBusMessage): declare
8988         dbus_atomic_t values as volatile
8989
8990         * configure.in: code to detect ability to use atomic integer
8991         operations in assembly, from GLib patch
8992
8993         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8994         time, tired of it being wrong in threads and forked processes
8995
8996         * glib/test-profile.c: a little program to bounce messages back
8997         and forth between threads and eat CPU
8998
8999         * dbus/dbus-connection.c: add debug spew macros for debugging
9000         thread locks; include config.h at top; fix deadlock in
9001         dbus_connection_flush()
9002
9003 2003-05-08  Havoc Pennington  <hp@pobox.com>
9004
9005         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9006         data from getting written, and there wasn't a good reason to
9007         use _exit really.
9008
9009         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9010         dbus_verbose lines in test coverage
9011         (main): add list of functions sorted by # of untested blocks
9012         to the coverage report
9013
9014         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9015
9016         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9017
9018         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9019         extend test coverage
9020
9021         * test/data/auth/cancel.auth-script: test canceling an
9022         authentication
9023
9024         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9025         aren't used. in CVS history if we end up needing them.
9026
9027 2003-05-04  Havoc Pennington  <hp@pobox.com>
9028
9029         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9030         unit test
9031
9032         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9033         function, which assumed length was in # of strings, not bytes
9034
9035         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9036         missing coverage
9037
9038         * dbus/dbus-connection.c
9039         (_dbus_connection_queue_received_message): disable function for
9040         now, we are only using it in test mode
9041
9042         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9043         remove a mistaken FIXME
9044
9045 2003-05-04  Havoc Pennington  <hp@pobox.com>
9046
9047         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9048         unlock mutex on successful return, patch from Anders Gustafsson
9049
9050 2003-05-04  Havoc Pennington  <hp@pobox.com>
9051
9052         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9053         Anders Gustafsson
9054
9055 2003-05-04  Havoc Pennington  <hp@pobox.com>
9056
9057         * tools/dbus-launch.c: implement
9058
9059         * bus/main.c (main), bus/bus.c (bus_context_new):
9060         implement --print-pid and --fork
9061
9062 2003-05-03  Havoc Pennington  <hp@redhat.com>
9063
9064         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9065         the address had no value, and add to test suite. Fix and
9066         regression test from Miloslav Trmac
9067
9068 2003-05-03  Havoc Pennington  <hp@pobox.com>
9069
9070         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9071         watch is invalid when handled
9072
9073         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9074         dbus-launch utility to launch the bus from a shell script.  Didn't
9075         actually implement dbus-launch yet, it's just a placeholder still.
9076
9077 2003-05-03  Havoc Pennington  <hp@pobox.com>
9078
9079         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9080         daemon; also documents daemon config file, so replaces
9081         doc/config-file.txt. Corrected some stuff from config-file.txt in
9082         the process of moving it.
9083
9084 2003-05-03  Havoc Pennington  <hp@pobox.com>
9085
9086         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9087         add some man pages
9088
9089 2003-05-03  Colin Walters  <walters@verbum.org>
9090
9091         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9092         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9093
9094         * Makefile.am: Update to use new .pc versioning scheme.
9095
9096 2003-05-02  Havoc Pennington  <hp@redhat.com>
9097
9098         * bus/system.conf.in: allow send/receive to/from message bus
9099         service
9100
9101 2003-04-30  Havoc Pennington  <hp@redhat.com>
9102
9103         * configure.in: print a note when building with unit tests and
9104         without assertions
9105
9106 2003-04-30  Havoc Pennington  <hp@redhat.com>
9107
9108         * Makefile.am: add a check-local that complains if you didn't
9109         configure with --enable-tests
9110
9111 2003-04-29  Havoc Pennington  <hp@redhat.com>
9112
9113         * glib/dbus-gmain.c: docs cleanups
9114
9115         * dbus/dbus-types.h: add docs on int64 types
9116
9117         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9118         public API docs section
9119
9120 2003-04-29  Havoc Pennington  <hp@redhat.com>
9121
9122         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9123         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9124         parallel install API version, not with the D-BUS package version.
9125
9126         * HACKING: move some of README over here
9127
9128         * README: updates, and document API/ABI policy
9129
9130         * configure.in: reindentation
9131
9132 2003-04-29  Havoc Pennington  <hp@redhat.com>
9133
9134         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9135         to use this library" to be sure people have the right
9136         expectations.
9137
9138 2003-04-28  Havoc Pennington  <hp@redhat.com>
9139
9140         * configure.in: add --enable-docs which by default is auto yes if
9141         doxygen and db2html found, no otherwise; but can be forced on/off
9142
9143         * doc/Makefile.am: conditionalize whether to build docs on
9144         --enable-docs
9145
9146 2003-04-28  Havoc Pennington  <hp@redhat.com>
9147
9148         * configure.in: 0.10
9149
9150         * NEWS: update
9151
9152         * bus/system.conf.in: add <includedir>system.d</includedir>
9153
9154         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9155         username was provided but not uid
9156
9157         * bus/config-parser.c (struct BusConfigParser): keep track of
9158         whether the parser is toplevel or was included; change some
9159         of the error handling if it's included.
9160
9161 2003-04-27  Havoc Pennington  <hp@pobox.com>
9162
9163         Unbreak my code...
9164
9165         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9166         report correct status if we finish processing authentication
9167         inside this function.
9168
9169         * bus/activation.c (try_send_activation_failure): use
9170         bus_transaction_send_error_reply
9171
9172         * bus/connection.c (bus_connection_get_groups): return an error
9173         explaining the problem
9174
9175         * bus/bus.c (bus_context_check_security_policy): implement
9176         restriction here that inactive connections can only send the
9177         hello message. Also, allow bus driver to send anything to
9178         any recipient.
9179
9180         * bus/connection.c (bus_connection_complete): create the
9181         BusClientPolicy here instead of on-demand.
9182         (bus_connection_get_policy): don't return an error
9183
9184         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9185         sender field in message being replied to
9186
9187         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9188         causing it to return FALSE always
9189
9190         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9191         we checked sender rather than destination
9192
9193 2003-04-25  Havoc Pennington  <hp@redhat.com>
9194
9195         test suite is slightly hosed at the moment, will fix soon
9196
9197         * bus/connection.c (bus_connections_expire_incomplete): fix to
9198         properly disable the timeout when required
9199         (bus_connection_set_name): check whether we can remove incomplete
9200         connections timeout after we complete each connection.
9201
9202         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9203         probably still broken.
9204
9205         * bus/services.c (bus_registry_acquire_service): implement max
9206         number of services owned, and honor allow/deny rules on which
9207         services a connection can own.
9208
9209         * bus/connection.c (bus_connection_get_policy): report errors here
9210
9211         * bus/activation.c: implement limit on number of pending
9212         activations
9213
9214 2003-04-25  Havoc Pennington  <hp@redhat.com>
9215
9216         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9217         where we used >= 0 instead of != DBUS_UID_UNSET.
9218
9219 2003-04-25  Havoc Pennington  <hp@redhat.com>
9220
9221         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9222         were toggled without add/remove, fix from Anders Gustafsson
9223
9224 2003-04-24  Havoc Pennington  <hp@redhat.com>
9225
9226         * test/data/valid-config-files/basic.conf: add <limit> tags to
9227         this test
9228
9229         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9230         <limit> tag in configuration file.
9231
9232 2003-04-24  Havoc Pennington  <hp@redhat.com>
9233
9234         * bus/dispatch.c: somehow missed some name_is
9235
9236         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9237         (_dbus_timeout_set_interval): new
9238
9239         * bus/connection.c (bus_connections_setup_connection): record time
9240         when each connection is first set up, and expire them after the
9241         auth timeout passes.
9242
9243 2003-04-24  Havoc Pennington  <hp@redhat.com>
9244
9245         * dbus/dbus-message.c (dbus_message_name_is): rename
9246         (dbus_message_service_is): rename
9247         (dbus_message_sender_is): rename
9248         (dbus_message_get_service): rename
9249
9250 2003-04-24  Havoc Pennington  <hp@redhat.com>
9251
9252         * configure.in: add --enable-checks
9253
9254         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9255
9256         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9257         to use thread locks.
9258         (_dbus_connection_handler_destroyed_locked): move some private
9259         functions into proper docs group
9260
9261         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9262         _dbus_return_val_if_fail
9263
9264         Throughout: use dbus_return_if_fail
9265
9266 2003-04-23  James Willcox  <jwillcox@gnome.org>
9267
9268         * glib/dbus-glib.h:
9269         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9270         (dbus_connection_setup_with_g_main),
9271         (dbus_server_setup_with_g_main):
9272         * glib/test-dbus-glib.c: (main):
9273         * glib/test-thread-client.c: (main):
9274         * glib/test-thread-server.c: (new_connection_callback), (main):
9275         * tools/dbus-monitor.c: (main):
9276
9277         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9278         and dbus_server_setup_with_g_main().
9279
9280 2003-04-20  Havoc Pennington  <hp@pobox.com>
9281
9282         * doc/dbus-specification.sgml: document the restrictions on
9283         message and service names
9284
9285 2003-04-22  Havoc Pennington  <hp@redhat.com>
9286
9287         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9288         support, and do some code cleanups to share more code and
9289         speed up array marshal/demarshal.
9290
9291         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9292
9293         * configure.in: generate dbus-arch-deps.h
9294
9295         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9296         64-bit typecodes
9297
9298 2003-04-22  Havoc Pennington  <hp@redhat.com>
9299
9300         * test/data/valid-messages/opposite-endian.message: fix test
9301         to use proper type for rply field
9302
9303         * test/data/invalid-messages: add tests for below validation
9304
9305         * dbus/dbus-message.c (decode_header_data): validate field types,
9306         and validate that named fields are valid names
9307         (decode_name_field): consider messages in the
9308         org.freedesktop.Local. namespace to be invalid.
9309
9310         * dbus/dbus-string.c (_dbus_string_validate_name): new
9311
9312 2003-04-19  Havoc Pennington  <hp@pobox.com>
9313
9314         * bus/driver.c (bus_driver_handle_hello): check limits and
9315         return an error if they are exceeded.
9316
9317         * bus/connection.c: maintain separate lists of active and inactive
9318         connections, and a count of each. Maintain count of completed
9319         connections per user. Implement code to check connection limits.
9320
9321         * dbus/dbus-list.c (_dbus_list_unlink): export
9322
9323         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9324         number of bytes in the message queue for a connection
9325
9326 2003-04-18  Havoc Pennington  <hp@pobox.com>
9327
9328         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9329
9330         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9331         memleaks
9332
9333         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9334         on realloc be sure to update the pointer in the keyring
9335
9336         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9337         offset to avoid writing to unallocated memory
9338
9339         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9340         try the next mechanism, so we properly handle OOM
9341
9342         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9343         on OOM.
9344         (_dbus_keyring_new): fix OOM bug
9345         (_dbus_keyring_new_homedir): always set error; impose a maximum
9346         number of keys we'll load from the file, mostly to speed up the
9347         test suite and make its OOM checks more useful, but also for
9348         general sanity.
9349
9350         * dbus/dbus-auth.c (process_error_server): reject authentication
9351         if we get an error from the client
9352         (process_cancel): on cancel, send REJECTED, per the spec
9353         (process_error_client): send CANCEL if we get an error from the
9354         server.
9355
9356 2003-04-18  Havoc Pennington  <hp@pobox.com>
9357
9358         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9359         debug spew
9360
9361         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9362         handling problem
9363
9364         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9365         about DBUS_TEST_HOMEDIR once
9366
9367         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9368         the environment
9369
9370         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9371         config file so we test the right thing
9372
9373         Throughout: assorted docs improvements
9374
9375 2003-04-18  Havoc Pennington  <hp@pobox.com>
9376
9377         * glib/dbus-gmain.c: adapt to watch changes
9378
9379         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9380
9381         * dbus/dbus-server.h: remove dbus_server_handle_watch
9382
9383         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9384
9385         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9386         like DBusTimeout, so we don't need dbus_connection_handle_watch
9387         etc.
9388
9389 2003-04-17  Havoc Pennington  <hp@redhat.com>
9390
9391         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9392         database usage so it all goes via the DBusUserDatabase cache.
9393
9394 2003-04-17  Havoc Pennington  <hp@redhat.com>
9395
9396         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9397         there was an OOM watch we skipped, we always return TRUE so we
9398         iterate again to have a look at it again. Fixes test suite hang.
9399         Code rearrangement also lets us lose some memset and only iterate
9400         over callbacks once.
9401
9402         * bus/driver.c (bus_driver_handle_message): sense of test for
9403         reply was backward
9404
9405 2003-04-16  Havoc Pennington  <hp@pobox.com>
9406
9407         * doc/dbus-specification.sgml: make spec say serials are unsigned
9408
9409         * dbus/dbus-message.h: change message serials to unsigned
9410
9411         * dbus/dbus-connection.c: adapt to message serials being unsigned
9412
9413 2003-04-15  Havoc Pennington  <hp@pobox.com>
9414
9415         * bus/bus.c: create and keep around a shared DBusUserDatabase
9416         object.
9417
9418         * bus/connection.c (bus_connection_get_groups): don't cache
9419         groups for user in the connection object, since user database
9420         object now does that.
9421
9422 2003-04-16  Havoc Pennington  <hp@redhat.com>
9423
9424         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9425         list of size counters
9426         (_dbus_message_loader_putback_message_link): put back a popped link
9427
9428         * dbus/dbus-connection.c
9429         (dbus_connection_set_max_live_messages_size): rename
9430         max_received_size
9431         (dbus_connection_get_outgoing_size): get size of outgoing
9432         queue
9433         (_dbus_connection_set_connection_counter): remove this cruft
9434
9435 2003-04-14  Havoc Pennington  <hp@redhat.com>
9436
9437         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9438         caching, but at some point we might want to be able to use a
9439         different database.
9440
9441         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9442         SHA1 conf file to test the sha1 auth mechanism, since the regular
9443         test always uses EXTERNAL when available.
9444
9445         * configure.in,
9446         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9447         add conf file that requires use of sha1 auth
9448
9449 2003-04-13  Havoc Pennington  <hp@pobox.com>
9450
9451         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9452         from Philip Blundell to send messages and monitor them.
9453
9454 2003-04-13  Havoc Pennington  <hp@pobox.com>
9455
9456         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9457         callbacks
9458
9459         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9460         users
9461
9462         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9463         fix to only recover unused bytes if we're already authenticated
9464         (_dbus_transport_get_is_authenticated): fix to still mark us
9465         authenticated if there are unused bytes.
9466
9467         * bus/dispatch.c: implement security policy checking
9468
9469         * bus/connection.c (bus_transaction_send_from_driver): new
9470
9471         * bus/bus.c (bus_context_check_security_policy): new
9472
9473         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9474         now we just set the DBusError and it gets converted to an error
9475         reply.
9476
9477         * bus/connection.c (allow_user_function): enable code using actual
9478         data from the config file
9479
9480         * bus/policy.c (list_allows_user): handle wildcard rules for
9481         user/group connection perms
9482
9483 2003-04-13  Havoc Pennington  <hp@pobox.com>
9484
9485         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9486
9487         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9488
9489         * bus/policy.c (bus_policy_append_mandatory_rule)
9490         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9491         (bus_policy_append_group_rule): new functions
9492
9493 2003-04-12  Havoc Pennington  <hp@pobox.com>
9494
9495         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9496
9497         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9498         the pid/gid/uid, just for paranoia.
9499
9500         * test/break-loader.c (randomly_do_n_things): find a byte
9501         containing a type code, and randomly change it to a different
9502         type code.
9503
9504 2003-04-12  Havoc Pennington  <hp@pobox.com>
9505
9506         * bus/policy.h: change BusPolicy to be the thing from the config
9507         file, and rename old BusPolicy to BusClientPolicy
9508
9509         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9510         match change in how policy works
9511
9512         * dbus/dbus-internals.h: mark assert_not_reached as
9513         __attribute((noreturn))__
9514
9515 2003-04-11  Havoc Pennington  <hp@redhat.com>
9516
9517         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9518         the broadcast service. Use boolean return for ServiceExists.
9519
9520 2003-04-11  Havoc Pennington  <hp@redhat.com>
9521
9522         * configure.in: add another directory to look for qt in.
9523
9524 2003-04-11  Havoc Pennington  <hp@redhat.com>
9525
9526         * AUTHORS: add Colin Walters
9527
9528 2003-04-11  Havoc Pennington  <hp@redhat.com>
9529
9530         * NEWS: update
9531
9532         * configure.in: 0.9
9533
9534 2003-04-11  Havoc Pennington  <hp@redhat.com>
9535
9536         * bus/messagebus.in: remove pid file when stopping the
9537         message bus, since the bus won't have privileges to remove it
9538         itself.
9539
9540 2003-04-11  Havoc Pennington  <hp@redhat.com>
9541
9542         * bus/bus.c (bus_context_new): move credentials change after
9543         creating pidfile
9544
9545 2003-04-11  Havoc Pennington  <hp@pobox.com>
9546
9547         * test/decode-gcov.c: add "below average functions" to the
9548         coverage report, and change how some of the code works.
9549
9550         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9551         not in the coverage stats.
9552
9553         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9554         couple places so running the test suite doesn't result in megaspam.
9555
9556 2003-04-11  Havoc Pennington  <hp@pobox.com>
9557
9558         * bus/dispatch.c (check_existent_service_activation): accept a no
9559         memory error in a place we didn't before
9560
9561         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9562         in case the first one failed," since the test suite is less
9563         broken now.
9564
9565 2003-04-10  Havoc Pennington  <hp@pobox.com>
9566
9567         * bus/dispatch.c (check_segfault_service_activation): add test
9568         for launching an executable that just crashes.
9569
9570         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9571         don't leave a million cores. We'll see how portable this is.
9572
9573 2003-04-10  Havoc Pennington  <hp@pobox.com>
9574
9575         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9576         the possible parent failures before we fork, so that we don't
9577         fail to create a babysitter after creating the child.
9578
9579         * bus/activation.c (bus_activation_activate_service): kill child
9580         if we don't successfully complete the activation.
9581
9582 2003-04-10  Havoc Pennington  <hp@redhat.com>
9583
9584         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9585         the connection if it's disconnected
9586
9587         * bus/activation.c (bus_activation_service_created): use new
9588         transaction features to roll back removal of pending activation if
9589         we don't successfully create the service after all. Don't remove
9590         pending activation if the function fails.
9591
9592         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9593         (_dbus_list_insert_after_link): new code to facilitate
9594         services.c fixes
9595
9596         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9597         new functionality, so we can preallocate the ability to insert
9598         into a hash table.
9599
9600         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9601         allowing us to put custom hooks in a transaction to be used for
9602         cancelling said transaction
9603
9604         * doc/dbus-specification.sgml: add some discussion of secondary
9605         service owners, and disallow zero-length service names
9606
9607         * bus/services.c (bus_registry_acquire_service): new function,
9608         splits out part of bus_driver_handle_acquire_service() and fixes
9609         a bug where we didn't remove the service doing the acquiring
9610         from the secondary queue if we failed to remove the current owner
9611         from the front of the queue.
9612
9613 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9614
9615         * doc/dbus-specification.sgml:
9616         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9617
9618 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9619
9620         * bus/.cvsignore:
9621         * glib/.cvsignore:
9622         * test/.cvsignore:
9623         Added files to cvsignore
9624
9625         * dbus/dbus-message.h:
9626         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9627         Make get_named() take two out argument and return a boolean.
9628         (dbus_message_iter_get_args_valist):
9629         Update usage of get_named().
9630         (dbus_message_iter_append_byte):
9631         Fix typo
9632         (dbus_message_iter_append_named)
9633         Fix typo
9634         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9635         More tests.
9636
9637 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9638
9639         * dbus/dbus-marshal.[ch]:
9640         Add array_type_pos argument to _dbus_marshal_validate_arg.
9641         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9642
9643         * dbus/dbus-message.[ch]:
9644         Multi-dimensional arrays have full type specification in the
9645         outermost array. Iter code re-arranged to handle this.
9646         Added some more iter tests.
9647
9648         * doc/dbus-specification.sgml:
9649         Add me to authors.
9650         Remove old FIXME.
9651         Update new array encoding description.
9652         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9653
9654         * test/data/invalid-messages/array-with-mixed-types.message:
9655         * test/data/valid-messages/array-of-array-of-uint32.message:
9656         Change to the new array format.
9657
9658         * test/data/invalid-messages/too-short-dict.message:
9659         Fix bug in test.
9660
9661         * test/data/valid-messages/recursive-types.message:
9662         Fix up and extend test.
9663
9664 2003-04-10  Havoc Pennington  <hp@pobox.com>
9665
9666         * bus/dispatch.c: lots of fixes
9667
9668         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9669         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9670         that was crack, broke the test service.
9671
9672         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9673         handling to avoid piling up errors if we get a failure on the
9674         first address.
9675
9676         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9677         pid in assertion failures.
9678
9679         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9680         to some fixed size of file descriptor array. Don't return TRUE
9681         anytime a timeout exists, that led to lots of busy loop silliness
9682         in the tests.
9683
9684 2003-04-09  Havoc Pennington  <hp@redhat.com>
9685
9686         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9687         I'd checked this in earlier but hadn't.
9688
9689 2003-04-09  Havoc Pennington  <hp@redhat.com>
9690
9691         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9692         the activation test (man this is getting old!)
9693
9694 2003-04-09  Havoc Pennington  <hp@redhat.com>
9695
9696         * test/test-utils.c: use dispatch status function to fix this up
9697
9698         * bus/connection.c (connection_watch_callback): don't dispatch
9699         from here
9700         (connection_timeout_callback): don't dispatch from here
9701         (bus_connections_setup_connection): set the dispatch status function
9702         (bus_connection_disconnected): unset it
9703
9704         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9705         used to add a connection to be dispatched
9706         (_dbus_loop_iterate): do the dispatching at the end of each
9707         iteration
9708
9709         * dbus/dbus-connection.c
9710         (dbus_connection_set_dispatch_status_function): new function
9711         allowing us to fix up main loop usage
9712         (_dbus_connection_last_unref): free all the various function
9713         user data
9714         (dbus_connection_dispatch): call the DispatchStatusFunction
9715         whenever this function returns
9716         (dbus_connection_handle_watch): call DispatchStatusFunction
9717         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9718         (reply_handler_timeout): call DispatchStatusFunction
9719         (dbus_connection_flush): call DispatchStatusFunction
9720
9721 2003-04-09  Havoc Pennington  <hp@redhat.com>
9722
9723         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9724         a memory leak
9725
9726         * bus/dispatch.c (check_service_activated): fix bug in test
9727
9728         * dbus/dbus-mainloop.c (check_timeout): fix this up
9729
9730         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9731         verbose output so we can sort out output from different processes,
9732         e.g. in the activation case.
9733
9734 2003-04-08  Colin Walters  <walters@gnu.org>
9735
9736         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9737         the pid file.
9738         (bus_context_new): Set it.
9739         (bus_context_unref): Use it to delete the pid file.
9740
9741 2003-04-08  Havoc Pennington  <hp@redhat.com>
9742
9743         * test/data/invalid-messages/array-with-mixed-types.message:
9744         regression test that fails for the moment
9745
9746         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9747         tests for convenience
9748
9749         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9750         array of nil, it broke things.
9751
9752         * test/data/invalid-messages/array-of-nil.message: regression test
9753
9754         * test/data/valid-messages/array-of-array-of-uint32.message:
9755         happened to write this so added it to suite
9756
9757 2003-04-08  Havoc Pennington  <hp@redhat.com>
9758
9759         * bus/driver.c (bus_driver_handle_acquire_service): init
9760         retval/reply before checking name
9761
9762         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9763         recursion depth argument
9764
9765         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9766         in the public struct for future extension
9767
9768         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9769         typo
9770
9771         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9772         message
9773
9774         * doc/dbus-specification.sgml: fix typo
9775
9776 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9777
9778         Implemented recursive types, named types and new-style iters
9779
9780         * bus/driver.c:
9781         * glib/test-thread-client.c: (thread_func):
9782         * glib/test-thread-server.c: (handle_test_message):
9783         * test/test-service.c: (handle_echo):
9784         Update to new api
9785
9786         * dbus/Makefile.am:
9787         * dbus/dbus-dict.c:
9788         * dbus/dbus-dict.h:
9789         * dbus/dbus.h
9790         Remove DBusDict
9791
9792         * dbus/dbus-internals.c: (_dbus_type_to_string):
9793         Update for new types.
9794
9795         * dbus/dbus-marshal.[ch]:
9796         Implement recursive types and the new marshalling format.
9797         Remove hardcoded dict marshalling.
9798         Marshal named types.
9799
9800         * dbus/dbus-message-builder.c:
9801         Add BYTE_ARRAY.
9802         Remove references to old types
9803
9804         * dbus/dbus-message.[ch]:
9805         New non-refcounted iter API that supports recursive iters.
9806         Use iters for appending, including support for recursive
9807         iters.
9808         Add byte and named type support.
9809         Update everything to new marshalling formats.
9810         Add tests for new API.
9811
9812         * dbus/dbus-protocol.h:
9813         Remove old array types.
9814         Add types: BYTE, ARRAY, DICT, NAMED
9815
9816         * dbus/dbus-string.c:
9817         * dbus/dbus-sysdeps.c:
9818         Make parse_double locale safe.
9819
9820         * dbus/dbus-test-main.c:
9821         Call setlocale.
9822
9823         * dbus/dbus-test.c:
9824         Kill dict test
9825
9826         * doc/dbus-specification.sgml:
9827         Update spec
9828
9829         * test/data/incomplete-messages/missing-body.message:
9830         * test/data/invalid-messages/bad-boolean.message:
9831         * test/data/invalid-messages/bad-boolean-array.message:
9832         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9833         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9834         * test/data/invalid-messages/too-short-dict.message:
9835         * test/data/valid-messages/dict-simple.message:
9836         * test/data/valid-messages/dict.message:
9837         * test/data/valid-messages/emptiness.message:
9838         * test/data/valid-messages/lots-of-arguments.message:
9839         * test/data/valid-messages/no-padding.message:
9840         * test/data/valid-messages/recursive-types.message:
9841         Add missing NAME fields
9842         Fix up dicts & arrays
9843
9844         * test/data/invalid-messages/dict-with-nil-value.message:
9845         Removed, this is not invalid anymore.
9846
9847         * test/data/valid-messages/recursive-types.message:
9848         Add new test for deeply recursive types.
9849
9850 2003-04-07  Havoc Pennington  <hp@pobox.com>
9851
9852         * bus/driver.c (bus_driver_handle_acquire_service): return an
9853         error if you try to acquire a service that starts with ':'
9854
9855 2003-04-07  Havoc Pennington  <hp@redhat.com>
9856
9857         * doc/dbus-specification.sgml: require that base service names
9858         start with ':' and that the base service is created/deleted
9859         as first and last things a connection does on the bus
9860
9861         * bus/dispatch.c (check_existent_service_activation): lots more
9862         work on the activation test; it doesn't fully pass yet...
9863
9864         * test/test-service.c (main): fix so we don't memleak the
9865         connection to the message bus
9866         (filter_func): accept a message asking us to exit
9867
9868 2003-04-06  Havoc Pennington  <hp@pobox.com>
9869
9870         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9871         from Colin Walters
9872
9873         * configure.in: fixes to Qt detection from Colin Walters
9874
9875         * doc/Makefile.am: Only remove generated docbook dirs if they
9876         exist, from Colin Walters
9877
9878         * dbus/dbus-bus.c: change how we set well-known connections to
9879         NULL, so that it works if a single connection is stored in
9880         two well-known array slots.
9881
9882         * test/Makefile.am: remove a lot of stuff that isn't immediately
9883         useful, it's in CVS history if we want it.
9884
9885         * test/test-service.c: use dbus-mainloop instead of that
9886         watch.[hc] crack
9887
9888 2003-04-06  Havoc Pennington  <hp@pobox.com>
9889
9890         * dbus/Makefile.am: split lists of sources into stuff that goes in
9891         the library, util functions that go in the lib and are also used
9892         elsewhere, and util functions that are used in tests/daemon but
9893         don't go in the lib.
9894
9895         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9896         here so it can be used in test binaries also
9897
9898 2003-04-06  Havoc Pennington  <hp@pobox.com>
9899
9900         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9901         here in the parent process, so we can return an error if it
9902         fails. Also, move some of the code into the child so the parent
9903         is less hosed if we fail midway through.
9904
9905         * bus/bus.c (bus_context_new): move pidfile detection further up
9906         in the function, before we start overwriting sockets and such.
9907
9908         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9909
9910         * configure.in: add --with-system-pid-file and --with-system-socket
9911
9912 2003-04-06  Colin Walters  <walters@verbum.org>
9913
9914         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9915
9916         * bus/system.conf.in: Declare a pidfile.
9917
9918         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9919         create one (if appropriate).
9920
9921         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9922         (struct BusConfigParser) [pidfile]: New.
9923         (element_type_to_name, merge_included, start_busconfig_child)
9924         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9925         (bus_config_parser_unref): Free it.
9926         (bus_config_parser_get_pidfile): New function.
9927
9928         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9929
9930         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9931
9932         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9933
9934         * dbus/dbus-sysdeps.h: Prototype it.
9935
9936 2003-04-06  Havoc Pennington  <hp@pobox.com>
9937
9938         * bus/bus.c (bus_context_new): print the address in here, rather
9939         than in main(), because we need to do it before forking the daemon
9940
9941         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9942         on the service nonexistent error
9943
9944         * bus/driver.c (bus_driver_handle_acquire_service): set the
9945         sender on the AcquireService reply
9946
9947         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9948         server also listen on a UNIX socket so services can connect to it.
9949
9950 2003-04-06  Havoc Pennington  <hp@pobox.com>
9951
9952         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9953         so it detects deadlocks and also we actually init threads when
9954         debugging.
9955
9956 2003-04-06  Havoc Pennington  <hp@pobox.com>
9957
9958         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9959         save the domain socket name, and unlink it when we disconnect the
9960         server. Means that at least when we exit normally, we won't leave
9961         a bunch of junk in /tmp
9962
9963         * dbus/dbus-transport-unix.c
9964         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9965         memory management). (I was making a real change here but then
9966         didn't)
9967
9968 2003-04-06  Havoc Pennington  <hp@pobox.com>
9969
9970         * bus/bus.c (bus_context_new): fix wrong handling of
9971         server_data_slot_unref() in the error case.
9972
9973         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9974         "(condition) != 0" to _dbus_real_assert so that
9975         "_dbus_assert (pointer)" doesn't cause a warning
9976
9977         * bus/main.c (main): accept --print-address option to print out
9978         the message bus address
9979
9980         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9981
9982         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9983         "tmpdir" option to unix: address on client side
9984
9985         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9986         to unix: address
9987
9988         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9989         we can use to create sockets in the test suite.
9990
9991         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9992         cleanly. To be used for testing.
9993
9994         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9995
9996         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9997
9998         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9999         handle trying to call this when there's no servers active
10000
10001 2003-04-05  Havoc Pennington  <hp@pobox.com>
10002
10003         * NEWS: update
10004
10005         * configure.in: 0.8
10006
10007 2003-04-05  Havoc Pennington  <hp@pobox.com>
10008
10009         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10010         crash on startup. Need to get "try starting the daemon"
10011         in the test suite I guess. ;-)
10012
10013         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10014         tracked the number of open connections; it's better done in
10015         application-specific code as you want it to span all servers etc.
10016
10017 2003-04-05  Havoc Pennington  <hp@pobox.com>
10018
10019         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10020         patch from Colin Walters
10021
10022 2003-04-05  Havoc Pennington  <hp@pobox.com>
10023
10024         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10025         reality; in fact multiple mechanisms are allowed.
10026
10027         * dbus/dbus-internals.c (_dbus_real_assert)
10028         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10029         _dbus_assert_not_reached() into functions, so that they don't show
10030         up in basic block counts for test coverage, and don't use up as
10031         much disk space. Does mean slower execution speed though, so
10032         assumes --disable-asserts is the normal production case.
10033
10034 2003-04-05  Havoc Pennington  <hp@pobox.com>
10035
10036         * test/Makefile.am (dist-hook): also dist *.in files
10037
10038         * NEWS: update
10039
10040         * configure.in: 0.7
10041
10042 2003-04-05  Havoc Pennington  <hp@pobox.com>
10043
10044         * dbus/dbus-string.c: docs warning
10045
10046         * dbus/dbus-spawn.c: missing docs
10047
10048         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10049
10050 2003-04-05  Havoc Pennington  <hp@pobox.com>
10051
10052         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10053         magic from GLib
10054
10055         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10056         to -1 once we've reaped the babysitter
10057         (_dbus_babysitter_handle_watch): do as much work as we can, not
10058         just one go of it
10059
10060         * bus/activation.c: add code using DBusBabysitter so that we
10061         handle it when a service fails to start up properly.
10062         (bus_activation_service_created): don't remove the activation
10063         entries as we go, just let them get removed when we free the pending
10064         activation. Unref reply messages after sending them.
10065
10066 2003-04-05  Havoc Pennington  <hp@pobox.com>
10067
10068         * test/decode-gcov.c (main): print per-directory stats in the report
10069
10070         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10071
10072 2003-04-05  Havoc Pennington  <hp@pobox.com>
10073
10074         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10075
10076         * test/decode-gcov.c: hack up a little program to suck data
10077         out of gcov files. Yes this is sort of silly.
10078
10079         * configure.in: define something in config.h and do an
10080         AM_CONDITIONAL when gcov is enabled
10081
10082 2003-04-04  Havoc Pennington  <hp@redhat.com>
10083
10084         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10085         return a "babysitter" object that is used to monitor the status of
10086         the spawned process and reap it when required.
10087
10088         * test/test-segfault.c, test/test-exit.c,
10089         test/test-sleep-forever.c: binaries that do various lame things,
10090         used in the test suite.
10091
10092         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10093
10094 2003-04-03  Havoc Pennington  <hp@pobox.com>
10095
10096         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10097         in preparation for modifying it, dbus-sysdeps is getting
10098         a bit unmanageable.
10099
10100 2003-04-03  Havoc Pennington  <hp@redhat.com>
10101
10102         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10103         have multiple ones
10104
10105         * bus/*.[hc]: adapt to mainloop change
10106
10107 2003-04-03  Havoc Pennington  <hp@redhat.com>
10108
10109         * bus/activation.c (load_directory): fix up memleaks
10110         (bus_activation_entry_free): free the entry
10111
10112         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10113         we get one from the message bus; fix memleaks.
10114
10115         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10116
10117 2003-04-03  Havoc Pennington  <hp@pobox.com>
10118
10119         * bus/config-parser.c (bus_config_parser_unref): free
10120         list of mechanisms, bug discovered by test suite enhancements
10121         (putting system.conf and session.conf into suite)
10122
10123         * test/Makefile.am, test/test-service.c: add placeholder for a
10124         test service that we'll activate as part of test suite. Doesn't
10125         do anything yet.
10126
10127         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10128         setting NULL value, and use system malloc not dbus_malloc()
10129         when we have unavoidable memleakage.
10130
10131         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10132         didn't work, and support DBUS_BUS_ACTIVATION.
10133
10134         * bus/activation.c (child_setup): pass our well-known bus type to
10135         the child
10136
10137         * bus/config-parser.c: support <type> to specify well-known type
10138
10139         * doc/dbus-specification.sgml: document the env variables to
10140         locate well-known buses and find service activator
10141
10142 2003-04-02  Havoc Pennington  <hp@redhat.com>
10143
10144         * test/Makefile.am (all-local): add a rule to copy tests to
10145         builddir, so we can have generated tests. Use this to remove the
10146         silly hack for testing system.conf and session.conf. Will use this
10147         shortly to generate .service files pointing to test binaries.
10148
10149 2003-04-02  Havoc Pennington  <hp@redhat.com>
10150
10151         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10152         current alloc and needed new length, not max of the doubled
10153         allocation and needed new length. Also, when building tests,
10154         don't do the double-allocation stuff, just realloc every time.
10155
10156 2003-04-02  Havoc Pennington  <hp@redhat.com>
10157
10158         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10159         in error messages
10160         (_dbus_string_get_dirname): new
10161         (_dbus_sysdeps_test): new
10162         (_dbus_directory_open): include dirnames in error messages
10163
10164         * bus/config-parser.c: interpret <include> and <includedir> and
10165         <servicedir> relative to config file location if the given
10166         filename is not absolute.
10167
10168         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10169
10170 2003-04-02  Havoc Pennington  <hp@redhat.com>
10171
10172         * bus/connection.c (bus_transaction_send_error_reply): set sender
10173         service for the error, and unref the reply on success
10174
10175         * bus/activation.c: convert to use BusTransaction so OOM can be
10176         handled correctly
10177         (bus_activation_service_created): set sender of the message
10178
10179 2003-04-01  Havoc Pennington  <hp@redhat.com>
10180
10181         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10182         <includedir> (at least mostly)
10183
10184         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10185         first, then the user ID
10186
10187 2003-04-01  Havoc Pennington  <hp@pobox.com>
10188
10189         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10190         function
10191
10192         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10193
10194         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10195
10196         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10197         socket 0777, and unlink any existing socket.
10198
10199         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10200         the configuration file so specifies; set up auth mechanism
10201         restrictions
10202
10203         * bus/config-parser.c (bus_config_parser_content): add support
10204         for <fork> option and fill in code for <auth>
10205
10206         * bus/system.conf.in: add <fork/> to default configuration,
10207         and limit auth mechanisms to EXTERNAL
10208
10209         * doc/config-file.txt (Elements): add <fork>
10210
10211         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10212         (_dbus_change_identity): new function
10213
10214 2003-03-31  Havoc Pennington  <hp@redhat.com>
10215
10216         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10217         (_dbus_listen_unix_socket): fix off-by-one error in null
10218         termination spotted by Nalin
10219
10220 2003-03-31  Havoc Pennington  <hp@redhat.com>
10221
10222         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10223         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10224         having a real home directory available.
10225
10226 2003-03-31  Havoc Pennington  <hp@redhat.com>
10227
10228         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10229
10230         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10231
10232         * configure.in: add support for specifying a style of init script
10233         to install
10234
10235 2003-03-31  Havoc Pennington  <hp@redhat.com>
10236
10237         Fix some annoying DBusString API and fix all affected code.
10238
10239         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10240         max_length argument
10241         (_dbus_string_get_data): change to return string instead of using
10242         an out param
10243         (_dbus_string_get_const_data): ditto
10244         (_dbus_string_get_data_len): ditto
10245         (_dbus_string_get_const_data_len): ditto
10246
10247 2003-03-31  Havoc Pennington  <hp@redhat.com>
10248
10249         * bus/main.c (main): fix up the command line arguments to be nicer
10250
10251 2003-03-31  Havoc Pennington  <hp@redhat.com>
10252
10253         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10254         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10255         final location that lands in the config file
10256
10257         * bus/config-loader-expat.c (bus_config_load): fix type of
10258         XML_Parser variable
10259
10260         * doc/TODO: remove TODO item for dbus_bus_get()
10261
10262         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10263
10264 2003-03-31  Havoc Pennington  <hp@pobox.com>
10265
10266         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10267         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10268         argument since they are always client side
10269
10270         * dbus/dbus-server.c (dbus_server_get_address): new function
10271
10272         * bus/main.c (main): take the configuration file as an argument.
10273
10274         * test/data/valid-config-files/debug-allow-all.conf: new file to
10275         use with dispatch.c tests for example
10276
10277         * bus/test-main.c (main): require test data dir
10278
10279         * bus/bus.c (bus_context_new): change this to take a
10280         configuration file name as argument
10281
10282         * doc/config-file.txt (Elements): add <servicedir>
10283
10284         * bus/system.conf, bus/session.conf: new files
10285
10286         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10287         well-known socket if none set
10288
10289         * configure.in: create system.conf and session.conf
10290
10291 2003-03-30  Havoc Pennington  <hp@pobox.com>
10292
10293         * bus/config-parser.c: hacking
10294
10295         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10296         to shut down, since it could cause weirdness with the DBusList
10297         lock
10298
10299         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10300         link-oriented stack routines
10301         (alloc_link): free the mempool if the first alloc from it fails
10302
10303         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10304
10305         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10306         from GLib
10307         (_dbus_string_skip_white): new
10308
10309         * doc/config-file.txt (Elements): add <includedir>
10310
10311 2003-03-28  Havoc Pennington  <hp@pobox.com>
10312
10313         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10314         (_dbus_string_copy_data): new functions
10315
10316 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10317
10318         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10319         * dbus/dbus-bus.h:
10320         Add dbus_bus_get.
10321
10322         * dbus/dbus-memory.c:
10323         Fix a doc comment.
10324
10325 2003-03-28  Havoc Pennington  <hp@pobox.com>
10326
10327         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10328         I think it may have just been superstition. Not sure.
10329
10330         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10331         failures that were not being handled.
10332
10333         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10334
10335         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10336         row that will fail on out-of-memory.
10337
10338         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10339         function for testing out-of-memory handling.
10340
10341         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10342         allocation functions, they do map exactly to the expat ones.
10343
10344 2003-03-27  Havoc Pennington  <hp@redhat.com>
10345
10346         * bus/config-loader-libxml.c (bus_config_load): add another error
10347         check
10348
10349 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10350
10351         * doc/TODO:
10352         Add note about automatic service activation.
10353
10354         * doc/dbus-specification.sgml:
10355         Rename the specification and clarify a few things.
10356
10357 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10358
10359         * Doxyfile.in:
10360         * dbus/dbus-address.c:
10361         * dbus/dbus-dict.c:
10362         * dbus/dbus-marshal.c:
10363         * dbus/dbus-server-debug-pipe.c:
10364         * dbus/dbus-transport-unix.c:
10365         Fix documentation warnings.
10366
10367 2003-03-26  Havoc Pennington  <hp@pobox.com>
10368
10369         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10370         after every test so it's quick and easy to see which leaked, and
10371         so we test multiple dbus_shutdown() calls
10372
10373         * configure.in: change configure.in XML stuff to also support
10374         expat
10375
10376         * config-loader-libxml.c: some hacking
10377
10378         * config-loader-expat.c: some hacking
10379
10380         * config-parser.c: some hacking, plus tests
10381
10382 2003-03-25  Havoc Pennington  <hp@redhat.com>
10383
10384         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10385
10386         * configure.in: add --with-xml option to specify XML library,
10387         right now only libxml is supported.
10388
10389         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10390         nonworking code between home and work, still just stubs
10391
10392 2003-03-24  Havoc Pennington  <hp@redhat.com>
10393
10394         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10395         file
10396
10397         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10398         NULL argument for "message" if the error is a well-known one,
10399         fill in a generic message in this case.
10400
10401         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10402         favor of DBusError
10403
10404         * bus/test.c (bus_test_flush_bus): add
10405
10406         * bus/policy.c (bus_policy_test): test code stub
10407
10408 2003-03-24  Havoc Pennington  <hp@pobox.com>
10409
10410         * bus/connection.c (bus_connections_setup_connection): set up
10411         the "can this user connect" function, but it always returns
10412         TRUE until we have a config file parser so we can have a config
10413         file that allows connections.
10414
10415 2003-03-23  Havoc Pennington  <hp@pobox.com>
10416
10417         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10418         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10419         the mutex, so we can check for proper memory management
10420         and OOM handling.
10421
10422         * dbus/dbus-dataslot.c: remove the mutex from
10423         DBusDataSlotAllocator and lock it manually when using it,
10424         to simplify fitting it into the global slots framework.
10425
10426         * dbus/dbus-threads.c (init_static_locks): rework how we're
10427         handling global locks so they are easily shut down.
10428
10429         * bus/policy.c (bus_policy_append_rule): fix
10430
10431         * bus/test-main.c (main): check for memleaks
10432
10433         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10434         test suite check for memleaks
10435
10436         * dbus/dbus-memory.c: add support in test mode for tracking
10437         number of outstanding blocks
10438
10439 2003-03-23  Havoc Pennington  <hp@pobox.com>
10440
10441         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10442         policies code
10443
10444         * dbus/dbus-hash.h: add ULONG hash keys
10445
10446         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10447         (_dbus_get_group_id): new function
10448
10449 2003-03-20  Havoc Pennington  <hp@redhat.com>
10450
10451         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10452         new function
10453         (dbus_connection_get_unix_user): new function
10454
10455 2003-03-20  Havoc Pennington  <hp@pobox.com>
10456
10457         * bus/connection.c (bus_connection_send_oom_error): assert that
10458         message has a sender
10459         (connection_execute_transaction): ditto
10460         (bus_connection_preallocate_oom_error): fix to set the sender, and
10461         set recipient to the destination service, not the bus driver
10462
10463         * bus/policy.c: hacking
10464
10465         * dbus/dbus-message.c (dbus_message_service_is): new function
10466         (dbus_message_sender_is): new
10467
10468 2003-03-19  Havoc Pennington  <hp@redhat.com>
10469
10470         * bus/policy.c: start sketching code for policy restrictions on
10471         what connections can do.
10472
10473 2003-03-18  Havoc Pennington  <hp@redhat.com>
10474
10475         * doc/TODO: some notes on high-level todo items. Little nitpick
10476         stuff is all in @todo, so no need to add it here.
10477
10478         * doc/config-file.txt: some notes on how config file might look
10479
10480 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10481
10482         * configure.in: 0.6
10483
10484         * NEWS: Update.
10485
10486 2003-03-17  Havoc Pennington  <hp@redhat.com>
10487
10488         * dbus/dbus-internals.h: add gcc attributes so that
10489         our printf-style functions warn on bad arguments to
10490         format
10491
10492         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10493         format bug
10494
10495         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10496         printf format bug
10497
10498 2003-03-17  Havoc Pennington  <hp@redhat.com>
10499
10500         * bus/test-main.c (main): make it print something as it runs
10501         so make check doesn't look stuck
10502
10503         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10504         from CVS, now obsolete
10505
10506 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10507
10508         * bus/dispatch.c: (bus_dispatch):
10509         Refetch the service name since it may have been reallocated
10510         when dbus_message_set_sender was called.
10511
10512         * dbus/dbus-sysdeps.c: (_dbus_accept):
10513         Add address and address length variables and use them to stop
10514         valgrind from complaining.
10515
10516 2003-03-17  Havoc Pennington  <hp@pobox.com>
10517
10518         All tests pass, no memleaks, no valgrind complaints.
10519
10520         * bus/test.c: refcount handler_slot
10521
10522         * bus/connection.c (bus_connections_new): refcount
10523         connection_data_slot
10524
10525         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10526         bytes so that auth scripts pass.
10527
10528         * bus/dispatch.c: init message_handler_slot so it gets allocated
10529         properly
10530
10531         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10532
10533         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10534         dealloc server_pipe_hash when no longer used for benefit of
10535         leak checking
10536
10537         * dbus/dbus-auth.c (process_command): memleak fix
10538
10539         * bus/dispatch.c (check_hello_message): memleak fix
10540
10541 2003-03-16  Havoc Pennington  <hp@pobox.com>
10542
10543         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10544
10545 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10546
10547         * bus/activation.c (bus_activation_activate_service): Append
10548         the pending activation entry to the list of pending activations.
10549
10550 2003-03-16  Havoc Pennington  <hp@pobox.com>
10551
10552         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10553         connections
10554
10555         * dbus/dbus-address.c (create_entry): fix OOM handling when
10556         failing to alloc entry->method
10557
10558 2003-03-16  Havoc Pennington  <hp@pobox.com>
10559
10560         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10561         the watch
10562
10563         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10564         add some missing dbus_set_result
10565
10566         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10567         alloc the DBusMessageHandler
10568
10569         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10570         the transport here, since we call this from the finalizer; it
10571         resulted in a double-finalize.
10572
10573         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10574         where we tried to use transport->connection that was NULL,
10575         happened when transport was disconnected early on due to OOM
10576
10577         * bus/*.c: adapt to handle OOM for watches/timeouts
10578
10579         * dbus/dbus-transport-unix.c: port to handle OOM during
10580         watch handling
10581
10582         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10583         reference to unused bytes instead of a copy
10584
10585         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10586         out of memory
10587
10588         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10589         FALSE on OOM
10590
10591         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10592         of memory
10593
10594 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10595
10596         * doc/dbus-specification.sgml:
10597         Document reply message for ActivateService.
10598
10599 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10600
10601         * bus/activation.c: (bus_pending_activation_entry_free),
10602         (bus_pending_activation_free), (bus_activation_new),
10603         (bus_activation_unref), (bus_activation_service_created),
10604         (bus_activation_activate_service):
10605         * bus/activation.h:
10606         * bus/bus.c: (bus_context_new):
10607         * bus/desktop-file.c: (new_section):
10608         * bus/driver.c: (bus_driver_send_service_deleted),
10609         (bus_driver_handle_activate_service):
10610         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10611         * bus/services.h:
10612         * dbus/dbus-connection.c:
10613         (dbus_connection_send_with_reply_and_block):
10614         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10615         * dbus/dbus-protocol.h:
10616         Make activation work better. Now pending activations will be queued
10617         and the daemon won't try to activate services that are already registered.
10618
10619 2003-03-16  Havoc Pennington  <hp@pobox.com>
10620
10621         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10622         connection data
10623
10624         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10625         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10626
10627 2003-03-16  Havoc Pennington  <hp@pobox.com>
10628
10629         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10630         this. always run the test suite before commit...
10631
10632         * bus/*: adapt to DBusConnection API changes
10633
10634         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10635         requires renaming stuff to avoid dbus_connection_dispatch name
10636         conflict.
10637
10638         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10639         function
10640
10641         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10642         separate from _dbus_message_loader_return_buffer()
10643
10644         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10645         this, because it's now always broken to use; the number of
10646         messages in queue vs. the number still buffered by the message
10647         loader is undefined/meaningless. Should use
10648         dbus_connection_get_dispatch_state().
10649         (dbus_connection_dispatch): rename from
10650         dbus_connection_dispatch_message
10651
10652 2003-03-16  Havoc Pennington  <hp@pobox.com>
10653
10654         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10655         implementation
10656
10657 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10658
10659         * dbus/dbus-connection.c:
10660         (dbus_connection_send_with_reply_and_block):
10661         Decrease connection->n_incoming when removing an entry
10662         from the list.
10663         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10664         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10665         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10666         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10667         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10668         (dbus_dict_get_byte_array):
10669         Handle NULL arrays and strings. Also add support for byte arrays.
10670
10671         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10672         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10673         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10674         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10675         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10676         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10677         * dbus/dbus-marshal.h:
10678         Add support for marshalling and demarshalling empty arrays and strings.
10679
10680         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10681         (dbus_message_append_string_array),
10682         (dbus_message_iter_get_boolean),
10683         (dbus_message_iter_get_boolean_array),
10684         (dbus_message_iter_get_int32_array),
10685         (dbus_message_iter_get_uint32_array),
10686         (dbus_message_iter_get_double_array),
10687         (dbus_message_iter_get_byte_array),
10688         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10689         (check_message_handling):
10690         Add support for getting empty arrays and dicts.
10691
10692         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10693         Don't do any validation at all for now, that's better than just checking
10694         for ASCII.
10695
10696         * test/data/valid-messages/emptiness.message:
10697         New test message with lots of empty arrays.
10698
10699 2003-03-16  Havoc Pennington  <hp@pobox.com>
10700
10701         * dbus/dbus-connection.c
10702         (_dbus_connection_queue_received_message_link): new function that
10703         can't fail due to OOM
10704
10705         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10706         new function pops a message together with a list link
10707         containing it.
10708
10709         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10710         message queuing functions to avoid needing to alloc memory
10711
10712 2003-03-16  Havoc Pennington  <hp@pobox.com>
10713
10714         Oops - test code was only testing failure of around 30 of the
10715         mallocs in the test path, but it turns out there are 500+
10716         mallocs. I believe this was due to misguided linking setup such
10717         that there was one copy of dbus_malloc etc. in the daemon and one
10718         in the shared lib, and only daemon mallocs were tested. In any
10719         case, the test case now tests all 500+ mallocs, and doesn't pass
10720         yet, though there are lots of fixes in this patch.
10721
10722         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10723         this so that it doesn't need to allocate memory, since it
10724         has no way of indicating failure due to OOM (and would be
10725         annoying if it did).
10726
10727         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10728
10729         * bus/Makefile.am: rearrange to create two self-contained
10730         libraries, to avoid having libraries with overlapping symbols.
10731         that was resulting in weirdness, e.g. I'm pretty sure there
10732         were two copies of global static variables.
10733
10734         * dbus/dbus-internals.c: move the malloc debug stuff to
10735         dbus-memory.c
10736
10737         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10738         empty.
10739
10740         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10741
10742         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10743         on failure.
10744
10745         * bus/dispatch.c (bus_dispatch_add_connection): free
10746         message_handler_slot when no longer using it, so
10747         memory leak checkers are happy for the test suite.
10748
10749         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10750
10751         * bus/bus.c (new_connection_callback): disconnect in here if
10752         bus_connections_setup_connection fails.
10753
10754         * bus/connection.c (bus_connections_unref): fix to free the
10755         connections
10756         (bus_connections_setup_connection): if this fails, don't
10757         disconnect the connection, just be sure there are no side
10758         effects.
10759
10760         * dbus/dbus-string.c (undo_alignment): unbreak this
10761
10762         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10763         leaking
10764         (_dbus_auth_new): fix the order in which we free strings
10765         on OOM failure
10766
10767         * bus/connection.c (bus_connection_disconnected): fix to
10768         not send ServiceDeleted multiple times in case of memory
10769         allocation failure
10770
10771         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10772         get the base service name
10773         (dbus_bus_register_client): don't return base service name,
10774         instead store it on the DBusConnection and have an accessor
10775         function for it.
10776         (dbus_bus_register_client): rename dbus_bus_register()
10777
10778         * bus/dispatch.c (check_hello_message): verify that other
10779         connections on the bus also got the correct results, not
10780         just the one sending hello
10781
10782 2003-03-15  Havoc Pennington  <hp@pobox.com>
10783
10784         Make it pass the Hello handling test including all OOM codepaths.
10785         Now to do other messages...
10786
10787         * bus/services.c (bus_service_remove_owner): fix crash when
10788         removing owner from an empty list of owners
10789         (bus_registry_ensure): don't leave service in the list of
10790         a connection's owned services if we fail to put the service
10791         in the hash table.
10792
10793         * bus/connection.c (bus_connection_preallocate_oom_error): set
10794         error flag on the OOM error.
10795
10796         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10797         handle _dbus_transport_set_connection failure
10798
10799         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10800         to create watches up front and simply enable/disable them as
10801         needed.
10802         (unix_connection_set): this can now fail on OOM
10803
10804         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10805         of enabling/disabling a watch or timeout.
10806
10807         * bus/loop.c (bus_loop_iterate): don't touch disabled
10808         watches/timeouts
10809
10810         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10811
10812 2003-03-15  Havoc Pennington  <hp@pobox.com>
10813
10814         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10815         write useful test code, after all that futzing around ;-)
10816
10817         Test does not yet pass because we can't handle OOM in
10818         _dbus_transport_messages_pending (basically,
10819         dbus_connection_preallocate_send() does not prealloc the write
10820         watch). To fix this, I think we need to add new stuff to
10821         set_watch_functions, namely a SetEnabled function so we can alloc
10822         the watch earlier, then enable it later.
10823
10824         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10825         dbus-memory.c to the convenience lib
10826
10827         * bus/test.c: rename some static functions to keep them clearly
10828         distinct from stuff in connection.c. Handle client disconnection.
10829
10830 2003-03-14  Havoc Pennington  <hp@pobox.com>
10831
10832         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10833         transport, tests more of the real codepath. Set up clients
10834         with bus_setup_debug_client.
10835
10836         * bus/test.c (bus_setup_debug_client): function to set up debug
10837         "clients" on the main loop
10838
10839         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10840         support
10841
10842         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10843         server type
10844
10845         * dbus/dbus-server-debug.c: support a debug server based on pipes
10846
10847         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10848         (_dbus_close): new function
10849
10850         * configure.in: check for socketpair
10851
10852 2003-03-14  Havoc Pennington  <hp@redhat.com>
10853
10854         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10855         cheesy hack
10856
10857         * dbus/dbus-transport-debug.c: rework this a good bit to be
10858         less complicated. hopefully still works.
10859
10860         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10861         manually
10862
10863         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10864         after running it
10865
10866         * dbus/dbus-message.c (dbus_message_copy): rename from
10867         dbus_message_new_from_message, fix it up to copy
10868         all the message fields, add test case
10869
10870         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10871         not quite passing yet
10872
10873 2003-03-14  Havoc Pennington  <hp@pobox.com>
10874
10875         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10876         until no work remains" in test code. (the large diff here
10877         is just code movement, no actual changes)
10878
10879         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10880         1, no point waiting around for test code.
10881         (_dbus_server_debug_accept_transport): unref the timeout
10882         after adding it (right?)
10883
10884         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10885
10886 2003-03-13  Havoc Pennington  <hp@redhat.com>
10887
10888         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10889         out of memory
10890
10891         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10892         of memory
10893
10894         * dbus/dbus-connection.h: Make AddWatchFunction and
10895         AddTimeoutFunction return a bool so they can fail on out-of-memory
10896
10897         * bus/bus.c (bus_context_new): set up timeout handlers
10898
10899         * bus/connection.c (bus_connections_setup_connection): set up
10900         timeout handlers
10901
10902         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10903         can fail
10904
10905         * bus/bus.c (bus_context_new): adapt to changes
10906
10907         * bus/connection.c: adapt to changes
10908
10909         * test/watch.c: adapt to DBusWatch changes
10910
10911         * bus/dispatch.c (bus_dispatch_test): started adding this but
10912         didn't finish
10913
10914 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10915
10916         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10917
10918 2003-03-13  Havoc Pennington  <hp@pobox.com>
10919
10920         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10921         set up a test framework as for the library
10922
10923 2003-03-12  Havoc Pennington  <hp@pobox.com>
10924
10925         Throughout: purge global variables, introduce BusActivation,
10926         BusConnections, BusRegistry, etc. objects instead.
10927
10928         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10929         message bus object
10930
10931         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10932         going to redo this a bit differently I think
10933
10934 2003-03-12  Havoc Pennington  <hp@redhat.com>
10935
10936         Mega-patch that gets the message bus daemon initially handling
10937         out-of-memory. Work still needed. Also lots of random
10938         moving stuff to DBusError instead of ResultCode.
10939
10940         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10941
10942         * dbus/dbus-connection.c
10943         (dbus_connection_send_with_reply_and_block): use DBusError
10944
10945         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10946         DBusResultCode
10947
10948         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10949         code here, as the only failure possible is OOM.
10950
10951         * bus/connection.c (bus_connection_disconnect):
10952         rename bus_connection_disconnected as it's a notification only
10953
10954         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10955         "name" on get_args failure, should be done by get_args;
10956         don't disconnect client for bad args, just return an error.
10957         (bus_driver_handle_service_exists): ditto
10958
10959         * bus/services.c (bus_services_list): NULL-terminate returned array
10960
10961         * bus/driver.c (bus_driver_send_service_lost)
10962         (bus_driver_send_service_acquired): send messages from driver to a
10963         specific client to the client's unique name, not to the broadcast
10964         service.
10965
10966         * dbus/dbus-message.c (decode_header_data): reject messages that
10967         contain no name field
10968         (_dbus_message_get_client_serial): rename to
10969         dbus_message_get_serial and make public
10970         (_dbus_message_set_serial): rename from set_client_serial
10971         (_dbus_message_set_reply_serial): make public
10972         (_dbus_message_get_reply_serial): make public
10973
10974         * bus/connection.c (bus_connection_foreach): allow stopping
10975         iteration by returning FALSE from foreach function.
10976
10977         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10978         (dbus_connection_free_preallocated_send)
10979         (dbus_connection_preallocate_send): new API for sending a message
10980         without possibility of malloc failure.
10981         (dbus_connection_send_message): rename to just
10982         dbus_connection_send (and same for whole function family)
10983
10984         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10985
10986         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10987
10988         * bus/activation.c: handle/return errors
10989
10990         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10991
10992         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10993         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10994         (_dbus_result_from_errno): move to this file
10995
10996 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10997
10998         * dbus/dbus-marshal.c:
10999         (_dbus_marshal_set_string):
11000         Take a length argument so we can marshal the correct string
11001         length.
11002
11003         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11004         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11005         (_dbus_marshal_test):
11006         * dbus/dbus-marshal.h:
11007         Add support for marshalling and demarshalling dicts.
11008
11009         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11010         Add support for TYPE DICT.
11011
11012         * dbus/dbus-message.c: (set_string_field):
11013         Adjust header padding.
11014
11015         (dbus_message_append_args_valist), (dbus_message_append_dict),
11016         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11017         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11018         (check_message_handling), (check_have_valid_message):
11019         * dbus/dbus-message.h:
11020         Add functions for setting and getting dicts.
11021
11022         * dbus/dbus-protocol.h:
11023         Add DBUS_TYPE_DICT.
11024
11025         * dbus/dbus.h:
11026         Add dbus-dict.h
11027
11028         * doc/dbus-specification.sgml:
11029         Add information about how dicts are marshalled.
11030
11031         * test/data/invalid-messages/dict-with-nil-value.message:
11032         * test/data/invalid-messages/too-short-dict.message:
11033         * test/data/valid-messages/dict-simple.message:
11034         * test/data/valid-messages/dict.message:
11035         Add sample messages containing dicts.
11036
11037 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11038
11039         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11040
11041 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11042
11043         * dbus/Makefile.am:
11044         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11045         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11046         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11047         (dbus_dict_set_double), (dbus_dict_set_string),
11048         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11049         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11050         (dbus_dict_set_string_array), (_dbus_dict_test):
11051         * dbus/dbus-dict.h:
11052         Fix according to comments from Havoc.
11053
11054 2003-03-06  Michael Meeks  <michael@server.home>
11055
11056         * configure.in: if we don't have kde-config, disable have_qt.
11057
11058 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11059
11060         * dbus/Makefile.am:
11061         Add dbus-dict.[ch]
11062
11063         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11064         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11065         (dbus_dict_remove), (dbus_dict_get_value_type),
11066         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11067         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11068         (dbus_dict_put_double), (dbus_dict_put_string),
11069         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11070         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11071         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11072         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11073         (dbus_dict_get_double), (dbus_dict_get_string),
11074         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11075         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11076         (dbus_dict_get_string_array), (_dbus_dict_test):
11077         * dbus/dbus-dict.h:
11078         Add DBusDict implementation
11079
11080         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11081         * dbus/dbus-test.h:
11082         Add _dbus_dict_test
11083
11084 2003-03-04  Havoc Pennington  <hp@pobox.com>
11085
11086         * test/data/auth/*: adapt to changes
11087
11088         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11089         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11090         userid
11091
11092         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11093         more stuff from being in a context name, to make the protocol
11094         simpler to deal with
11095
11096         * dbus/dbus-errors.c (dbus_error_has_name): new function
11097         (dbus_error_is_set): new function
11098
11099         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11100         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11101
11102         * dbus/dbus-connection.c (dbus_connection_flush): also read
11103         messages during a flush operation
11104
11105         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11106
11107 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11108
11109         * configure.in: Check for gethostbyname on Solaris.
11110
11111         * dbus/dbus-transport.c: (_dbus_transport_open):
11112         Remove duplicate "tcp" entry.
11113
11114         * doc/dbus-specification.sgml:
11115         Clarify some things.
11116
11117 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11118
11119         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11120         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11121         (_dbus_keyring_test):
11122         * dbus/dbus-md5.c: (_dbus_md5_compute):
11123         * dbus/dbus-sha.c: (_dbus_sha_compute):
11124         Plug memory leaks.
11125
11126 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11127
11128         * README: Add some things.
11129
11130 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11131
11132         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11133         after case DBUS_TYPE_BOOELAN.
11134
11135 2003-03-02  Havoc Pennington  <hp@pobox.com>
11136
11137         * test/break-loader.c (randomly_set_extreme_ints): add test that
11138         sets really huge and small integers
11139
11140         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11141         that length of boolean array fits in the string, and that
11142         string has room for boolean value in single-bool case.
11143
11144         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11145         optional value to "ALIGN" command which is what to fill the
11146         alignment with.
11147
11148         * test/data/valid-messages/no-padding.message: add regression
11149         test for the message padding problem
11150
11151 2003-03-02  Havoc Pennington  <hp@pobox.com>
11152
11153         * dbus/dbus-message.c (decode_header_data): fix to always init
11154         message_padding, from Benjamin Dauvergne
11155
11156 2003-03-02  Havoc Pennington  <hp@pobox.com>
11157
11158         * configure.in: 0.5
11159
11160         * NEWS: Update.
11161
11162 2003-03-01  Joe Shaw  <joe@assbarn.com>
11163
11164         * configure.in: Check for "struct cmsgcred" and try to access its
11165         members for BSD-like unices.
11166
11167         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11168         _dbus_read_credentials_unix_socket().
11169         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11170         read() for reading the credential byte off the unix socket.  Use
11171         struct cmsgcred on systems that support it.
11172
11173 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11174
11175         * glib/Makefile.am:
11176         * configure.in:
11177         Make gthreads-2.0 dependency optional. Don't build thread test if
11178         its not found.
11179
11180 2003-02-27  Havoc Pennington  <hp@pobox.com>
11181
11182         * dbus/dbus-connection.c
11183         (dbus_connection_send_message_with_reply_and_block): fix doh!
11184         doh! doh! bug that resulted in never removing a reply from the
11185         queue, no wonder we called get_reply_serial so much ;-)
11186
11187         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11188         and client serial instead of demarshaling them every time
11189
11190 2003-02-27  Havoc Pennington  <hp@pobox.com>
11191
11192         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11193         more inlined, using dbus-string-private.h, speeds things up
11194         substantially
11195
11196         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11197         when freeing the string
11198         (_dbus_string_steal_data): fix for align offset
11199         (undo_alignment): new function
11200
11201 2003-02-26  Havoc Pennington  <hp@redhat.com>
11202
11203         All kinds of audit fixes from Owen, plus initial attempt to
11204         handle unaligned memory returned from malloc.
11205
11206         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11207         leave room for align_offset and nul byte
11208         (fixup_alignment): function to track an align_offset and
11209         ensure real->str is aligned
11210         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11211         to allow a nul byte plus align offset
11212         (_dbus_string_lock): fix overflow issue
11213         (_dbus_string_init_const_len): add assertions on sanity of len,
11214         assign allocated to be ALLOCATION_PADDING larger than len
11215         (set_length): fixup the overflow handling
11216         (_dbus_string_get_data_len): fix overflow in assertion
11217         (open_gap): detect overflow in size of gap to be opened
11218         (_dbus_string_lengthen): add overflow check
11219         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11220         (_dbus_string_append): add overflow check
11221         (_dbus_string_append_unichar): overflow
11222         (_dbus_string_delete): fix overflow in assertion
11223         (_dbus_string_copy_len): overflow in assertion
11224         (_dbus_string_replace_len): overflows in assertions
11225         (_dbus_string_find): change to implement in terms of
11226         _dbus_string_find_to
11227         (_dbus_string_find_to): assorted fixage
11228         (_dbus_string_equal_c_str): assert c_str != NULL,
11229         fix logic so the function works
11230         (_dbus_string_ends_with_c_str): fix overflow thingy
11231         (_dbus_string_base64_encode): overflow fix
11232         (_dbus_string_validate_ascii): overflow
11233         (_dbus_string_validate_nul): overflow
11234
11235 2003-02-26  Havoc Pennington  <hp@redhat.com>
11236
11237         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11238
11239 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11240
11241         * configure.in:
11242         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11243
11244         * dbus/dbus-connection.c:
11245         * dbus/dbus-connection.h:
11246         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11247         Add dbus_connection_set_wakeup_main_function and use it when queueing
11248         incoming and outgoing messages.
11249
11250
11251         * dbus/dbus-dataslot.c:
11252         Threadsafe usage of DBusDataSlotAllocator
11253
11254         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11255         dbus_new can fail.
11256
11257         * dbus/dbus-server-unix.c:
11258         Add todo comment
11259
11260         * glib/dbus-gmain.c:
11261         Implement the new wakeup functions for glib.
11262
11263         * glib/Makefile.am:
11264         * glib/test-thread-client.c:
11265         * glib/test-thread-server.c:
11266         * glib/test-thread.h:
11267         Initial cut at some thread test code. Not really done yet.
11268
11269 2003-02-26  Havoc Pennington  <hp@pobox.com>
11270
11271         * dbus/dbus-connection.c
11272         (dbus_connection_send_message_with_reply_and_block): fix crash
11273         where we ref'd the outgoing message instead of the returned reply
11274
11275         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11276         at the end of this function, so if we didn't need to read for
11277         authentication, we reinstall it for receiving messages
11278
11279         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11280         a NULL sender for peer-to-peer case
11281
11282         * dbus/dbus-transport-unix.c (check_read_watch): handle
11283         !authenticated case correctly
11284
11285         * glib/dbus-gmain.c: add support for DBusServer
11286
11287         * dbus/dbus-server.c: add data slot support
11288
11289         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11290         return values and handle errors
11291
11292         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11293         DBusConnection
11294
11295         * Doxyfile.in (INPUT): add glib subdir
11296
11297         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11298         setup_with_g_main instead of hookup_with_g_main; write docs
11299
11300 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11301
11302         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11303         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11304         * dbus/dbus-message.c: (dbus_message_append_boolean),
11305         (dbus_message_append_boolean_array),
11306         (dbus_message_get_args_valist), (_dbus_message_test):
11307         * dbus/dbus-message.h:
11308         * doc/dbus-specification.sgml:
11309         Various fixes as pointed out by Havoc.
11310
11311         * test/data/invalid-messages/bad-boolean-array.message:
11312         * test/data/invalid-messages/bad-boolean.message:
11313         Add invalid boolean value test cases.
11314
11315 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11316
11317         * dbus/dbus-internals.c: (_dbus_type_to_string):
11318         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11319         (_dbus_marshal_validate_arg):
11320         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11321         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11322         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11323         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11324         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11325         (dbus_message_iter_get_double),
11326         (dbus_message_iter_get_boolean_array), (message_iter_test):
11327         * dbus/dbus-message.h:
11328         * dbus/dbus-protocol.h:
11329         * doc/dbus-specification.sgml:
11330         * test/data/valid-messages/lots-of-arguments.message:
11331         Add support for boolean and boolean array types.
11332
11333 2003-02-23  Havoc Pennington  <hp@pobox.com>
11334
11335         * dbus/dbus-keyring.c: finish most of this implementation and
11336         simple unit test
11337
11338         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11339         these barf if the error isn't cleared to NULL
11340
11341         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11342         (_dbus_create_directory): new function
11343
11344         * dbus/dbus-errors.c (dbus_set_error): fix warning
11345
11346         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11347         (_dbus_string_hex_decode): new function
11348         (test_hex_roundtrip): test code
11349
11350         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11351
11352         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11353
11354         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11355         the save-to-temp/rename trick to atomically write the new file
11356         (_dbus_string_parse_uint): new function
11357
11358 2003-02-22  Havoc Pennington  <hp@pobox.com>
11359
11360         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11361
11362 2003-02-22  Havoc Pennington  <hp@pobox.com>
11363
11364         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11365         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11366
11367         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11368
11369         * dbus/test/data/sha-1: add US government test suite for SHA-1
11370
11371 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11372
11373         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11374         Make string arrays NULL-terminated.
11375
11376         * dbus/dbus-memory.c: (dbus_free_string_array):
11377         * dbus/dbus-memory.h:
11378         New function for freeing NULL-terminated string arrays.
11379
11380         * dbus/dbus-message-builder.c: (append_quoted_string),
11381         (_dbus_message_data_load):
11382         Add support for array types.
11383
11384         * dbus/dbus-message.c: (check_message_handling):
11385         Add more types as test cases.
11386
11387         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11388         (_dbus_string_parse_double):
11389         Add the start offset to the end offset.
11390
11391         * test/data/valid-messages/lots-of-arguments.message:
11392         New test message with lots of arguments.
11393
11394 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11395
11396         * dbus/dbus-message.c: (dbus_message_append_nil),
11397         (dbus_message_append_int32), (dbus_message_append_uint32),
11398         (dbus_message_append_double), (dbus_message_append_string),
11399         (dbus_message_append_int32_array),
11400         (dbus_message_append_uint32_array),
11401         (dbus_message_append_double_array),
11402         (dbus_message_append_byte_array),
11403         (dbus_message_append_string_array):
11404         Fix all out-of-memory handling in these functions.
11405
11406 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11407
11408         * dbus/dbus-message.c: (dbus_message_append_nil):
11409         Fix a silly.
11410
11411 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11412
11413         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11414         (dbus_message_append_nil), (dbus_message_append_int32_array),
11415         (dbus_message_append_uint32_array),
11416         (dbus_message_append_double_array),
11417         (dbus_message_append_byte_array),
11418         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11419         (dbus_message_iter_get_int32_array),
11420         (dbus_message_iter_get_uint32_array),
11421         (dbus_message_iter_get_double_array),
11422         (dbus_message_iter_get_byte_array),
11423         (dbus_message_iter_get_string_array):
11424
11425         * dbus/dbus-message.h:
11426         Add functions for appending and getting arrays.
11427
11428 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11429
11430         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11431         element size at least 8 bytes, fixes mempool tests on
11432         64-bit machines.
11433
11434 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11435
11436         * dbus/dbus-transport-unix.c (unix_do_iteration):
11437         Unlock the connection mutex during a blocking select call.
11438         Add todo about how we need a way to wake up the select.
11439
11440         * dbus/dbus-connection-internal.h:
11441         * dbus/dbus-connection.c:
11442         Add _dbus_connection_lock and _dbus_connection_unlock.
11443
11444 2003-02-19  Havoc Pennington  <hp@pobox.com>
11445
11446         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11447         Doxyfile.in, not Doxyfile
11448
11449         * dbus/dbus-keyring.c: do some hacking on this
11450
11451         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11452
11453         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11454         dbus_error_init
11455         (dbus_set_error): remove dbus_error_init, check for message ==
11456         NULL *before* we sprintf into it, and add @todo about including
11457         system headers in this file
11458
11459         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11460
11461         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11462
11463         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11464         get various bits of user information based on either username
11465         or user ID
11466         (_dbus_homedir_from_username): new function
11467
11468 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11469
11470         * configure.in:
11471         Add check for nonposix getpwnam_r
11472
11473         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11474         Align the pool element size to a sizeof (void *) boundary.
11475
11476         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11477         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11478         General Solaris fixes.
11479
11480         * test/data/valid-messages/simplest-manual.message:
11481         Explicitly state that we want little-endian packing.
11482
11483 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11484
11485         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11486
11487         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11488         Added to create a transport connecting using a tcp/ip socket.
11489
11490         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11491         to a tcp socket at given host and port.
11492         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11493         hostname and port.
11494
11495         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11496
11497         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11498         Added to create a server listening on a TCP/IP socket.
11499
11500 2003-02-19  Havoc Pennington  <hp@pobox.com>
11501
11502         Throughout: mop up all the Doxygen warnings and undocumented
11503         stuff.
11504
11505         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11506         to search any paths.
11507
11508         * dbus/dbus-threads.c: move global mutex initializers to
11509         dbus-internals.h, multiple prototypes was confusing doxygen
11510         besides being kind of ugly
11511
11512         * Doxyfile (PREDEFINED): have Doxygen define
11513         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11514         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11515         (do not abuse the feature! it's for stuff like the autogenerated
11516         macros in dbus-md5.c, not just for things you don't feel like
11517         documenting...)
11518
11519 2003-02-18  Havoc Pennington  <hp@pobox.com>
11520
11521         * dbus/dbus-string.c (_dbus_string_zero): new function
11522
11523         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11524         wrap it in some dbus-friendly API
11525
11526         * dbus/dbus-types.h: add 16-bit types
11527
11528 2003-02-18  Joe Shaw  <joe@assbarn.com>
11529
11530         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11531         credentials from our currently running process.
11532         (get_word): Fix a buglet where we were copying the entire length
11533         instead of relative to our position.
11534
11535         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11536         keys on the stack... it's 640k of data.
11537
11538         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11539         read the credentials byte off the socket, even if we don't have
11540         SO_PEERCRED.
11541         (_dbus_poll): Implement poll() using select() for systems which
11542         don't have it.
11543
11544         * glib/test-dbus-glib.c (main): Print out an error if no
11545         parameters are given.
11546
11547         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11548         can fallback to a secondary auth mechanism if the first fails.
11549
11550 2003-02-18  Havoc Pennington  <hp@pobox.com>
11551
11552         * AUTHORS: add Alex
11553
11554 2003-02-17  Havoc Pennington  <hp@pobox.com>
11555
11556         * doc/dbus-specification.sgml: lots of cosmetic
11557         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11558         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11559         s/server/bus/ (except in authentication section). Add a section
11560         "Message Bus Message Routing"
11561
11562 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11563
11564         Release 0.4
11565
11566         * NEWS: Update
11567
11568 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11569
11570         * doc/dbus-specification.sgml:
11571         Specification updates.
11572
11573 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11574
11575         * bus/activation.c: (bus_activation_init), (child_setup),
11576         (bus_activation_activate_service):
11577         * bus/activation.h:
11578         * bus/main.c: (main):
11579         Set DBUS_ADDRESS environment variable.
11580
11581         * dbus/dbus-errors.c: (dbus_set_error):
11582         Don't use va_copy since that's a C99 feature.
11583
11584         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11585         (_dbus_spawn_async):
11586         * dbus/dbus-sysdeps.h:
11587         Add child_setup_func to _dbus_spawn_async.
11588
11589         * doc/dbus-specification.sgml:
11590         Update specification.
11591
11592         * test/spawn-test.c: (setup_func), (main):
11593         Fix test.
11594
11595 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11596
11597         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11598         Added todo.
11599
11600 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11601
11602         * doc/.cvsignore:
11603         * doc/Makefile.am:
11604         * doc/dbus-test-plan.sgml:
11605         Add test plan document.
11606
11607         * test/Makefile.am:
11608         Fix distcheck.
11609
11610 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11611
11612         * dbus/dbus-message.c: (decode_header_data),
11613         (_dbus_message_loader_return_buffer):
11614         Set the header padding amount when loading a message.
11615
11616 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11617
11618         * bus/dispatch.c: (send_one_message):
11619         Only send broadcast messages to registered connections.
11620
11621         * dbus/dbus-message.c: (dbus_message_name_is):
11622         * dbus/dbus-message.h:
11623         New convenience function.
11624
11625         * dbus/dbus-transport-debug.c: (do_reading):
11626         Only dispatch one message per run.
11627
11628         * test/Makefile.am:
11629         * test/bus-test.c: (new_connection_callback), (die),
11630         (test_hello_client1_handler), (test_hello_client2_handler),
11631         (test_hello_replies), (main):
11632
11633         * test/bus-test-loop.[ch]:
11634         Add these.
11635
11636 2003-02-16  Havoc Pennington  <hp@pobox.com>
11637
11638         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11639         backward conditional
11640
11641 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11642
11643         * dbus/dbus-connection.c:
11644         Implement sent_message_with_reply. (with_reply_and block is still
11645         busted).
11646         Made dispatch_message not lose message if OOM.
11647
11648         * dbus/dbus-errors.h:
11649         Add NoReply error (for reply timeouts).
11650
11651 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11652
11653         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11654         Actually free keys and values when destroying hashtable.
11655
11656 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11657
11658         * dbus/dbus-auth.c: (client_try_next_mechanism):
11659         Plug a leak.
11660
11661         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11662         Return TRUE if there's no thread implementation around.
11663
11664         * glib/dbus-gmain.c: (free_source),
11665         (dbus_connection_hookup_with_g_main):
11666         Make sure to remove the GSource when the connection is finalized.
11667
11668 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11669
11670         * bus/dispatch.c: (bus_dispatch_message_handler):
11671         * dbus/dbus-errors.h:
11672         Return an error if someone tries to send a message to a service
11673         that doesn't exist.
11674
11675 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11676
11677         * bus/activation.c: (load_directory), (bus_activation_init),
11678         (bus_activation_activate_service):
11679         * bus/activation.h:
11680         * bus/driver.c:
11681         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11682         More work on the activation handling.
11683
11684         * dbus/dbus-errors.h:
11685         Add some error messages
11686
11687         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11688         * dbus/dbus-message.h:
11689         New function that creates an error message.
11690
11691         * dbus/dbus-protocol.h:
11692         Add ACTIVATE_SERVER message.
11693
11694         * dbus/dbus-server-unix.c: (unix_handle_watch),
11695         (_dbus_server_new_for_domain_socket):
11696         Call _dbus_fd_set_close_on_exec.
11697
11698         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11699         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11700         (_dbus_fd_set_close_on_exec):
11701         * dbus/dbus-sysdeps.h:
11702         Add _dbus_fd_set_close_on exec function. Also add function that checks
11703         that all open fds are set to close-on-exec and warns otherwise.
11704
11705         * dbus/dbus-transport-unix.c:
11706         (_dbus_transport_new_for_domain_socket):
11707         Call _dbus_fd_set_close_on_exec.
11708
11709 2003-02-16  Havoc Pennington  <hp@pobox.com>
11710
11711         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11712         allow people to avoid setting SIGPIPE to SIG_IGN
11713         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11714         we've been asked not to
11715
11716 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11717
11718         * dbus/dbus-list.c: (_dbus_list_append_link),
11719         (_dbus_list_prepend_link):
11720         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11721         (dbus_realloc):
11722         Warning fixes.
11723
11724 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11725
11726         * bus/Makefile.am:
11727         * bus/activation.c: (bus_activation_entry_free),
11728         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11729         * bus/activation.h:
11730         * bus/main.c: (main):
11731         Add simple activation support, doesn't work yet though.
11732
11733 2003-02-15   Zack Rusin  <zack@kde.org>
11734
11735         * qt/dbus-qthread.cpp:  small casting fix
11736
11737 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11738
11739         * dbus/dbus-errors.c: (dbus_set_error):
11740         * dbus/dbus-errors.h:
11741         Add a few errors and make dbus_set_error void.
11742
11743         * dbus/dbus-sysdeps.c:
11744         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11745         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11746         * dbus/dbus-sysdeps.h:
11747         Add _dbus_spawn_async.
11748
11749         * test/spawn-test.c: (main):
11750         Test for _dbus_spawn_async.
11751
11752 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11753
11754         * dbus/dbus-internals.h:
11755         Fix build without tests.
11756
11757         * dbus/dbus-list.c: (alloc_link):
11758         Fix a segfault when a malloc fails.
11759
11760         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11761         (dbus_malloc0), (dbus_realloc):
11762         Add support for malloc debugging.
11763
11764 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11765
11766         * dbus/dbus-threads.c:
11767         * dbus/dbus-threads.h:
11768         Add condvars. Remove static mutext from API.
11769         Implement static mutexes by initializing them from threads_init.
11770
11771         * glib/dbus-gthread.c:
11772         * qt/dbus-qthread.cpp:
11773         Update with the thread api changes.
11774
11775
11776         * dbus/dbus-list.c:
11777         * dbus/dbus-list.h:
11778         Turn StaticMutex into normal mutex + init function.
11779         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11780         _dbus_list_append_link, _dbus_list_prepend_link
11781
11782
11783         * dbus/dbus-sysdeps.c:
11784         * dbus/dbus-sysdeps.h:
11785         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11786         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11787
11788         * dbus/dbus-protocol.h:
11789         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11790
11791         * dbus/dbus-message.c:
11792         Make ref/unref atomic.
11793         Fix some docs.
11794
11795         * dbus/dbus-connection-internal.h:
11796         * dbus/dbus-connection.c:
11797         * dbus/dbus-connection.h:
11798         Make threadsafe.
11799         Change _peek to _borrow,_return & _steal_borrowed.
11800         Change disconnect callback to event.
11801         Make dbus_connection_dispatch_messages reentrant.
11802
11803         * dbus/dbus-transport.c:
11804         Don't ref the connection on calls to the transport
11805         implementation.
11806
11807         * dbus/dbus-message-handler.c:
11808         Make threadsafe.
11809
11810         * glib/dbus-gmain.c:
11811         Don't use peek_message anymore
11812
11813         * test/Makefile.am:
11814         * test/debug-thread.c:
11815         * test/debug-thread.h:
11816         Simple thread implementation that asserts() on deadlocks in
11817         single-threaded code.
11818
11819         * test/bus-test.c:
11820         (main) Call debug_threads_init.
11821
11822         * test/watch.c:
11823         Use disconnect message instead of disconnect callback.
11824
11825         * bus/connection.c:
11826         * bus/connection.h:
11827         Don't call dbus_connection_set_disconnect_function. Instead export
11828         bus_connection_disconnect.
11829
11830         * bus/dispatch.c:
11831         Call bus_connection_disconnect when we get a disconnected message.
11832
11833 2003-02-15  Havoc Pennington  <hp@pobox.com>
11834
11835         * dbus/dbus-message.c (dbus_message_new): fool around with the
11836         docs
11837
11838 2003-02-14  Havoc Pennington  <hp@pobox.com>
11839
11840         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11841
11842         * dbus/dbus-memory.c: fail if the debug functions indicate we
11843         should
11844
11845         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11846         (_dbus_decrement_fail_alloc_counter): debug functions to
11847         simulate memory allocation failures
11848
11849 2003-02-14  Havoc Pennington  <hp@pobox.com>
11850
11851         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11852         to DBusError
11853
11854 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11855
11856         * bus/driver.c: (bus_driver_handle_hello):
11857         * bus/driver.h:
11858         * bus/services.c: (bus_service_lookup):
11859         Reorder message sending so we get a more sane order.
11860
11861         * test/bus-test.c: (message_handler):
11862         Fix tyop.
11863
11864 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11865
11866         * bus/driver.c: (bus_driver_send_service_deleted),
11867         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11868         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11869         (bus_driver_send_welcome_message),
11870         (bus_driver_handle_list_services),
11871         (bus_driver_handle_acquire_service),
11872         (bus_driver_handle_service_exists):
11873         * dbus/dbus-bus.c: (dbus_bus_register_client),
11874         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11875         * dbus/dbus-errors.c: (dbus_result_to_string):
11876         * dbus/dbus-errors.h:
11877         * dbus/dbus-message.c: (dbus_message_append_args),
11878         (dbus_message_append_args_valist), (dbus_message_get_args),
11879         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11880         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11881         (dbus_message_iter_get_byte_array),
11882         (dbus_message_iter_get_string_array), (message_iter_test),
11883         (check_message_handling), (_dbus_message_test):
11884         * dbus/dbus-message.h:
11885         * test/bus-test.c: (main):
11886         Change fields to arguments in messages, so that they won't be
11887         confused with header fields.
11888
11889         * glib/test-dbus-glib.c: (main):
11890         Remove append_fields from hello message.
11891
11892 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11893
11894         * dbus/dbus-errors.c:
11895         * dbus/dbus-message.c:
11896         * dbus/dbus-string.c:
11897         Documentation fixes.
11898
11899 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11900
11901         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11902         (remove_timeout):
11903         Implement support for timeouts in dbus-glib.
11904
11905 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11906
11907         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11908         * dbus/dbus-message.c: (process_test_subdir):
11909         * test/break-loader.c: (find_breaks_based_on):
11910         Plug some memory leaks.
11911
11912 2003-02-13  Richard Hult  <rhult@codefactory.se>
11913
11914         * bus/main.c: Fix build.
11915
11916         * dbus/dbus-errors.h:
11917         * dbus/dbus-errors.c: Fix copyright for Anders.
11918
11919 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11920
11921         * bus/Makefile.am:
11922         Add utils.[ch]
11923
11924         * bus/connection.c: (bus_connection_foreach):
11925         Fix a warning.
11926
11927         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11928         (unescape_string), (new_section), (parse_section_start),
11929         (parse_key_value), (report_error), (bus_desktop_file_load),
11930         (bus_desktop_file_get_string):
11931         * bus/desktop-file.h:
11932         Use DBusError for error reporting.
11933
11934         * bus/dispatch.c: (send_one_message),
11935         (bus_dispatch_message_handler):
11936         * bus/driver.c: (bus_driver_send_service_deleted),
11937         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11938         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11939         (bus_driver_send_welcome_message),
11940         (bus_driver_handle_list_services),
11941         (bus_driver_handle_acquire_service),
11942         (bus_driver_handle_service_exists):
11943         * bus/loop.c: (bus_loop_run):
11944         * bus/main.c:
11945         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11946
11947         * bus/utils.c: (bus_wait_for_memory):
11948         * bus/utils.h:
11949         New files with general utility functions.
11950
11951         * dbus/dbus-internals.h:
11952         Remove _DBUS_HANDLE_OOM.
11953
11954 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11955
11956         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11957         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11958         * dbus/dbus-errors.h:
11959         Add DBusError structure.
11960
11961 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11962
11963         * test/data/valid-messages/standard-acquire-service.message:
11964         * test/data/valid-messages/standard-hello.message:
11965         * test/data/valid-messages/standard-list-services.message:
11966         * test/data/valid-messages/standard-service-exists.message:
11967         Add some standard messages.
11968
11969 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11970
11971         * bus/driver.c: (bus_driver_send_welcome_message),
11972         (bus_driver_handle_list_services),
11973         (bus_driver_handle_acquire_service),
11974         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11975         Update for API changes in libdbus.
11976
11977         * dbus/dbus-message.c: (dbus_message_new_reply):
11978         * dbus/dbus-message.h:
11979         Remove the name argument. The spec states that replies shouldn't
11980         have a name.
11981
11982 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11983
11984         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11985         (report_error), (bus_desktop_file_load), (lookup_section),
11986         (lookup_line), (bus_desktop_file_get_raw),
11987         (bus_desktop_file_get_string):
11988         * bus/desktop-file.h:
11989         Some fixes, and new functions for getting a key value from a section.
11990
11991 2003-02-13  Havoc Pennington  <hp@pobox.com>
11992
11993         * test/data/auth/fail-after-n-attempts.auth-script: new test
11994
11995         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11996         reject the client.
11997
11998 2003-02-13  Havoc Pennington  <hp@pobox.com>
11999
12000         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12001         dbus_credentials_match were backward
12002
12003         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12004         NO_CREDENTIALS and ROOT_CREDENTIALS
12005
12006         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12007         into here. Never process more commands after we've reached an
12008         end state; store further data as unused bytes.
12009
12010         * test/data/auth/*: add more auth tests
12011
12012         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12013         command to match exact string and EXPECT_UNUSED to match unused
12014         bytes
12015
12016         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12017
12018 2003-02-12  Havoc Pennington  <hp@pobox.com>
12019
12020         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12021         \r off of popped lines
12022
12023         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12024         scripts
12025
12026         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12027         SEND, append \r\n
12028
12029 2003-02-12  Havoc Pennington  <hp@pobox.com>
12030
12031         * dbus/Makefile.am: remove break-loader from the build, since it
12032         moved.
12033
12034         * configure.in: add --enable-gcov to turn on coverage profiling
12035         flags and disable optimization
12036
12037 2003-02-10  Havoc Pennington  <hp@pobox.com>
12038
12039         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12040         initial cut at test framework for DBusAuth from laptop.
12041         Doesn't quite work yet but it compiles and I need to get
12042         it off the 266mhz laptop. ;-)
12043
12044         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12045         fix a memleak in error case
12046
12047 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12048
12049         * bus/Makefile.am:
12050         * bus/desktop-file.c:
12051         * bus/desktop-file.h:
12052         Add a desktop file parser.
12053
12054 2003-02-11  Zack Rusin  <zack@kde.org>
12055
12056         * qt/message.[h|cpp]: sample implementation
12057         of the KDE wrapper for DBusMessage
12058
12059 2003-02-09  Zack Rusin  <zack@kde.org>
12060
12061         * test/bus-test.c: make_it_compile
12062         * doc/dbus-specification.sgml: minimal semantic fix
12063
12064 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12065
12066         Release 0.3
12067
12068         * NEWS: Update
12069
12070 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12071
12072         * dbus/Makefile.am:
12073         * dbus/dbus-break-loader.c:
12074         * test/Makefile.am:
12075         * test/break-loader.c:
12076         Move dbus-break-loader to test/ and rename it to break-loader.
12077
12078 2003-02-02  Havoc Pennington  <hp@pobox.com>
12079
12080         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12081         for code to manage cookies in your home directory
12082
12083         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12084
12085         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12086         to authenticate, then disconnect the client.
12087
12088 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12089
12090         * dbus/dbus-message.c (dbus_message_append_fields):
12091         Correct docs.
12092
12093 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12094
12095         * doc/dbus-specification.sgml:
12096         Update address format section.
12097
12098 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12099
12100         * test/Makefile.am:
12101         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12102         (message_handler), (new_connection_callback), (loop_quit),
12103         (loop_run), (main):
12104         Add bus test.
12105
12106 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12107
12108         * bus/driver.c: (bus_driver_handle_service_exists):
12109         Simplify the code a bit.
12110
12111         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12112         Fix a silly.
12113
12114 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12115
12116         * bus/Makefile.am:
12117         Add libdbus-daemon.la and link to it.
12118
12119 2003-02-01  James Willcox  <jwillcox@gnome.org>
12120
12121         * bus/driver.c: (bus_driver_handle_own_service):
12122         Actually include the service reply code in the message.
12123
12124 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12125
12126         * bus/driver.c: (bus_driver_handle_service_exists):
12127         Don't unref the incoming message.
12128
12129 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12130
12131         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12132
12133 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12134
12135         * dbus/dbus-server.c: (dbus_server_listen):
12136         * dbus/dbus-transport.c: (_dbus_transport_open):
12137         ifdef out the calls to the debug transport and server.
12138
12139 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12140
12141         * dbus/dbus-watch.c (dbus_watch_get_flags):
12142         Add note in the docs that ERROR or HANGUP won't be returned
12143         and are assumed always on.
12144
12145         * glib/dbus-gmain.c (add_watch):
12146         Always add IO_ERR | IO_HUP
12147
12148         * dbus/dbus-message.h:
12149         Add semicolon after dbus_message_iter_get_string_array().
12150         Makes qt code build again
12151
12152 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12153
12154         * bus/driver.c: (create_unique_client_name),
12155         (bus_driver_handle_hello):
12156         Don't take a name, just use a numeric id to identify
12157         each client.
12158
12159         * dbus/Makefile.am:
12160         * dbus/dbus-bus.c: (dbus_bus_register_client),
12161         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12162         * dbus/dbus-bus.h:
12163         Add new convenience functions for communicating with the bus.
12164
12165         * dbus/dbus-message.h:
12166
12167         * dbus/dbus-protocol.h:
12168         Fix a typo.
12169
12170 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12171
12172         * dbus/dbus-message.c (dbus_message_append_fields):
12173         Add some more doc comments.
12174
12175 2003-02-01  Havoc Pennington  <hp@pobox.com>
12176
12177         * dbus/dbus-break-loader.c (randomly_modify_length): change
12178         a 4-byte value in the message as if it were a length
12179
12180         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12181         execute bit on saved files
12182
12183 2003-02-01  Havoc Pennington  <hp@pobox.com>
12184
12185         * dbus/dbus-break-loader.c (main): new program to find messages
12186         that break the loader.
12187
12188         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12189         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12190
12191         * dbus/dbus-string.c (_dbus_string_set_byte): new
12192
12193 2003-01-31  Havoc Pennington  <hp@pobox.com>
12194
12195         * dbus/dbus-message.c: refactor the test code to be more general,
12196         in preparation for writing a "randomly permute test cases to
12197         try to break the loader" program.
12198
12199 2003-01-31  Havoc Pennington  <hp@pobox.com>
12200
12201         * doc/dbus-specification.sgml: work on the specification
12202
12203         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12204         the protocol version of the message.
12205
12206         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12207         no longer specifies that.
12208         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12209         1/2/3/4)
12210
12211         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12212         "break" for DBUS_TYPE_NIL, remove @todo
12213
12214 2003-01-31  Havoc Pennington  <hp@pobox.com>
12215
12216         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12217         just set_is_error/get_is_error as this is a commonly-used
12218         function, and write docs.
12219
12220 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12221
12222         * dbus/dbus-address.c: (dbus_address_entry_free):
12223         Free key and value lists.
12224
12225         * dbus/dbus-internals.c: (_dbus_type_to_string):
12226         Add the types we didn't have.
12227
12228         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12229         (_dbus_marshal_validate_arg):
12230         Add NIL types.
12231
12232         * dbus/dbus-message.c: (dbus_message_set_sender):
12233         Remove todo about being able to set sender to NULL.
12234
12235         (dbus_message_set_is_error_reply),
12236         (dbus_message_get_is_error_reply):
12237         * dbus/dbus-message.h:
12238         New functions.
12239
12240         * dbus/dbus-protocol.h:
12241         Add error reply flag.
12242
12243         * test/data/valid-messages/opposite-endian.message:
12244         Add NIL type to test.
12245
12246 2003-01-31  Havoc Pennington  <hp@pobox.com>
12247
12248         * doc/dbus-specification.sgml: fully specify the header.  Add
12249         flags and major protocol version, and change header/body len to
12250         unsigned.
12251
12252         * dbus/dbus-message-builder.c (append_saved_length): append length
12253         as uint32
12254
12255         * dbus/dbus-message.c (dbus_message_create_header): change header
12256         length and body length to unsigned. Add the new fields from the
12257         spec
12258         (_dbus_message_loader_return_buffer): unsigned header/body len
12259
12260 2003-01-30  Havoc Pennington  <hp@pobox.com>
12261
12262         * dbus/dbus-auth.c: rework to use only REJECTED, no
12263         MECHANISMS
12264
12265         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12266         use REJECTED, suggested by Mark McLoughlin
12267
12268 2003-01-30  Havoc Pennington  <hp@pobox.com>
12269
12270         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12271         a better way to report errors here. e.g.  "unix address lacks
12272         path" or something. also "no such file" when the path doesn't
12273         exist, etc.
12274
12275         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12276         leaking list nodes
12277         (dbus_parse_address): add @todo about documenting address format,
12278         and allowing , and ; to be escaped
12279
12280 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12281
12282         * dbus/Makefile.am:
12283         Add dbus-address.[ch]
12284
12285         * dbus/dbus-address.c: (dbus_address_entry_free),
12286         (dbus_address_entries_free), (create_entry),
12287         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12288         (dbus_parse_address), (_dbus_address_test):
12289         * dbus/dbus-address.h:
12290         New files for dealing with address parsing.
12291
12292         * dbus/dbus-connection.c:
12293         Document timeout functions.
12294
12295         * dbus/dbus-message.c:
12296         Document dbus_message_new_from_message.
12297
12298         * dbus/dbus-server-debug.c:
12299         Document.
12300
12301         * dbus/dbus-server.c: (dbus_server_listen):
12302         Parse address and use correct server implementation.
12303
12304         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12305         * dbus/dbus-string.h:
12306         New function with test.
12307
12308         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12309         * dbus/dbus-test.h:
12310         Add address tests.
12311
12312         * dbus/dbus-transport-debug.c:
12313         Document.
12314
12315         * dbus/dbus-transport.c: (_dbus_transport_open):
12316         Parse address and use correct transport implementation.
12317
12318 2003-01-30  Havoc Pennington  <hp@pobox.com>
12319
12320         * dbus/dbus-message.c: use message->byte_order instead of
12321         DBUS_COMPILER_BYTE_ORDER throughout.
12322         (dbus_message_create_header): pad header to align the
12323         start of the body of the message to 8-byte boundary
12324
12325         * dbus/dbus-marshal.h: make all the demarshalers take const
12326         DBusString arguments.
12327
12328         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12329         validate message args here, so we don't have to do slow validation
12330         later, and so we catch bad messages as they are incoming. Also add
12331         better checks on header_len and body_len. Also fill in
12332         message->byte_order
12333
12334         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12335         implemented properly)
12336         (_dbus_string_validate_nul): new function to check all-nul
12337
12338         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12339         get_arg_end_pos and remove all validation
12340         (_dbus_marshal_validate_arg): actually do validation here.
12341
12342 2003-01-29  Havoc Pennington  <hp@pobox.com>
12343
12344         * dbus/dbus-message.c (check_message_handling): fix assertion
12345         failure on set_client_serial
12346
12347 2003-01-28  Havoc Pennington  <hp@pobox.com>
12348
12349         * dbus/dbus-server-debug.c: Add doc section comments
12350
12351         * dbus/dbus-transport-debug.c: add doc section comments
12352
12353 2003-01-28  Havoc Pennington  <hp@redhat.com>
12354
12355         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12356         the reverse order from how I had it
12357         (_dbus_string_base64_encode): reverse encoding order. I was
12358         basically byteswapping everything during encoding.
12359
12360 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12361
12362         * dbus/dbus-connection-internal.h:
12363         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12364         (_dbus_connection_remove_timeout):
12365         Add functions for adding and removing timeouts.
12366
12367         * dbus/dbus-message.c: (dbus_message_new_from_message):
12368         Add new function that takes a message and creates an exact
12369         copy of it, but with the refcount set to 1.
12370         (check_message_handling):
12371         Fix build error.
12372
12373         * dbus/dbus-server-protected.h:
12374         * dbus/dbus-server.c: (_dbus_server_init_base),
12375         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12376         (dbus_server_set_timeout_functions):
12377         (_dbus_server_remove_timeout):
12378         New functions so that a server can add and remove timeouts.
12379
12380         (dbus_server_listen):
12381         Add commented out call to dbus_server_debug_new.
12382
12383         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12384         Actually set the handler, doh.
12385
12386         * dbus/dbus-transport.c: (_dbus_transport_open):
12387         Add commented out call to dbus_transport_debug_client_new.
12388
12389         * dbus/Makefile.am:
12390         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12391
12392 2003-01-28  Havoc Pennington  <hp@pobox.com>
12393
12394         * dbus/dbus-message.c (check_message_handling): function to check
12395         on the loaded message, iterates over it etc.
12396
12397 2003-01-28  Havoc Pennington  <hp@pobox.com>
12398
12399         * test/Makefile.am (dist-hook): fix make distdir
12400
12401         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12402
12403 2003-01-27  Havoc Pennington  <hp@pobox.com>
12404
12405         * dbus/dbus-mempool.c (time_for_size): replace printf with
12406         _dbus_verbose
12407
12408         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12409         empty lines; fix the SAVE_LENGTH stuff to be
12410         START_LENGTH/END_LENGTH so it actually works; couple other
12411         bugfixes
12412
12413         * test/Makefile.am (dist-hook): add dist-hook for .message files
12414
12415         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12416         can be constant or locked.
12417         (_dbus_string_free): allow freeing a const string as
12418         documented/intended
12419
12420         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12421
12422         * dbus/dbus-test-main.c (main): take an argument which is the
12423         directory containing test data
12424
12425         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12426         argument to this and load all the messages in test/data/
12427         checking that they can be loaded or not loaded as appropriate.
12428
12429 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12430
12431         * bus/dispatch.c: (bus_dispatch_message_handler):
12432         Dispatch messages sent to services.
12433
12434         * bus/driver.c: (bus_driver_send_service_deleted),
12435         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12436         (bus_driver_send_service_acquired):
12437         Add helper functions for sending service related messages.
12438
12439         (bus_driver_send_welcome_message):
12440         Send HELLO_REPLY instead of WELCOME.
12441
12442         (bus_driver_handle_list_services):
12443         Send LIST_SERVICES_REPLY instead of SERVICES.
12444
12445         (bus_driver_handle_own_service),
12446         (bus_driver_handle_service_exists):
12447         New message handlers.
12448
12449         (bus_driver_handle_message):
12450         Invoke new message handlers.
12451
12452         (bus_driver_remove_connection):
12453         Don't remove any services here since that's done automatically
12454         by bus_service_remove_owner now.
12455
12456         * bus/driver.h:
12457         New function signatures.
12458
12459         * bus/services.c: (bus_service_add_owner):
12460         Send ServiceAcquired message if we're the only primary owner.
12461
12462         (bus_service_remove_owner):
12463         Send ServiceAcquired/ServiceLost messages.
12464
12465         (bus_service_set_prohibit_replacement),
12466         (bus_service_get_prohibit_replacement):
12467         Functions for setting prohibit replacement.
12468
12469         (bus_service_has_owner):
12470         New function that checks if a connection is in the owner queue of
12471         a certain service.
12472
12473         * bus/services.h:
12474         Add new function signatures.
12475
12476         * dbus/dbus-list.c: (_dbus_list_test):
12477         Add tests for _dbus_list_remove_last and traversing the list backwards.
12478
12479         * dbus/dbus-list.h:
12480         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12481         go any further, so return NULL then.
12482
12483         * dbus/dbus-protocol.h:
12484         Add new messages, service flags and service replies.
12485
12486 2003-01-26  Havoc Pennington  <hp@pobox.com>
12487
12488         * dbus/dbus-message-builder.c: implement, completely untested.
12489
12490         * test/data/*: add data to be used in testing.
12491         ".message" files are our simple loadable text format.
12492         ".message-raw" will be binary dumps of messages.
12493
12494         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12495
12496 2003-01-26  Havoc Pennington  <hp@pobox.com>
12497
12498         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12499
12500         * dbus/dbus-errors.c (dbus_result_to_string): add
12501         file errors
12502
12503         * dbus/dbus-message-builder.c: new file, will contain code to load
12504         up messages from files. Not implemented yet.
12505
12506 2003-01-26  Havoc Pennington  <hp@pobox.com>
12507
12508         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12509         the sender by setting to NULL
12510
12511 2003-01-26  Havoc Pennington  <hp@pobox.com>
12512
12513         The unit tests pass, but otherwise untested.  If it breaks, the
12514         tests should have been better. ;-)
12515
12516         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12517         the connection.
12518
12519         * dbus/dbus-message.c: redo everything so we maintain
12520         message->header as the only copy of the various fields.
12521         This avoids the possibility of out-of-memory in some cases,
12522         for example dbus_message_lock() can't run out of memory anymore,
12523         and avoids extra copying. Figured I may as well go ahead and do
12524         this since it was busted for dbus_message_lock to not return
12525         failure on OOM, and dbus_message_write_header was totally
12526         unchecked for OOM. Also fixed some random other bugs.
12527
12528         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12529         that strings are nul-terminated. Also, end_pos can be equal
12530         to string length just not greater than, I think.
12531         (_dbus_marshal_set_int32): new function
12532         (_dbus_marshal_set_uint32): new function
12533         (_dbus_marshal_set_string): new function
12534
12535         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12536         a warning, init timeout_list to NULL
12537         (dbus_connection_send_message): don't use uninitialized variable
12538         "serial"
12539
12540         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12541
12542 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12543
12544         * bus/driver.c: (bus_driver_handle_hello),
12545         (bus_driver_send_welcome_message):
12546         Plug leaks
12547
12548 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12549
12550         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12551         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12552         (dbus_connection_unref):
12553         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12554         * dbus/dbus-message.c: (dbus_message_unref),
12555         Plug memory leaks.
12556
12557         (dbus_message_get_fields):
12558         Remove debugging printout.
12559
12560         (_dbus_message_loader_return_buffer):
12561         Don't store the header string.
12562
12563         (_dbus_message_test):
12564         Plug leaks.
12565
12566 2003-01-26  Richard Hult  <rhult@codefactory.se>
12567
12568         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12569         the file descriptor list, since it can change under us.
12570
12571 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12572
12573         * glib/dbus-gmain.c: (dbus_connection_prepare),
12574         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12575         (remove_watch), (dbus_connection_hookup_with_g_main):
12576         Rewrite the glib handling to use its own GSource instead of a
12577         GIOChannel so we can catch messages put in the queue while waiting
12578         for a reply.
12579
12580 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12581
12582         * bus/Makefile.am:
12583         * bus/connection.c: (connection_disconnect_handler),
12584         (connection_watch_callback), (bus_connection_setup):
12585         * bus/dispatch.c: (send_one_message),
12586         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12587         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12588         * bus/dispatch.h:
12589         * bus/driver.c: (bus_driver_send_service_deleted),
12590         (bus_driver_send_service_created), (bus_driver_handle_hello),
12591         (bus_driver_send_welcome_message),
12592         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12593         (bus_driver_handle_message):
12594         * bus/driver.h:
12595         Refactor code, put the message dispatching in its own file. Use
12596         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12597         is disconnected.
12598
12599 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12600
12601         * dbus/dbus-internals.h:
12602         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12603
12604         * dbus/dbus-message.c: (dbus_message_get_sender):
12605         * dbus/dbus-message.h:
12606         Implement dbus_message_get_sender.
12607
12608         * dbus/dbus-protocol.h:
12609         Add message and service defines.
12610
12611 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12612
12613         * dbus/dbus-connection.c: (dbus_connection_send_message):
12614         * dbus/dbus-message-internal.h:
12615         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12616         (dbus_message_write_header):
12617         Remove _dbus_messag_unlock and don't set the client serial on a
12618         message if one already exists.
12619
12620 2003-01-24  Havoc Pennington  <hp@pobox.com>
12621
12622         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12623         list_pool
12624
12625         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12626         on OOM
12627
12628 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12629
12630         * dbus/dbus-list.c: (alloc_link), (free_link):
12631         Use a memory pool for the links.
12632
12633 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12634
12635         * bus/connection.c: (bus_connection_foreach):
12636         * bus/connection.h:
12637         Add new bus_connection_foreach function.
12638
12639         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12640         Add function that broadcasts a message to all clients.
12641
12642         (bus_driver_send_service_created), (bus_driver_handle_hello),
12643         (bus_driver_send_welcome_message),
12644         (bus_driver_handle_list_services), (bus_driver_message_handler):
12645         Implement functions that take care of listing services, and notifying
12646         clients when new services are created.
12647
12648         * bus/services.c: (bus_services_list):
12649         * bus/services.h:
12650         Add new function that returns an array of strings with the currently
12651         registered services.
12652
12653         * glib/dbus-glib.h:
12654         * glib/dbus-gmain.c:
12655         Update copyright year.
12656
12657 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12658
12659         * dbus/dbus-connection.c: (dbus_connection_send_message):
12660         Unlock the message in case it was sent earlier.
12661
12662         (dbus_connection_send_message_with_reply_and_block):
12663         Remove the reply message from the list.
12664
12665         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12666         Set array_len and new_pos correctly.
12667
12668         (_dbus_marshal_test):
12669         Remove debug output.
12670
12671         * dbus/dbus-message-internal.h:
12672         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12673         New function that returns the reply serial.
12674
12675         (_dbus_message_unlock):
12676         New function that unlocks a message and resets its header.
12677
12678         (dbus_message_append_string_array),
12679         (dbus_message_get_fields_valist),
12680         (dbus_message_iter_get_field_type),
12681         (dbus_message_iter_get_string_array),
12682         (dbus_message_get_fields),
12683         (dbus_message_append_fields_valist):
12684         Handle string arrays.
12685
12686         (dbus_message_set_sender):
12687         Make this function public since the bus daemon needs it.
12688
12689         (decode_header_data):
12690         Set the reply serial to -1 initially.
12691
12692         * dbus/dbus-message.h:
12693         Add dbus_message_set_sender.
12694
12695 2003-01-24  Havoc Pennington  <hp@pobox.com>
12696
12697         * doc/dbus-specification.sgml: add some stuff
12698
12699 2003-01-22  Havoc Pennington  <hp@pobox.com>
12700
12701         * doc/dbus-specification.sgml: Start to document the protocol.
12702
12703 2003-01-22  Havoc Pennington  <hp@pobox.com>
12704
12705         * dbus/dbus-connection.c
12706         (dbus_connection_send_message_with_reply_and_block): add some @todo
12707
12708         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12709
12710 2003-01-21  Havoc Pennington  <hp@pobox.com>
12711
12712         (patch untested because can't compile)
12713
12714         * bus/driver.c (create_unique_client_name): make this function
12715         never recycle client names. Also, caller should initialize
12716         the DBusString.
12717
12718         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12719
12720 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12721
12722         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12723         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12724         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12725         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12726         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12727         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12728         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12729         * dbus/dbus-marshal.h:
12730         * dbus/dbus-protocol.h:
12731         Add support for marshalling and demarshalling integer, double
12732         and string arrays.
12733
12734 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12735
12736         * bus/Makefile.am:
12737         Add driver.[ch]
12738
12739         * bus/connection.c: (connection_disconnect_handler):
12740         Remove the connection from the bus driver's list.
12741
12742         (connection_watch_callback): Dispatch messages.
12743
12744         (free_connection_data): Free connection name.
12745
12746         (bus_connection_setup): Add connection to the bus driver's list.
12747         (bus_connection_remove_owned_service):
12748         (bus_connection_set_name), (bus_connection_get_name):
12749         Add functions for setting and getting the connection's name.
12750
12751         * bus/connection.h:
12752         Add function headers.
12753
12754         * bus/driver.c: (create_unique_client_name),
12755         (bus_driver_handle_hello_message),
12756         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12757         (bus_driver_add_connection), (bus_driver_remove_connection):
12758         * bus/driver.h:
12759         * bus/main.c:
12760         * bus/services.c: (bus_service_free):
12761         * bus/services.h:
12762         New file that handles communication and registreation with the bus
12763         itself.
12764
12765 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12766
12767         * dbus/dbus-connection.c: (dbus_connection_send_message):
12768         Add a new client_serial parameter.
12769
12770         (dbus_connection_send_message_with_reply):
12771         Remove a @todo since we've implemented the blocking function.
12772
12773         (dbus_connection_send_message_with_reply_and_block):
12774         New function that sends a message and waits for a reply and
12775         then returns the reply.
12776
12777         * dbus/dbus-connection.h:
12778         Add new functions.
12779
12780         * dbus/dbus-errors.c: (dbus_result_to_string):
12781         * dbus/dbus-errors.h:
12782         Add new DBUS_RESULT.
12783
12784         * dbus/dbus-message-internal.h:
12785         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12786         (_dbus_message_set_sender), (dbus_message_write_header),
12787         (dbus_message_new_reply), (decode_header_data),
12788         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12789         * dbus/dbus-message.h:
12790         Add new functions that set the reply serial and sender.
12791         Also marshal and demarshal them correctly and add test.
12792
12793         * dbus/dbus-protocol.h:
12794         Add new DBUS_MESSAGE_TYPE_SENDER.
12795
12796         * glib/dbus-glib.h:
12797         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12798         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12799         (dbus_connection_hookup_with_g_main):
12800         * glib/test-dbus-glib.c: (main):
12801         Rewrite to use GIOChannel and remove the GSource crack.
12802
12803         * test/echo-client.c: (main):
12804         * test/watch.c: (check_messages):
12805         Update for changed APIs
12806
12807 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12808
12809         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12810
12811         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12812         Create a DBusTimeoutList.
12813         (dbus_connection_set_timeout_functions): Add new function to
12814         set timeout callbacks
12815
12816         * dbus/dbus-connection.h: Add public DBusTimeout API.
12817
12818         * dbus/dbus-message.c: (dbus_message_get_service):
12819         * dbus/dbus-message.h:  New function.
12820
12821         * dbus/dbus-server.c: Fix small doc typo.
12822
12823         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12824
12825 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12826
12827         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12828         of the string, just as long as specified.
12829
12830 2003-01-19  Havoc Pennington  <hp@pobox.com>
12831
12832         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12833         new function
12834
12835         * dbus/dbus-server.c (dbus_server_set_max_connections)
12836         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12837         keep track of current number of connections, and add API for
12838         setting a max (but haven't implemented enforcing the max yet)
12839
12840 2003-01-18  Havoc Pennington  <hp@pobox.com>
12841
12842         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12843         reading/writing if read_watch != NULL or write_watch != NULL.
12844
12845         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12846         the message loader code to actually load message->header and
12847         message->body into the newly-created message.
12848
12849         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12850         in OOM case
12851
12852         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12853         (dbus_connection_get_max_message_size)
12854         (dbus_connection_set_max_live_messages_size)
12855         (dbus_connection_get_max_live_messages_size): implement some
12856         resource limitation functions
12857
12858         * dbus/dbus-resources.c: new file implementing some of the
12859         resource limits stuff
12860
12861         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12862         missing docs, add @todo to handle OOM etc.
12863
12864         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12865         docs
12866
12867 2003-01-18  Havoc Pennington  <hp@pobox.com>
12868
12869         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12870         connection if it hasn't been already.
12871
12872         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12873         replace with DisconnectFunction.
12874
12875 2003-01-18  Havoc Pennington  <hp@pobox.com>
12876
12877         Building --disable-verbose-mode --disable-asserts --disable-tests
12878         cuts the library from 112K to 45K or so
12879
12880         * configure.in: check for varargs macro support,
12881         add --enable-verbose-mode, --enable-asserts.
12882
12883         * dbus/dbus-internals.h (_dbus_assert): support
12884         DBUS_DISABLE_ASSERT
12885         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12886
12887 2003-01-18  Havoc Pennington  <hp@pobox.com>
12888
12889         * dbus/dbus-test.c: include config.h so that tests actually run
12890
12891         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12892         so the failure mode when that assumption fails will be plenty
12893         obvious.
12894
12895 2003-01-18  Havoc Pennington  <hp@pobox.com>
12896
12897         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12898
12899         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12900         the distribution
12901
12902         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12903         since we don't want to use those in make check
12904
12905 2003-01-15  Havoc Pennington  <hp@redhat.com>
12906
12907         Release 0.2
12908
12909         * NEWS: update
12910
12911 2003-01-15  Havoc Pennington  <hp@redhat.com>
12912
12913         * test/Makefile.am: fix so that test source code ends up in the
12914         distribution on make distcheck
12915
12916 2003-01-15  Havoc Pennington  <hp@redhat.com>
12917
12918         Release 0.1.
12919
12920         * NEWS: update
12921
12922 2003-01-15  Havoc Pennington  <hp@redhat.com>
12923
12924         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12925         fix build when --disable-tests
12926
12927         * Makefile.am (EXTRA_DIST): put HACKING in here
12928
12929         * HACKING: document procedure for making a tarball release.
12930
12931 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12932
12933         * bus/connection.c: (connection_error_handler),
12934         (bus_connection_setup):
12935         * bus/main.c: (main):
12936         Make sure that the DBusConnectionData struct is NULLed
12937         out to prevent a segfault.
12938
12939         * dbus/dbus-errors.c: (dbus_result_to_string):
12940         * dbus/dbus-errors.h:
12941         * dbus/dbus-message.c: (dbus_message_get_fields),
12942         (dbus_message_get_fields_valist), (_dbus_message_test):
12943         * dbus/dbus-message.h:
12944         Make dbus_message_get_fields return a result code so we can
12945         track invalid fields as well as oom.
12946
12947 2003-01-11  Havoc Pennington  <hp@pobox.com>
12948
12949         * configure.in: change --enable-test/--enable-ansi action-if-given
12950         to enable_foo=$enableval instead of enable_foo=yes
12951
12952 2003-01-08  Havoc Pennington  <hp@pobox.com>
12953
12954         * dbus/dbus-string.c (_dbus_string_align_length): new function
12955
12956         * dbus/dbus-test-main.c: move main() for test app here
12957         * dbus/dbus-test.c
12958         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12959         symbol to run tests, because dbus-test isn't in the main
12960         library
12961
12962         Code review nitpicks.
12963
12964         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12965         for people with narrow emacs ;-). Assert client_serial was filled
12966         in. Assert message->name != NULL.
12967         (dbus_message_append_fields): have "first_field_type" arg separate
12968         from va list, needed for C++ binding that also uses varargs IIRC
12969         and helps with type safety
12970         (dbus_message_new): add @todo about using DBusString to store
12971         service/name internally
12972         (dbus_message_new): don't leak ->service and ->name on OOM later
12973         in the function
12974         (dbus_message_unref): free the service name
12975         (dbus_message_get_fields): same change to varargs
12976         i.e. first_field_type
12977         (_dbus_message_loader_return_buffer): assert that the message data
12978         is aligned (if not it's a bug in our code). Put in verbose griping
12979         about why we set corrupted = TRUE.
12980         (decode_header_data): add FIXME that char* is evil.  Was going to
12981         add FIXME about evil locale-specific string.h strncmp, but just
12982         switched to wacky string-as-uint32 optimization. Move check for
12983         "no room for field name" above get_const_data_len() to avoid
12984         assertion failure in get_const_data_len if we have trailing 2
12985         bytes or the like. Check for service and name fields being
12986         provided twice. Don't leak service/name on error. Require field
12987         names to be aligned to 4 bytes.
12988
12989         * dbus/dbus-marshal.c: move byte swap stuff to header
12990         (_dbus_pack_int32): uscore-prefix
12991         (_dbus_unpack_int32): uscore-prefix
12992         (_dbus_unpack_uint32): export
12993         (_dbus_demarshal_string): add @todo complaining about use of
12994         memcpy()
12995         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12996         handling allowing corrupt data to go unchecked
12997
12998 2003-01-08  Havoc Pennington  <hp@redhat.com>
12999
13000         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13001         to the select() as needed for authentication. (should be using
13002         _dbus_poll() not select, but for another day)
13003
13004         * dbus/dbus.h: include dbus/dbus-protocol.h
13005
13006 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13007
13008         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13009         dbus-connection.h
13010
13011 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13012
13013         * dbus/dbus-internals.c: (_dbus_type_to_string):
13014         New function that returns a string describing a type.
13015
13016         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13017         * dbus/dbus-marshal.h:
13018         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13019         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13020         (dbus_message_iter_get_byte_array):
13021         * dbus/dbus-message.h:
13022         Add new convenience functions for appending and getting message fields.
13023         Also add demarshalling routines for byte arrays.
13024
13025 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13026
13027         * dbus/dbus-connection-internal.h:
13028         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13029         (_dbus_connection_get_next_client_serial),
13030         (dbus_connection_send_message):
13031         * dbus/dbus-internals.h:
13032         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13033         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13034         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13035         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13036         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13037         (_dbus_verbose_bytes), (_dbus_marshal_test):
13038         * dbus/dbus-marshal.h:
13039         * dbus/dbus-message-internal.h:
13040         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13041         (dbus_message_write_header), (_dbus_message_lock),
13042         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13043         (dbus_message_get_name), (dbus_message_append_int32),
13044         (dbus_message_append_uint32), (dbus_message_append_double),
13045         (dbus_message_append_string), (dbus_message_append_byte_array),
13046         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13047         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13048         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13049         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13050         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13051         (decode_header_data), (_dbus_message_loader_return_buffer),
13052         (message_iter_test), (_dbus_message_test):
13053         * dbus/dbus-message.h:
13054         * dbus/dbus-protocol.h:
13055         * dbus/dbus-test.c: (main):
13056         * dbus/dbus-test.h:
13057         * glib/test-dbus-glib.c: (message_handler), (main):
13058         * test/echo-client.c: (main):
13059         * test/watch.c: (check_messages):
13060         Make messages sendable and receivable for real.
13061
13062 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13063
13064         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13065         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13066         * dbus/dbus-message.c: (dbus_message_append_int32),
13067         (dbus_message_append_uint32), (dbus_message_append_double),
13068         (dbus_message_append_string), (dbus_message_append_byte_array):
13069         Handle OOM restoration.
13070
13071 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13072
13073         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13074         (_dbus_demarshal_string), (_dbus_marshal_test):
13075         * dbus/dbus-marshal.h:
13076         * dbus/dbus-message.c: (dbus_message_get_name),
13077         Document these functions.
13078
13079         (dbus_message_append_int32), (dbus_message_append_uint32),
13080         (dbus_message_append_double), (dbus_message_append_string),
13081         (dbus_message_append_byte_array):
13082         * dbus/dbus-message.h:
13083         Add functions for adding message fields of different types.
13084
13085         * dbus/dbus-protocol.h:
13086         Add the different types.
13087
13088 2003-01-05  Havoc Pennington  <hp@pobox.com>
13089
13090         * bus/connection.c: implement routines for handling connections,
13091         first thing is keeping a list of owned services on each connection
13092         and setting up watches etc.
13093
13094         * bus/services.c: implement a mapping from service names to lists
13095         of connections
13096
13097         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13098
13099         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13100         to use static mutexes for global data
13101
13102         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13103         collection of functions to set/get application-specific data
13104         on the DBusConnection.
13105
13106 2003-01-04  Havoc Pennington  <hp@pobox.com>
13107
13108         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13109         (_dbus_poll): new function
13110
13111         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13112         copied from GLib
13113
13114         * bus/loop.c: initial code for the daemon main loop
13115
13116 2003-01-04  Havoc Pennington  <hp@pobox.com>
13117
13118         * test/watch.c (error_handler): make it safe if the error handler
13119         is called multiple times (if we s/error handler/disconnect
13120         handler/ we should just guarantee it's called only once)
13121
13122         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13123         error handler on disconnect (it's quite possible we should
13124         just change the error handler to a "disconnect handler," I'm
13125         not sure we have any other meaningful errors)
13126
13127         * configure.in: check for getpwnam_r
13128
13129         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13130         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13131         mechanism as in SASL spec, using socket credentials
13132
13133         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13134         (_dbus_send_credentials_unix_socket): new function
13135
13136         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13137         dbus_accept()
13138         (_dbus_write): only check errno if <0 returned
13139         (_dbus_write_two): ditto
13140
13141 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13142
13143         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13144         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13145         (_dbus_marshal_test):
13146         * dbus/dbus-marshal.h:
13147         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13148         to _dbus_marshal_utf8_string. Also fix some tests.
13149
13150 2002-12-28  Harri Porten  <porten@kde.org>
13151
13152         * configure.in: added check for C++ compiler and a very cheesy
13153         check for the Qt integration
13154
13155         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13156
13157         * qt/Makefile.am: added
13158
13159         * qt/.cvsignore: added
13160
13161         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13162         latter, added #ifdef QT_THREAD_SUPPORT guard.
13163
13164         * dbus/Makefile.am: added missing headers for make dist
13165
13166 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13167
13168         * dbus/Makefile.am: fixup export-symbols-regex.
13169
13170 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13171
13172         * acinclude.m4: Add this file and put the
13173         PKG_CHECK_MODULE macro in it.
13174
13175 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13176
13177         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13178         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13179         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13180         (_dbus_marshal_test):
13181         Make the demarshalling routines align the pos argument.
13182         Add string marshalling tests and fix the obvious bugs
13183         discovered.
13184
13185 2002-12-26  Havoc Pennington  <hp@pobox.com>
13186
13187         * dbus/dbus-auth.c: fixes fixes fixes
13188
13189         * dbus/dbus-transport-unix.c: wire up support for
13190         encoding/decoding data on the wire
13191
13192         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13193         (_dbus_auth_decode_data): append to target string
13194         instead of nuking it.
13195
13196 2002-12-26  Havoc Pennington  <hp@pobox.com>
13197
13198         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13199         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13200         doh
13201
13202         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13203         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13204         now). Main point is because I wanted unpack_uint32 to implement
13205         _dbus_verbose_bytes
13206         (_dbus_verbose_bytes): new function
13207
13208         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13209
13210         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13211         mechanism to handle a corrupt message stream
13212         (_dbus_message_loader_new): fix preallocation to only prealloc,
13213         not prelengthen
13214
13215         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13216         (_dbus_string_test): enhance tests for copy/move and fix the
13217         functions
13218
13219         * dbus/dbus-transport-unix.c: Hold references in more places to
13220         avoid reentrancy problems
13221
13222         * dbus/dbus-transport.c: ditto
13223
13224         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13225         leak reference count in no-message case
13226
13227         * test/watch.c (do_mainloop): handle adding/removing watches
13228         during iteration over the watches. Also, ref the connection/server
13229         stored on a watch, so we don't try to mangle a destroyed one.
13230
13231         * dbus/dbus-transport-unix.c (do_authentication): perform
13232         authentication
13233
13234         * dbus/dbus-auth.c (get_state): add a state
13235         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13236         (_dbus_auth_get_unused_bytes): append the unused bytes
13237         to the passed in string, rather than prepend
13238
13239         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13240         the auth conversation DBusAuth
13241
13242         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13243         (_dbus_transport_new_for_domain_socket): when creating a
13244         transport, pass in whether it's a client-side or server-side
13245         transport so we know which DBusAuth to create
13246
13247 2002-12-03  Havoc Pennington  <hp@pobox.com>
13248
13249         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13250         _after_ finalizing the derived members
13251         (unix_connection_set): unref watch if we fail to add it
13252
13253         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13254         transport first, so that the connection owned by the
13255         transport will be valid as the transport finalizes.
13256
13257         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13258         if necessary, and remove watches from the connection.
13259
13260         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13261
13262 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13263
13264         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13265         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13266         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13267         (_dbus_marshal_test):
13268         * dbus/dbus-marshal.h:
13269         Add string marshal functions and have the demarshal functions
13270         return the new position.
13271
13272 2002-12-25  Havoc Pennington  <hp@pobox.com>
13273
13274         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13275         it is a simple protocol that just maps directly to SASL.
13276
13277         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13278         initial implementation, not actually used yet.
13279
13280         * dbus/dbus-string.c (_dbus_string_find): new function
13281         (_dbus_string_equal): new function
13282         (_dbus_string_base64_encode): new function
13283         (_dbus_string_base64_decode): new function
13284
13285 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13286
13287         * dbus/Makefile.am:
13288         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13289         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13290         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13291         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13292         * dbus/dbus-marshal.h:
13293         * dbus/dbus-protocol.h:
13294         * dbus/dbus-test.c: (main):
13295         * dbus/dbus-test.h:
13296         Add un-optimized marshalling/demarshalling routines.
13297
13298 2002-12-25  Harri Porten  <porten@kde.org>
13299
13300         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13301
13302 2002-12-24  Zack Rusin  <zack@kde.org>
13303
13304         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13305         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13306         main loop stuff
13307
13308 2002-12-24  Havoc Pennington  <hp@pobox.com>
13309
13310         * glib/dbus-gthread.c: fix include
13311
13312         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13313         I think glib API needs to change, though, as you don't
13314         want to use DBusMessageFunction, you want to use the
13315         DBusMessageHandler object. Probably
13316         dbus_connection_open_with_g_main_loop()
13317         and dbus_connection_setup_g_main_loop() or something like that
13318         (but think of better names...) that just create a connection
13319         that has watch/timeout functions etc. already set up.
13320
13321         * dbus/dbus-connection.c
13322         (dbus_connection_send_message_with_reply): new function just to
13323         show how the message handler helps us deal with replies.
13324
13325         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13326
13327         * dbus/dbus-string.c (_dbus_string_test): free a string that
13328         wasn't
13329
13330         * dbus/dbus-hash.c: use memory pools for the hash entries
13331         (rebuild_table): be more paranoid about overflow, and
13332         shrink table when we can
13333         (_dbus_hash_test): reduce number of sprintfs and write
13334         valid C89. Add tests for case where we grow and then
13335         shrink the hash table.
13336
13337         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13338
13339         * dbus/dbus-connection.c (dbus_connection_register_handler)
13340         (dbus_connection_unregister_handler): new functions
13341
13342         * dbus/dbus-message.c (dbus_message_get_name): new
13343
13344         * dbus/dbus-list.c: fix docs typo
13345
13346         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13347         an object representing a handler for messages.
13348
13349 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13350
13351         * glib/dbus-glib.h:
13352         * glib/dbus-gthread.c: (dbus_gthread_init):
13353         Don't use the gdbus prefix for public functions.
13354
13355 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13356
13357         * Makefile.am:
13358         * configure.in:
13359         Add GLib checks and fixup .pc files
13360
13361         * glib/Makefile.am:
13362         * glib/dbus-glib.h:
13363         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13364         (gdbus_connection_check), (gdbus_connection_dispatch),
13365         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13366         (dbus_connection_gsource_new):
13367         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13368         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13369         * glib/test-dbus-glib.c: (message_handler), (main):
13370         Add GLib support.
13371
13372 2002-12-15  Harri Porten  <porten@kde.org>
13373
13374         * autogen.sh: check for libtoolize before attempting to use it
13375
13376         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13377         struct.
13378
13379         * .cvsignore: ignore more stamp files
13380
13381         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13382
13383         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13384         without make install.
13385
13386 2002-12-15  Havoc Pennington  <hp@pobox.com>
13387
13388         * dbus/dbus-threads.c: add thread stubs that a higher library
13389         layer can fill in. e.g. the GLib wrapper might fill them in with
13390         GThread stuff. We still need to use this thread API to
13391         thread-safe-ize the library.
13392
13393 2002-12-12  Havoc Pennington  <hp@pobox.com>
13394
13395         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13396         below new interfaces and include fewer system headers.
13397
13398         * dbus/dbus-sysdeps.c (_dbus_read): new function
13399         (_dbus_write): new function
13400         (_dbus_write_two): new function
13401         (_dbus_connect_unix_socket): new function
13402         (_dbus_listen_unix_socket): new function
13403
13404         * dbus/dbus-message-internal.h: change interfaces to use
13405         DBusString
13406
13407 2002-12-11  Havoc Pennington  <hp@pobox.com>
13408
13409         * dbus/dbus-types.h: add dbus_unichar
13410
13411         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13412
13413         * dbus/dbus-connection.c (dbus_connection_send_message): return
13414         TRUE on success
13415
13416         * dbus/dbus-transport.c: include dbus-watch.h
13417
13418         * dbus/dbus-connection.c: include dbus-message-internal.h
13419
13420         * HACKING: add file with coding guidelines stuff.
13421
13422         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13423         handling here, for security purposes (as in vsftpd). Not actually
13424         using this class yet.
13425
13426         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13427         system/libc usage here, as in vsftpd, for ease of auditing (and
13428         should also simplify portability). Haven't actually moved all the
13429         system/libc usage into here yet.
13430
13431 2002-11-25  Havoc Pennington  <hp@pobox.com>
13432
13433         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13434         always print the first verbose message.
13435
13436 2002-11-24  Havoc Pennington  <hp@pobox.com>
13437
13438         * test/echo-client.c, test/echo-server.c: cheesy test
13439         clients.
13440
13441         * configure.in (AC_CHECK_FUNCS): check for writev
13442
13443         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13444         function
13445
13446         * dbus/dbus-list.c (_dbus_list_foreach): new function
13447
13448         * dbus/dbus-internals.c (_dbus_verbose): new function
13449
13450         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13451         representing a server that listens for connections.
13452
13453         * dbus/.cvsignore: create
13454
13455         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13456         public API for reporting errors
13457
13458         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13459         public object representing a connection that
13460         sends/receives messages. (Same object used for
13461         both client and server.)
13462
13463         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13464         Basic abstraction for different kinds of stream
13465         that we might read/write messages from.
13466
13467 2002-11-23  Havoc Pennington  <hp@pobox.com>
13468
13469         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13470         _DBUS_INT_MAX
13471
13472         * dbus/dbus-test.c (main): add list test, and include
13473         dbus-test.h as intended
13474
13475         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13476         (_dbus_hash_table_remove_int): return value indicates
13477         whether the entry existed to remove
13478
13479         * dbus/dbus-list.c: add linked list utility class,
13480         with docs and tests
13481
13482         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13483         array sometimes.
13484
13485 2002-11-23  Havoc Pennington  <hp@pobox.com>
13486
13487         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13488         DBUS_END_DECLS to nothing, that should fix this once and for all
13489
13490         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13491
13492         * dbus/dbus-message.c, dbus/dbus-hash.c:
13493         add some missing @brief
13494
13495 2002-11-23  Havoc Pennington  <hp@pobox.com>
13496
13497         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13498         to avoid confusing Doxygen
13499
13500         * dbus/dbus-hash.c: @} not }@
13501
13502         * dbus/dbus-message.c (struct DBusMessage): split out
13503         internals docs
13504
13505 2002-11-23  Havoc Pennington  <hp@pobox.com>
13506
13507         * configure.in: pile on more warning flags if using gcc
13508
13509         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13510         to document static functions
13511
13512         * configure.in: add summary to end of configure so it
13513         looks nice and attractive
13514
13515         * dbus/dbus-hash.c: finish implementation and write unit
13516         tests and docs
13517
13518         * configure.in: add --enable-tests to enable unit tests
13519
13520         * dbus/dbus-test.c: test program to run unit tests
13521         for all files in dbus/*, initially runs a test for
13522         dbus-hash.c
13523
13524         * dbus/dbus-internals.h: file to hold some internal utility stuff
13525
13526 2002-11-22  Havoc Pennington  <hp@redhat.com>
13527
13528         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13529         "ported" away from Tcl
13530
13531         * dbus/dbus-types.h: header for types such as dbus_bool_t
13532
13533 2002-11-22  Havoc Pennington  <hp@redhat.com>
13534
13535         * dbus/dbus.h: fixups for doc warnings
13536
13537         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13538         macros
13539         (QUIET): make it quiet so we can see warnings
13540
13541         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13542
13543 2002-11-22  Havoc Pennington  <hp@redhat.com>
13544
13545         * Makefile.am: include "Doxyfile" target in all-local
13546
13547         * configure.in: generate the Doxyfile
13548
13549         * Doxyfile.in: move Doxyfile here, so we can use
13550         configure to generate a Doxyfile with the right
13551         version number etc.
13552
13553 2002-11-22  Havoc Pennington  <hp@redhat.com>
13554
13555         * dbus/dbus-message.c: move inline docs into .c file
13556
13557         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13558         so all docs are under doc/
13559         (MAN_EXTENSION): generate man pages. Use extension
13560         ".3dbus" which matches ".3qt" on my system,
13561         I guess this is OK, I don't know really.
13562         (FILE_PATTERNS): look for .c files not .h, makes sense
13563         for plain C I think
13564
13565 2002-11-22  Havoc Pennington  <hp@pobox.com>
13566
13567         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13568         because any app can be a server, and any app can be a client,
13569         the bus is a special kind of server.
13570
13571 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13572
13573         * Doxyfile : adding. Still needs Makefile rules to be generated
13574         automatically (just run "doxygen" in the toplevel dir for now to
13575         generate docs)
13576
13577         * dbus/dbus-message.h : Adding sample docs (javadoc since
13578         resembles gtk-doc a little more)
13579
13580         * dbus/dbus.h : Adding sample docs
13581
13582 2002-11-21  Havoc Pennington  <hp@redhat.com>
13583
13584         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13585         so we can allow ourselves to include files directly,
13586         instead of having to use dbus.h
13587
13588         * dbus/dbus.h: fill in
13589
13590         * dbus/dbus-message.h: sketch out a sample header file.
13591         Include griping if you include it directly instead of
13592         via dbus.h
13593
13594         * dbus/dbus-macros.h: new file with macros for extern "C",
13595         TRUE/FALSE, NULL, etc.
13596
13597         * doc/file-boilerplate.c: put include guards in here
13598
13599 2002-11-21  Havoc Pennington  <hp@redhat.com>
13600
13601         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13602
13603         * COPYING: include the GPL as well, and license code
13604         under both AFL and GPL.
13605
13606 2002-11-21  Havoc Pennington  <hp@redhat.com>
13607
13608         * acconfig.h: get rid of this
13609
13610         * autogen.sh (run_configure): add --no-configure option
13611
13612         * configure.in: remove AC_ARG_PROGRAM to make
13613         autoconf complain less. add AC_PREREQ.
13614         add AC_DEFINE third arg.
13615
13616 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13617
13618         * doc/Makefile.am:
13619         Fix references so we can distcheck.
13620
13621 2002-11-21  Havoc Pennington  <hp@redhat.com>
13622
13623         * Initial module creation
13624