2006-06-12 Ross Burton <ross@openedhand.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-06-12  Ross Burton  <ross@openedhand.com>
2
3         * glib/dbus-gproxy.c:
4         Don't leak a GArray when firing signals (thank Rob Taylor for review).
5
6 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
7
8         * Released 0.62
9
10 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
11
12         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
13         break pedantic builds. Closes bug 6043 (patch approved by
14         Havoc back in February).
15
16 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
17
18         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
19         that took a QDBusMessage parameter.
20         * qt/src/qdbusbus.h: Add a default flag for RequestName.
21         * qt/tools/dbus.cpp: Don't use automatic call because we might
22         be calling an async method: request a reply.
23
24 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
25
26         * test/qt/*: Update the testcases, including testing the new
27         functionality of sending null QByteArray and QString over the
28         bus. Add new headertest test and restore the old
29         qdbusxmlparser test.
30
31 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
32
33         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
34         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
35
36         * qt/examples/Makefile.am:
37         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
38         form.
39
40         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
41         QByteArray() (nulls) over the bus.
42         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
43         the one that has the signature suffix stripped.
44         * qt/src/qdbusreply.h: Make some methods const.
45
46 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
47
48         Patch from Timo Hoenig <thoenig@suse.de>.
49
50         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
51         required during build to EXTRA_DIST.
52         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
53         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
54         * configure.in: Fix "make dist", take care that the Makefile for
55         qt/dbus is being generated.
56
57 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
58
59         * bus/bus.c: Fix eavesdropping on method calls
60
61 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
62
63         * configure.in:
64         * dbus/dbus-userdb-util.c:
65         Add Solaris console owner patch from Artem Kachitchkine
66
67 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
68
69         * qt/Makfile.am:
70         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
71         reorganisation. Thanks to Timo Hoenig for pointing this out.
72
73 2006-06-06  Robert McQueen  <robot101@debian.org>
74
75         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
76           call to dbus_g_type_get_struct.
77
78 2006-06-06  Robert McQueen  <robot101@debian.org>
79
80         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
81           pointers were put into a GPtrArray-based specialised collection, and
82           then freed along with the array. GValues which you add into
83           collections or maps which have the NOCOPY flag set are assumed to not
84           belong to the caller, so rather than the existing pointer-stealing
85           semantics, they are copied instead. Given that the main consumers of
86           this abstraction are the bindings themselves, I don't think this is
87           too bad, but others should watch their choice of take vs set_static.
88
89 2006-06-06  Robert McQueen  <robot101@debian.org>
90
91         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
92           of g_slist_prepend not being used. Fixed copying of slist-based
93           specialised collections, then wrote a test case and found that it was
94           all broken. Went on to fix iterating and appending too. Good thing
95           nobody uses this code yet.
96
97 2006-06-06  Robert McQueen  <robot101@debian.org>
98
99         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
100           the iterators use gvalue_take_ptrarray_value (the GValues themselves
101           are discarded without unsetting, so it makes no difference whether
102           we take or set_static). Remove cases for G_TYPE_POINTER because
103           there really is nothing useful we can do with them in our
104           specialised types - we *need* boxed copy/free functions at the very
105           least.
106
107 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
108
109         * qt/dbus: Add directory. I had forgotten to add this
110         yesterday after the move...
111
112         * qt/examples/Makefile.am:
113         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
114
115         * qt/tools/Makefile.am:
116         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
117         Added feature to get and set properties.
118         Added validation of service, object path and interface names.
119
120         * qt/tools/dbusidl2cpp.cpp: Two new features:
121         1) Allow specifying both the header and the source file names,
122         by separating them with a colon.
123         2) Don't write an interface output if the -p switch wasn't
124         given, but the -a was.
125
126         * qt/src/*: Fix usage of Iterators and ConstIterators.
127         Fix shadowing of variables by other variables (-Wshadow).
128         Fix keyword-cleanliness in headers.
129         Fix ASCII-cast (QLatin1String, QLatin1Char).
130         Fix validation of member names.
131         Add extra checking of introspection data during XML parsing.
132         Various bug fixes.
133
134 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
135
136         * dbus/Makefile.am:
137         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
138         qt/dbus/qdbus.h now.
139
140 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
141
142         * configure.in: Make --disable-qt actually do
143           something. Patch inspired by Zack Rusin.
144
145 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
146
147         * qt/: Update to Subversion r548032.
148         This includes a big reorganisation of the files inside the
149         subdir.
150
151 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
152
153         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
154         clear:  
155         "Failed to connect to socket <host>:<port> <error>" instead of
156         "Failed to connect to socket <host>: <error>:<port>"
157
158         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
159         for a tcp transport. 
160
161 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
162
163         * qt/*: Update the QtDBus bindings up to revision 546310 in
164         Subversion.
165         This adds the dbuscpp2xml tool, that parses a C++ header and
166         outputs a D-BUS Introspection XML.
167
168 2006-05-21  Havoc Pennington  <hp@redhat.com>
169
170         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
171         is not NULL when it shouldn't be. Also a couple of possible fixes
172         for #4637 though I don't understand why the bug happens, to be
173         honest... also the object constructor has an assert name != NULL
174         and the name is only currently NULL for peer-to-peer proxies that 
175         I don't think anyone uses? So it should be asserting.
176         Anyway, for now at least see if we get an earlier assertion failure.
177
178         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
179         apparently broken code to be sure the tests fail and someone 
180         will fix them...
181
182 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
183
184         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
185         and arrays when they had a single element: has_next returns
186         false, even before you read the element. So, instead, check
187         the array length.
188
189 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
190
191         * qt/qdbusmessage.cpp:
192         * qt/qdbustypehelper_p.h:
193         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
194         the list is a const-reference
195
196 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
197
198         * Adding old doc patch that never got applied
199         
200         * dbus/bus.c (dbus_bus_add_match): Add documentation
201
202         * doc/dbus-specification.xml: Add documentation for the match rules
203           and the AddMatch and RemoveMatch methods
204
205 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
206
207         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
208         call (r535506)
209
210         * qt/dbusidl2cpp.cpp:
211         * qt/qdbusabstractadaptor.cpp:
212         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
213         sibling of the QDBusAbstractAdaptor objects instead of the
214         parent. (r535848)
215
216         * qt/dbusidl2cpp.cpp:
217         * qt/qdbusabstractinterface.cpp:
218         * qt/qdbusabstractinterface.h:
219         * qt/qdbusabstractinterface_p.h:
220         * qt/qdbusinterface.cpp: Make properties in interfaces
221         actually work. The code that was generated would not compile,
222         due to moc calls to functions that did not exist. They now
223         shall. (r536571)
224
225 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
226
227         * Makefile.am:
228         * configure.in:
229         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
230         Thanks to Brad Hards for providing the patch
231
232 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
233
234         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
235         call. (r535506)
236
237 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
238
239         * qt/examples/dbus.cpp: Enhance error messages and use
240         QDBusInterfacePtr.
241
242 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
243
244         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
245         and disable the copy operators. (r533772, r534746)
246
247         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
248
249         * qt/qdbusabstractinterface.cpp:
250         * qt/qdbusabstractinterface.h: Change the default call mode to
251         not use the event loop. Add convenience call() methods that
252         take a CallMode parameter. (r534042)
253
254         * qt/qdbusconnection.h: Change the default call mode to not
255         use the event loop. (r534042)
256
257         * qt/qdbusinterface.cpp:
258         * qt/qdbusinterface.h: Add a method to tell us if the
259         interface is valid (since we don't return a null pointer
260         anymore) (r534099)
261
262         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
263         (r534101)
264
265         * qt/qdbusinternalfilters.cpp: Decouple the introspection
266         function in two so taht we get the chance to introspect
267         without having a QDBusMessage (r534102)
268
269         * qt/qdbusbus.h:
270         * qt/qdbusconnection.cpp:
271         * qt/qdbusconnection_p.h:
272         * qt/qdbusintegrator.cpp: Keep a list of our own names to
273         avoid a round-trip to the server when attempting to introspect
274         one of our own objects. Also make sure the filter functions
275         match the empty interface as well. (r534108)
276         Don't keep the connection names. Instead, trust the unique
277         connection name (r534111)
278         Remove event loop usage (r534112)
279
280 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
281
282         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
283         Brad Hards.
284
285 2006-04-28  Robert McQueen  <robot101@debian.org>
286
287         * glib/dbus-gproxy.c: Fix properties so that they can be given in
288         any order, making it easier for people who inherit from this
289         object.
290
291 2006-04-28  Robert McQueen  <robot101@debian.org>
292
293         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
294         of memory from within pointer arrays and lists. Fixes bug #6300.
295
296 2006-04-28  Robert McQueen  <robot101@debian.org>
297
298         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
299         generating struct signatures. Fixes bug #6083.
300
301 2006-04-28  Robert McQueen  <robot101@debian.org>
302
303         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
304         to qdbusconnection_p.moc.
305
306 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
307
308         * README, INSTALL: Doc fixes
309         Patch from Brad Hards <bradh at frogmouth.net>
310
311 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
312
313         * qt/examples/dbus.cpp: Use the new merged-interface mode for
314         the dynamic meta object. No need to guess which interface to
315         call.
316
317 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
318
319         * qt/qdbusconnection_p.h:
320         * qt/qdbusmetaobject.cpp:
321         * qt/qdbusmetaobject_p.h:
322         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
323         for the dynamic meta object. No need to guess which
324         interface to call.
325         * qt/qdbusabstractinterface_p.h:
326         * qt/qdbusconnection.cpp:
327         * qt/qdbusintegrator.cpp:
328         * qt/qdbusinterface.cpp:
329         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
330         Add a QDBusRef that looks and behaves like DCOPRef.
331
332 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
333
334         * dbus/dbus-connection.c: Interfaces are optional in method
335         calls, so don't give up if the interface parameter is NULL.
336         Patch reviewed by Havoc Pennington.
337
338 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
339
340         * qt/qdbusreply.h: Add default constructor and operator=
341           (r532625)
342         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
343           in public headers (r532952)
344         * qt/qdbusabstractinterface.cpp:
345         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
346           make it the default (r532951)
347
348 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
349
350         * dbus/dbus-connection.c: Fix asserts
351         Patch from Tim Moloney <t.moloney at verizon.net>
352
353 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
354
355         * mono/Connection.cs, mono/Message.cs: Check Target type
356         Patch from Aaron Bockover (abockover at novell.com)
357
358 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
359
360         * INSTALL: fine-tune the requirements for the Qt4 binding.
361
362 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
363
364         * tools/dbus-print-message.c: Added support for printing of all 
365           remaining data types. Fixed logic for indentation of compound
366           data types.
367         
368 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
369
370         * INSTALL: fill out content of file providing DBus specific
371           build installations, followed by generic Auto* INSTALL file
372           content
373         
374 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
375
376         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
377           Patch by Stefan Eilers. (r529537)
378
379 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
380
381         * qt/qdbusinternalfilters.cpp: Don't show the parent's
382           contents (r528208)
383
384 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
385
386         * qt/Makefile.am: fix the dependency for
387           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
388           not in qdbusconnection.cpp.
389           Thanks to Jakub Stachowski <stachowski@hypair.net> for
390           spotting this.
391
392 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
393
394         * qt/examples/listnames.cpp:
395         * qt/examples/Makefile.am: Three ways to list the names on the
396           bus.
397
398 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
399
400         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
401           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
402
403 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
404
405         Merge from Subversion:
406         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
407           something that exists (r526315)
408         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
409           slots/signals (r526316)
410         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
411           also return an unknown-method error if the parameters don't
412           match for org.freedesktop.DBus.Properties. (r526842)
413         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
414         * qt/qdbusintegrator.cpp: Restore the proper order of
415           delivery: don't make method returns be delivered on priority
416           (r528150)
417
418 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
419
420         * configure.in qt/Makefile.am: add qt/examples
421         * qt/examples: Add QtDBus example programs:
422           - hello: Hello, World
423           - ping: Simple method-calling program
424           - pong: Simple object-exporting program (not using adaptors)
425           - complexping: Interactive method-calling program 
426                 (also gets and sets properties).
427           - complexpong: Sample program exporting methods, signals and
428                 properties, using adaptors.
429           - dbus: Simple implementation of a generic method-calling
430                 program, similar to 'dbus-send', but with semantics
431                 similar to 'dcop'.
432           - chat: Simplistic chat program, implemented using signals
433                 and the system bus. Looks like IRC.
434
435 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
436
437         * configure.in: Detect QtGui (necessary for one of the
438           example programs). Note: this increases the minimum required
439           version of Qt to 4.1.3.
440
441 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
442
443         * test/qt/*: Sync with KDE Subversion revision 523647.
444         Update the testcases to the new API. Remove testcases for
445         classes that are no longer public or have been removed.
446
447 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
448
449         * qt/*: 
450         * dbus/qdbus.h: Sync with KDE Subversion revision
451         523647. Hopefully, this will be the last of the
452         source-incompatible changes. Documentation has been improved;
453         support for QList<basic-types> has been added; QDBusObject is
454         gone; QDBus(Abstract)Interface is now a QObject with
455         auto-generated meta-object; QDBusIntrospection is marked
456         private, since QMetaObject can be used now; lots of bugfixes.
457
458 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
459
460         Patch from Milosz Derezynski <internalerror at gmail.com>
461         
462         * configure.in:
463         Output the service directory in the configure summary
464
465         * dbus-1.pc.in:
466         Add session_bus_services_dir
467
468 2006-03-10  Ross Burton  <ross@openedhand.com>
469
470         * tools/dbus-print-message.c:
471         Add support for object paths and signatures.
472
473 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
474
475         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
476         config reload.
477         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
478         information caches
479         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
480         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
481         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
482         * dbus/dbus-userdb.h: Add function to flush all user/group information
483         caches.
484
485 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
486
487         * qt/dbusidl2cpp.cpp:
488         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
489         for dcopidl2cpp, found in the KDE installations (or the more
490         modern kalyptus): generate Qt4 C++ code for the input XML
491         introspection. Currently no IDL parsing.
492
493 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
494
495         * test/qt/*: Update the self-tests.
496
497 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
498
499         * qt/*: 
500         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
501         represents the first feature-complete version of the Qt4
502         bindings since I took ove maintainership.
503
504 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
505
506         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
507         dir. This is C++, so we can't use the DBus ones.
508
509 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
510
511         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
512         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
513
514 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
515
516         * dbus/dbus-connection.c: 
517         (_dbus_connection_block_pending_call):
518         Check to see if our data has already been read off the connection
519         by another blocking pending call before we block in poll.
520         (check_for_reply_and_update_dispatch_unlocked):
521         Code taken from _dbus_connection_block_pending_call - checks for
522         an already read reply and updates the dispatch if there is one.
523
524         * test/name-test/test-pending-call-dispatch.c:
525         New test for making sure we don't get stuck polling a 
526         dbus connection which has no data on the socket when
527         blocking out of order on two or more pending calls.
528
529 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
530
531         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
532         make/automake don't detect that we're talking about the same
533         .lo file if I specify the full path to the source files.
534
535 2006-02-26  Havoc Pennington  <hp@redhat.com>
536
537         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
538
539         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
540         session bus variable is unset, suggest "man dbus-launch" and "man
541         dbus-daemon" to figure out how to fix the problem
542
543 2006-02-25  Havoc Pennington  <hp@redhat.com>
544
545         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
546         should make this thing use the new glib options parser
547
548 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
549
550         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
551         .lo files taking moc sources.
552
553 2006-02-25  Havoc Pennington  <hp@redhat.com>
554
555         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
556         and install it as a public header
557
558 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
559
560         * Released 0.61
561
562 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
563         
564         * proxies.py: Fix the callchain
565
566 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
567         
568         * patch from Sjoerd Simons <sjoerd at debian.org>:      
569
570         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
571         dbus/dbus-sysdeps.c
572
573         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
574         call _dbus_group_info_free_allocated which causes infinite loop,
575         correctly call _dbus_group_info_free
576
577 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
578
579         * qt/qdbusinterface_p.h:
580         * qt/qdbusinterface.cpp: Use the standard
581         org.freedesktop.DBus.Method.NoReply annotation for the "async"
582         calls instead of creating one for us.
583
584         * qt/qdbusconnection_p.h:
585         * qt/qdbusintegrator.cpp: Remove debugging code.
586
587         * qt/qdbusintegrator.cpp:
588         * qt/qdbusmessage.cpp:
589         * qt/qdbusmessage_p.h:
590         * qt/qdbusmessage.h: Change the behaviour of automatic
591         reply-sending: now a reply is always sent, unless the caller
592         didn't request one or if the user slot has already sent one.
593
594 2006-02-16  Robert McQueen  <robot101@debian.org>
595
596         * configure.in: Patch from Debian packages by Sjoerd Simons
597         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
598         arguments so it's possible to build both bindings in the
599         same tree.
600
601         * qt/Makefile.am: Fix truncated value so that make dist works.
602
603 2006-02-16  Robert McQueen  <robot101@debian.org>
604
605         * acinclude.m4, configure.in: Patch from Brad Hards
606         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
607         improving quoting, re-ordering a few checks, and a few other
608         aesthetic tidy-ups.
609
610 2006-02-16  Robert McQueen  <robot101@debian.org>
611
612         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
613         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
614         assertion that the next element to read from the iter is fixed in
615         size. This is not the case when you are at the end of the iter,
616         because the next element type is INVALID.
617
618         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
619         a bogus assert which means that you may not initialise a 0-length
620         string unless you provide a non-NULL pointer. This prevented
621         you from marshalling messages containing zero-length arrays in
622         some cases.
623
624         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
625         from Rob to correct bogus asserts when trying to demarshal an
626         array and get_fixed_array got you 0 elements. Append nothing to
627         the GArray in this case.
628
629         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
630         an empty array via the glib bindings. Without all of the above
631         patches, this new test fails.
632
633 2006-02-16  Robert McQueen  <robot101@debian.org>
634
635         * glib/dbus-gmain.c: Make the previous commit compile.
636
637         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
638         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
639         specify sender_keyword="foo", path_keyword="bar" when adding
640         a signal listener, so that you can bind to signals generically
641         but still do something useful in your callback.
642
643         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
644         chars so that they're not cast to chars and made negative. Thanks
645         to Jakub Stachowski for reporting this and testing the fix.
646
647 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
648
649         * dbus/dbus-glib.h:
650         * glib/dbus-gmain.h:
651         (dbus_g_connection_open): new method for openning
652         a connection to an arbitrary address in the glib bindings
653
654         * ChangeLog: checkin last entry which doesn't seem to be commited
655
656 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
657
658         * tools/dbus-launch.c: Fixed sh syntax output
659
660 2006-02-13  Robert McQueen  <robot101@debian.org>
661
662         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
663         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
664         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
665         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
666         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
667         missing piece of the glib bindings jigsaw puzzle. This modifies
668         the existing specialised types to have N type parameters (rather
669         than the current 1 or 2 for arrays and dictionaries respectively).
670         You can then use this to get a glib type to represent any arbitrary
671         D-Bus struct type using dbus_g_type_get_struct. The only
672         implementation of these types is with GValueArrays as before,
673         but it's now possible to store these in arrays, emit them in
674         signals, etc.
675
676 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
677
678         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
679         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
680         <thiago.macieira at trolltech.com>
681
682 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
683
684         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
685         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
686
687 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
688
689         * bus/connection.c (bus_connections_expect_reply): Make
690         pending reply limit not common to all connections (Bug #5416)
691         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
692
693 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
694
695         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
696
697 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
698
699         * gcj/Makefile.am: point to correct jar command (Bug #4529)
700         patch from Doug Goldstein <cardoe at gentoo.org>
701
702 2006-02-09  Joe Shaw  <joeshaw@novell.com>
703
704         * mono/Arguments.cs: Fix a magic number in the mono bindings
705         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
706
707 2006-01-27  Robert McQueen  <robot101@debian.org>
708
709         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
710         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
711         when generating the client-side methods, instead of overloading
712         CSymbol which broke everything horribly. My apologies.
713
714 2006-01-27  Robert McQueen  <robot101@debian.org>
715
716         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
717         by me and Rob Taylor to add a simple_free function to D-Bus map
718         and collection types, which allows those types which can be freed
719         with a GDestroyNotify (such as GHashTables and GArrays, but not
720         GPtrArrays) to be stored as the values in hashtables.
721
722         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
723         Patch by Rob Taylor to add nested dicts to the glib tests to check
724         the above code works, and appears not to leak when called repeatedly.
725
726 2006-01-27  Robert McQueen  <robot101@debian.org>
727
728         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
729         to free a D-Bus allocated string with dbus_free () instead of
730         g_free ().
731
732 2006-01-27  Iain Holmes  <iain@openedhand.com>
733
734         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
735         method from being called multiple times.
736
737 2006-01-19  Robert McQueen  <robot101@debian.org>
738
739         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
740         <rob.taylor@collabora.co.uk> to add support for generating bindings
741         to arrays that are represented as GPtrArrays rather than GArrays (ie
742         size-variable things, such as strings, objects, structs, etc).
743
744 2006-01-05  Robert McQueen  <robot101@debian.org>
745
746         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
747         <ricardo.kekki@movial.fi> to make it possible to inherit from
748         DBusGProxy, by splitting the DBusGProxy struct into a public part and
749         a private part, and moving the setting of the DBusGProxyManager into a
750         connection property, allowing proper GObject construction.
751
752 2006-01-05  Robert McQueen  <robot101@debian.org>
753
754         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
755         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
756         annotations when generating glib client bindings.
757
758 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
759
760         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
761
762         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
763
764 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
765
766         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
767
768 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
769
770         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
771
772 2005-12-19  Ross Burton  <ross@openedhand.com>
773
774         * doc/dbus-tutorial.xml:
775         Document the Glib client-side bindings, and list all possible annotations.
776
777 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
778
779         * dbus/bus.c (dbus_bus_release_name): Add documentation
780
781 2005-12-06  Robert McQueen  <robot101@debian.org>
782
783         * python/service.py: s/sucessful/successful/ so we're allocating to
784         and reading from the same variable. Oops.
785
786 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
787
788         * Released 0.60
789
790 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
791
792         * test/qt/Makefile.am: build from srcdir
793
794         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
795         Note - this code is wrong and needs to be fixed by the Qt binding
796         developers.  The flags should be treated as bitfields and not enums.
797
798         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
799
800 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
801
802         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
803           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
804           in production code
805
806 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
807
808         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
809         method for getting messages off the bus in the absence of a
810         mainloop.  This method is much like 
811         dbus_connection_read_write_dispatch except it does not dispatch
812         the messages to a registered filter function.  Instead it
813         allows a developer to process messages by directly popping
814         them off the bus.
815
816 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
817
818         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
819         the parser to continue instead of returning error
820         (bus_desktop_file_load): Do not free parser data when
821         parse_section_start or parse_key_value fails because it was 
822         already freed by parser_free (patch from Carlos Garcia Campos  
823         <carlosgc at gnome.org>)
824
825 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
826
827         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
828         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
829         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
830         test/test-segfault.c, test/test-utils.c,
831         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
832         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
833         Various cleanup of dead code and compiler warnings (patch from
834         Kjartan Maraas <kmaraas at gnome.org>) 
835
836 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
837
838         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
839         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
840
841 2005-11-27  Robert McQueen  <robot101@debian.org>
842
843         * python/dbus_bindings.pyx: Repair my previous commit which reverted
844         part of the preceding one. Oops. Merge patch by Johan Hedberg
845         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
846         on big-endian platforms.
847
848         * test/python/test-client.py: Add some 16-bit integers to the test
849         values.
850
851 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
852
853         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
854         method return message for property getters
855
856 2005-11-27  Robert McQueen  <robot101@debian.org>
857
858         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
859         with type v of an instance of dbus.Variant(foo, type='x') caused
860         it to be boxed twice before sending over the bus.
861
862         * python/dbus_bindings.pyx, python/service.py,
863         test/python/test-client.py: Update the constants for the new
864         request_name flags, and update comments/test cases now that queueing
865         is the default action.
866
867 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
868
869         * configure.in:
870         - Change version to 0.60 for impending release
871         - upped the sonames because of ABI and API breakage
872
873 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
874
875         * configure.in: Add test/name-test/Makefile to the generated
876         Makefile list
877
878         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
879         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
880         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
881         not to queue an ower if it can't be the primary owner
882
883         * bus/bus.h: Add new internal BusOwner struct
884
885         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
886         to bus_registry_ensure and don't set the prohibit_replacement flag
887         since they are now set per BusOwner and not per name.
888         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
889         that returns the list of connections in a name's connection queue
890         
891         * bus/services.c (struct BusService): remove prohibit_replacement field
892         (struct BusOwner): new struct for keeping track of queued connections
893         and their associated flags for the queue
894         (struct BusRegistry): add a BusOwner memory pool
895         (bus_registry_new): initialize the BusOwner memory pool
896         (bus_registry_unref): free the BusOwner memory pool
897         (_bus_service_find_owner_link): new internal method for
898         searching the queue for a specific connection
899         (bus_owner_set_flags): new method for adding setting the flags on a
900         bus owner
901         (bus_owner_new): new method that creates a BusOwner object from the
902         pool and sets its flags
903         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
904         (bus_registry_ensure): Add the flags parameter
905         (bus_registry_acquire_service): Switch from using raw connections to
906         using the BusOwner struct
907         Add new state machine for dealing with the new set of flags
908         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
909         cancel_ownership, free_ownership_cancel_data, 
910         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
911         restore_ownership, free_ownership_restore_data, 
912         add_restore_ownership_to_transaction): Switch to using BusOwner 
913         instead of raw connections
914         (bus_service_add_owner): Add flags parameter
915         Switch to using BusOwner instead of raw connections
916         Add state machine for dealing with the new set of flags
917         (bus_service_swap_owner): Swaps the first and second owners in the
918         queue.  Used to make sure proper signals are sent when a service looses 
919         or gains primary ownership.  We never insert an owner at the top of the
920         queue.  Instead we insert it in the second position and then swap.
921         (bus_service_remove_owner): Remove the owner from the queue sending
922         out the NameLost and NameOwnerChanged signals if the we were the 
923         primary owner
924         (bus_service_get_primary_owners_connection): New method that extracts
925         the connection from the primary owner
926         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
927         connection
928         (bus_service_get_allow_replacement): Changed from the old 
929         bus_service_get_prohibit_replacement method.  Checks the flags of the 
930         primary owner and returns if it can be replaced or not
931         (bus_service_set_prohibit_replacement): removed
932         (bus_service_has_owner): returns TRUE if and owner with
933         the specified connection exists in the queue
934         
935         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
936         method that only compiles if tests are enabled.  Allows us to get the 
937         unique name of a connection so we can check it against the queue when
938         doing regression tests
939
940         * bus/activation.c (bus_activation_send_pending_auto_activate),
941         bus/dispatch.c (bus_dispatch),  
942         bus/driver.c (bus_driver_handle_get_service_owner, 
943         bus_driver_handle_get_connection_unix_user, 
944         bus_driver_handle_get_connection_unix_process_id,
945         bus_driver_handle_get_connection_selinux_security_context),
946         bus/signals.c (connection_is_primary_owner): 
947         use bus_service_get_primary_owners_connection instead of
948         bus_service_get_primary_owner
949
950         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
951         _dbus_listen_unix_socket): Calculate the length of the socket
952         path and use that instead of using a fixed length which was
953         causing socket names to contain many trailing Nul bytes.
954
955         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
956         (dbus_g_method_get_sender): New method for extracting the sender 
957         from a DBusGMethodInvocation
958         (dbus_g_method_return_get_reply): changed name to 
959         dbus_g_method_get_reply
960         (dbus_g_method_return_send_reply): changed name to
961         dbus_g_method_send reply
962
963         * doc/dbus-specification.xml: New docs that describe how the new
964         queueing system works and talks about the changes to the how
965         we specify socket names
966
967         * glib/examples/example-service.c, 
968         glib/examples/example-signal-emitter.c,
969         glib/examples/statemachine/statemachine-server.c:
970         Changed the RequestName flags to the new system
971
972         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
973         regression test suite for testing various states of the new
974         queueing system
975         
976 2005-11-15  Robert McQueen  <robot101@debian.org>
977
978         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
979         Taylor to add two methods, dbus_g_method_return_get_reply and
980         dbus_g_method_return_send_reply, to allow you to get the reply
981         message from a DBusGMethodInvocation, append arbitrary stuff to it,
982         and send it. The GLib bindings can't marshal a return value of
983         something like a(s) if the array is empty - ultimately they should be
984         made to heed the signature of the out arguments as the Python bindings
985         now can, but this is a workable interim solution which might have
986         other applications.
987
988 2005-11-15  Robert McQueen  <robot101@debian.org>
989
990         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
991         method to org.freedesktop.DBus to release a bus name or give up
992         waiting in the queue for it.
993
994         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
995         dbus_bus_release_name method to send the ReleaseName method calls.
996         Add constants for the return values to dbus/dbus-shared.h.
997
998         * doc/dbus-specification.xml: Document the new ReleaseName method
999         in the specification.
1000
1001         * python/dbus_bindings.pyx: Add a low-level python binding for the
1002         release name method.
1003
1004         * python/exceptions.py, python/service.py: Make freeing BusName
1005         objects release the name. Add a NameExistsException, and fix a
1006         bug with creating UnknownMethodException.
1007
1008         * test/python/test-client.py: Add tests for freeing BusName
1009         objects causing names to be released.
1010
1011 2005-11-14  Robert McQueen  <robot101@debian.org>
1012
1013         * python/service.py: Include the traceback in the error reply when we
1014         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1015
1016 2005-11-14  David Zeuthen  <davidz@redhat.com>
1017
1018         Patch from Timo Hoenig <thoenig@suse.de>.
1019
1020         * bus/bus.c: I've recently investigated why the automatic reload
1021         of configuration files does not work as expected.
1022
1023         Currently, reloading configuration files does only work when
1024         running dbus-daemon with --nodaemon.  If we are running as daemon
1025         we're hitting a dnotify bug once we fork the process.
1026
1027         We're initializing the dnotify fds before calling fork().  Once
1028         the child process forked it does still have the fds (and they
1029         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1030         getting SIGIO as changes are made to the configuration files.
1031
1032         The attached patch moves the initialization of the dnotify fds to
1033         process_config_postinit().  This is safe for all current code
1034         paths and solves the dnotify disfunction.  If we're running
1035         dbus-daemon as daemon the fds for dnotify are now being
1036         initialized after fork() for the child process.
1037
1038         * configure.in: The current configure.in check for dnotify probes
1039         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1040         match for 'xlinux', too. Additionally I have adapted the configure
1041         option's style to match with the others.
1042
1043 2005-11-14  Robert McQueen  <robot101@debian.org>
1044
1045         * python/decorators.py, python/service.py: Add a new argument to the
1046         dbus.service.method decorator called sender_keyword, which if set,
1047         specifies the name of an argument which will be provided the bus
1048         name of the method caller.
1049
1050         * test/python/test-client.py, test/python/test-service.py: Add a
1051         method and test to check the sender_keyword functionality.
1052
1053 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1054
1055         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1056         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1057         Simons <sjoerd at luon.net>)
1058
1059         * AUTHORS: Add Robert McQueen for his work on the Python
1060         Bindings and other parts of D-Bus
1061
1062 2005-11-07  Robert McQueen  <robot101@debian.org>
1063
1064         * python/decorators.py: Change emit_signal function to use the
1065         signature annotation of the signal when marhsalling the arguments from
1066         the service. Fix a bug where the code checking signature length
1067         against argument length referenced the wrong variable.
1068
1069         * python/introspect_parser.py: Avoid adding the type signature of
1070         signal arguments to any methods which occur after them in the
1071         introspection data (!) by making the parser a little more careful
1072         about its current state.
1073
1074         * python/service.py: Remove debug prints from last commit (again :D).
1075
1076         * test/python/test-client.py, test/python/test-service.py: Add test
1077         signals with signature decorators to test the strict marshalling code
1078         gives errors at the right time. Could do with checking the signals
1079         actually get emitted too, given that the test does nothing with
1080         signals at the moment...
1081
1082 2005-11-07  Robert McQueen  <robot101@debian.org>
1083
1084         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1085         instances to stop madness of creating new instances representing
1086         the same bus connection all the time, rendering any tracking of
1087         match rules and bus names quite meaningless. Caught a bug where
1088         the private argument to SessionBus() and friends was being passed
1089         in as use_default_mainloop by mistake. Still some problems with
1090         multiple dbus_binding.Connection instances representing the same
1091         low-level connection (eg when you use both SessionBus() and
1092         StarterBus() in same process), but it's a lot better now than it
1093         was.
1094
1095         * python/dbus_bindings.pyx: Add constants with the return values
1096         for bus_request_name().
1097
1098         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1099         and retrieve the same instances for the same name, so deletion can be
1100         done with refcounting. Also now throws some kind of error if you
1101         don't actually get the name you requested, unlike previously...
1102
1103         * test/python/test-client.py: Add tests for instance caching of buses
1104         and bus name objects.
1105
1106 2005-11-04  Robert McQueen  <robot101@debian.org>
1107
1108         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1109         marshalling of boolean values. Add some booleans to the values in
1110         the test client.
1111
1112         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1113         argument to the dbus.service.method decorator, which allows you to
1114         name arguments to take two callback functions for replying with
1115         return values or an exception.
1116
1117         * test/python/test-client.py, test/python/test-service.py: Add test
1118         case using asynchronous method reply functions, both return values and
1119         errors, and from within both the function itself and from a mainloop
1120         callback.
1121
1122         * python/decorators.py, python/service.py: Perform checking that the
1123         number of method/signal arguments matches the number of types in the
1124         signature at class loading time, not when you first introspect the
1125         class.
1126
1127         * python/service.py: Remove debug print left by the last commit.
1128
1129 2005-11-03  Robert McQueen  <robot101@debian.org>
1130
1131         * python/service.py: Heavy refactoring of method invocation, with
1132         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1133         in favour of a new _message_cb that uses seperate functions for
1134         looking up the method to call, marshalling the return values, and
1135         sending exceptions as errors, and is easier to follow as a
1136         consequence.  Fixes some corner cases about returning things that
1137         don't match your declared out_signature, allows exceptions to define
1138         _dbus_error_name and have it be sent over the bus as the error name,
1139         and paves the way for cool stuff like heeding the message no reply
1140         flag, asynchronous method implementations, informing the method of the
1141         sender, and including backtraces in the error messages.
1142
1143         * test/python/test-client.py: Catch and print exceptions thrown in the
1144         async callback tests, rather than passing them to the low-level
1145         bindings to be ignored in a noisy and frustrating manner.
1146
1147 2005-11-03  Robert McQueen  <robot101@debian.org>
1148
1149         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1150         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1151         tweak others to be consistent.
1152
1153         * test/python/test-client.py: Tweak output of testInheritance.
1154
1155 2005-10-29  Robert McQueen  <robot101@debian.org>
1156
1157         * python/service.py: Major changes to allow multiple inheritance
1158         from classes that define D-Bus interfaces:
1159         
1160          1. Create a new Interface class which is the parent class of
1161             Object, and make the ObjectType metaclass into InterfaceType.
1162         
1163          2. Patch written with Rob Taylor to replace use of method_vtable
1164             with code that walks the class's __MRO__ (method resolution order)
1165             to behave like Python does when invoking methods and allow
1166             overriding as you'd expect. Code is quite tricky because
1167             we have to find two methods, the one to invoke which has the
1168             right name and isn't decorated with the /wrong/ interface,
1169             and the one to pick up the signatures from which is decorated
1170             with the right interface.
1171         
1172             The same caveats apply as to normal multiple inheritance -
1173             this has undefined behaviour if you try and inherit from two
1174             classes that define a method with the same name but are
1175             decorated with different interfaces. You should decorate
1176             your overriding method with the interface you want.
1177         
1178          3. Replace grungy introspection XML generation code in the metaclass
1179             with dictionaries that cope correctly with multiple inheritance
1180             and the overriding of methods. This also uses the signature
1181             decorations to provide correct introspection data, including
1182             the debut appearance of the types of your return values. :D
1183
1184         * test/python/test-client.py, test/python/test-service.py: Add a test
1185         case to try invoking an method that overrides one inherited from a
1186         D-Bus interface class.
1187
1188 2005-10-29  Robert McQueen  <robot101@debian.org>
1189
1190         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1191         Add checking for the end of struct character when marshalling a
1192         struct in MessageIter.append_strict.
1193
1194         * python/examples/example-service.py,
1195         python/examples/gconf-proxy-service.py,
1196         python/examples/gconf-proxy-service2.py: Update to use gobject
1197         mainloop directly rather than appearing to depend on gtk.
1198
1199         * python/test/test-client.py, python/test/test-server.py: Remove
1200         obsolete and broken test scripts for old bindings. We have up to date
1201         and working tests in test/python/.
1202
1203 2005-10-29  Robert McQueen  <robot101@debian.org>
1204
1205         * python/decorators.py: Add optional arguments to the method and
1206         signal decorators to allow you to specify the signature of arguments
1207         and return values. Preserve the doc strings of signal functions in the
1208         decorated version, for pydoc and friends.
1209
1210         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1211         parse_signature_block function with an iterable dbus.Signature()
1212         type. Fix a bug in MessageIter.append_strict where you could append
1213         anything by claiming it was a string.
1214
1215         * python/service.py: Use the out_signature decoration on methods to
1216         marshal return values, meaning you no longer require dbus.Array()
1217         or dbus.Dictionary() to indicate the type when returning empty
1218         arrays or dictionaries. Fix a bug where exceptions which are defined
1219         in __main__ are not turned into error replies.
1220
1221         * test/python/test-client.py, test/python/test-service.py: Add test
1222         for correct marshalling of return values according to out_signature.
1223         Fix a bug in the async call test where the error_handler is missing a
1224         self argument.
1225
1226 2005-10-29  Robert McQueen  <robot101@debian.org>
1227
1228         * glib/Makefile.am, glib/examples/Makefile.am,
1229         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1230         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1231
1232         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1233
1234         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1235         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1236         the command line.
1237
1238 2005-10-27  Ross Burton  <ross@openedhand.com>
1239
1240         * dbus/dbus-marshal-header.c:
1241         Remove dead code.
1242
1243         * glib/dbus-gobject.c:
1244         Stop compiler warning.
1245
1246 2005-10-25  Ross Burton  <ross@openedhand.com>
1247
1248         * dbus/dbus-auth.c:
1249         * dbus/dbus-server-unix.c:
1250         * dbus/dbus-transport-unix.c:
1251         * glib/dbus-gmain.c:
1252         * glib/dbus-gobject.c:
1253         Add some const keywords.
1254
1255 2005-10-25  Ross Burton  <ross@openedhand.com>
1256
1257         * doc/dbus-specification.xml:
1258         Document the NoReply annotation.
1259
1260         * glib/dbus-binding-tool-glib.h:
1261         * glib/dbus-binding-tool-glib.c:
1262         Respect the NoReply annotation.
1263
1264 2005-10-24  Robert McQueen <robot101@debian.org>
1265
1266         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1267         derive from unicode instead of str, and encode/decode UTF-8 when
1268         marshalling/unmarshalling bus messages
1269
1270         * python/introspect_parser.py: encode introspection data as UTF-8
1271         before passing the buffer into libxml2
1272
1273         * test/python/test-client.py: add unicode test strings
1274
1275         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1276         ignore generated python test files
1277
1278 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1279
1280         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1281         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1282         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1283
1284         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1285         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1286         when constructing struct signatures
1287
1288         * python/_dbus.py (Bus): handle private connections using the
1289         private keyword in the constructor. defaults to private=False
1290         (Bus::close): new method to close a connection to the bus
1291
1292         * python/dbus_bindings.pyx (Connection::close): renamed method
1293         was previously called disconnect
1294         (bus_get): now supports getting a private connection
1295
1296         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1297         keyword is set to True.  if it is, execute the method without waiting
1298         for a reply
1299         (ProxyObject::_introspect_execute_queue): new method for executing
1300         all the pending methods that were waiting for the introspect to
1301         finish.  this is called when introspect either succeeds or fails
1302         (ProxyObject::_introspect_error_handler): call queued methods
1303
1304 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1305
1306         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1307         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1308
1309         * python/service.py (Object::_message_cb): handle exceptions correctly
1310         by sending them over the wire to the calling app.  This makes sure
1311         the client returns immediately instead of waiting the 15 seconds to
1312         timeout.
1313
1314         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1315         Add a test to benchmark how long it takes to introspect a service and 
1316         call a method which returns a large element (pretty fast)
1317
1318         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1319         method which pushes a lot of data
1320
1321 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1322
1323         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1324         reclaim memory outside of the loop and use del istead of just setting
1325         the key to None
1326
1327 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1328
1329         * python/service.py (ObjectType::_reflect_on_signal): Always close
1330         signal tag even when there are no arguments
1331
1332 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1333
1334         * configure.in: Set mono, mono-docs and Qt3 to default
1335         to no instead of auto when building.  These bindings do not
1336         have full time maintainers and will not be supported for the
1337         1.0 release.
1338
1339 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1340
1341         patches from Michael Krivoruchko <misha at sun.com>: 
1342         
1343         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1344         _dbus_connection_message_sent, 
1345         _dbus_connection_send_preallocated_unlocked_no_update, 
1346         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1347         is NULL when calling _dbus_verbose
1348
1349         * configure.in: check for functions getpeerucred and getpeereid
1350
1351         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1352         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1353         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1354         Patch was only tested on Solaris 10 x86 so it might be issues
1355         with other platforms (i.e. BSDs and MacOSX)
1356         
1357
1358 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1359
1360         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1361         instead of marshal basic so we can handle recursive types in a variant
1362
1363         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1364         in variants
1365
1366         * test/glib/test-service-glib.c, test-service-glib.xml
1367         (my_object_echo_variant [EchoVariant], 
1368         my_object_process_variant_of_array_of_ints123
1369         [ProcessVariantOfArrayOfInts123]): 
1370         Add two test methods
1371
1372         * python/introspect_parser.py: New module for parsing introspect
1373         data.
1374
1375         * python/dbus_bindings.pyx:
1376         (various places): when throwing errors fix to use errormsg instead 
1377         of message local variable because Pyrex can get confused with other 
1378         message variables (initial patch by Robert McQueen 
1379         <robert.mcqueen at collabora.co.uk>)
1380         (MessageIter::parse_signature_block): new method for getting the next
1381         block in a signiture.
1382         (MessageIter::append_strict): new method for appending values strictly
1383         using the passed in signature instead of guessing at the type
1384         (MessageItter:: append_dict, append_struct, append_array): use 
1385         signatures to marshal children if the signature is available
1386         
1387         * python/exceptions.py (IntrospectionParserException): new exception
1388
1389         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1390         introspected signatures if available, else we fall back to the
1391         old way of doing things.
1392         (ProxyObject::_introspect_reply_handler ): parse introspection data
1393         
1394         * python/service.py (ObjectType::_reflect_on_method): Properly
1395         terminate <method> if there are no args in the reflection data
1396
1397         * test/python/test-client.py: add tests for talking with the GLib
1398         test server.  This gives us better coverage for introspection since
1399         python to python will always generate arguments as variants.  It also
1400         allows us to test the robustness of the GLib bindings and interlanguage
1401         communications.
1402
1403         
1404 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1405
1406         * bus/driver.c (bus_driver_handle_introspect): Add signals
1407         to the introspect data. (patch from Daniel P. Berrange 
1408         <dan at berrange.com>)
1409
1410         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1411         
1412         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1413         _dbus_connection_run_builtin_filters): Changed these to
1414         be unlock_no_update functions and call 
1415         _dbus_connection_send_unlocked_no_update instead of
1416         dbus_connection_send to avoid locking errors.
1417         
1418         * doc/TODO: Removed the make Ping test TODO
1419         
1420 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1421
1422         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1423         We now copy the message from a DBusError and then free 
1424         the error object befor throwing the error
1425
1426         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1427         DBusBindingOutputMode enum which was causing a warning.
1428         #include <time.h> so using time_t is explicitly defined
1429
1430 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1431
1432         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1433         - dbus/dbus-bus.c
1434         (internal_bus_get): new method that take over the heavy lifting
1435         of dbus_bus_get and adds the ability to get a private connection
1436         to the bus
1437         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1438         interface as in previous versions
1439         (dbus_bus_get_private): new method that is a wrapper to 
1440         internal_bus_get to get a private connection to the bus
1441
1442         - dbus/dbus-bus.h
1443         (dbus_bus_get_private): add as a public libdbus interface
1444
1445         - dbus-1.pc.in: output system_bus_default_address and 
1446         sysconfdir variables so apps can use them when compiling
1447
1448 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1449         * dbus/qt: New Qt bindings
1450
1451 2005-09-12  Waldo Bastian  <bastian@kde.org>
1452
1453         * dbus/dbus-marshal-validate.c,
1454         doc/dbus-specification.xml, test/Makefile.am,
1455         test/test-names.c: allow hyphens in bus names.
1456
1457 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1458
1459         * test/data/auth/fallback.auth-script: we don't
1460         retry the EXTERNAL method when we know its going
1461         to fail anymore.
1462
1463 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1464
1465         * dbus/dbus-connection-internal.h: rename
1466         (add|remove|toggle)_(watch|timeout) to unlocked()
1467         
1468         * dbus/dbus-connection.c: ditto.
1469         
1470         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1471         Update some callers for the renaming.
1472
1473 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1474
1475         * dbus/dbus-auth.c: (record_mechanisms): don't
1476         retry the first auth mechanism because we know
1477         we're just going to get rejected again.
1478         
1479         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1480         Fix thinko ... and what a nasty little bugger to
1481         track down you were ...
1482
1483         * dbus/dbus-connection.c:
1484         (_dbus_connection_add_watch),
1485         (_dbus_connection_remove_watch): add note about
1486         these needing the connection to be locked.
1487         (_dbus_connection_get_dispatch_status_unlocked):
1488         set status to DATA_REMAINS when we queue the
1489         disconnected message.
1490         
1491         * bus/dispatch.c:
1492         (bus_dispatch): fix warning.
1493         (check_existent_service_no_auto_start):
1494         Expect ChildSignaled error too.
1495         (check_existent_hello_from_self): fix another
1496         couple of warnings.
1497         
1498 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1499
1500         Patches from James Willcox <snorp@snorp.net>
1501
1502         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1503
1504         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1505         support array "out" parameters.
1506
1507         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1508         for 16-bit int support.
1509
1510 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1511
1512         * Released 0.50
1513
1514         * Patch from Steve Grubb:
1515         - bus/activation.c (bus_activation_service_reload_test): clean up
1516         some indentation
1517         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1518         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1519         buffer overflows in the test suite.  This is non critical because
1520         it can not be exploited and this code is only run when doing a 
1521         make check.
1522
1523         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1524         - configure.in: Don't check and link against kdecore, only qt headers
1525         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1526         - gcj/org/freedesktop/dbus/Makefile.am:
1527         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1528         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1529         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1530         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1531         - tools/Makefile.am: Add platform extentions to binaries 
1532         (i.e. .exe on windows)
1533
1534         * configure.in: 
1535         - Make it so if no suitable version of python is found we only 
1536         disable building python instead of exiting the configure script
1537         - Require version 2.4 of glib for glib bindings
1538         - Up version to 0.50
1539
1540         * python/__init__.py: Sync version with libdbus to (0,50,0)
1541         
1542 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1543
1544         * dbus/dbus-object-tree.c (find_subtree_recurse):
1545         a couple of optimizations (bug #710):
1546         - do a binary search in the tree
1547         - insert a new child at the right place directly, no need for
1548           qsort anymore
1549         - do the "double alloc" thing when allocating children
1550
1551 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1552
1553         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1554
1555         * python/dbus_bindings.pyx: Memory management foo
1556         (global): remove hacky _user_data_references global list
1557         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1558         tuples. Unref user_data
1559         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1560         (Connection::__del__): Remove and replace with __dealloc__ method
1561         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1562         to keep tuple from being deallocated instead of the global var hack
1563         (Connection::register_object_path): Stuff user_data into a tuple.
1564         Use Py_INCREF to keep tuple from being deallocated instead of the 
1565         global var hack
1566         (Connection::register_fallback): Stuff user_data into a tuple.
1567         Use Py_INCREF to keep tuple from being deallocated instead of the 
1568         global var hack
1569         (GIL_safe_pending_call_notification): Don't unref the message
1570         because it gets unreffed when going out of scope.  Py_XDECREF
1571         the user_data
1572         (PendingCall::__del__): Remove and replace with __dealloc__ method
1573         (PendingCall::set_notify): ref the pending call because we will
1574         need it to stick around for when the notify callback gets called
1575         (Message::__del__): Remove and replace with __dealloc__ method
1576
1577         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1578         gthreads_init to match up with the dbus call
1579
1580         * python/glib.py (init_threads): Changed to threads_init to match
1581         up with gobject.threads_init().  init_threads is kept for backwards
1582         compat but will most likely be deprecated in the future
1583
1584         * test/python/test-client.py: 
1585         - revamp to use Python's unittest functionality
1586         - add async call tests
1587         - setup threads in glib and dbus so we make sure locks are working
1588         
1589 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1590
1591         * python/dbus_bindings.pyx 
1592         (_pending_call_notification, cunregister_function_handler, 
1593         cmessage_function_handler): All callback functions have been rearranged 
1594         to workaround a bug in Pyrex when working with the GIL which is Python's 
1595         global lock when dealing with threads.  They have been split into
1596         a wrapper function (which assumes the name of the old function) and
1597         a _GIL_safe_<function name> function which contains the functionality
1598         of the old function.  This ensures that Pyrex does not write code
1599         the lock is released.
1600         
1601
1602 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1603
1604         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1605         GIL global lock when calling back into Python
1606
1607 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1608
1609         * Release 0.36.2
1610
1611         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1612
1613         * bus/policy.c (bus_policy_allow_user): change default "user is
1614         allowed" to be "user has same uid as the bus itself"; any
1615         allow/deny rules will override.
1616
1617         * bus/session.conf.in: don't allow all users, since now by default
1618         the user that ran the bus can connect.
1619
1620 2005-08-26  Colin Walters  <walters@verbum.org>
1621
1622         * tools/dbus-print-message.c (print_message): Flush stdout
1623         after printing a message, so that redirecting to a file, then
1624         hitting Ctrl-C works.
1625
1626 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1627
1628         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1629         (EmptyMessage): new class that subclasses Message.  This is a workaround
1630         to a Pyrex bug that fails to call __del__ when the Message object goes out
1631         of scope.  For some reason subclassing Message fixes this bug
1632         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1633         - s/Message(_create=0)/EmptyMessage everywhere else
1634         
1635         * test/python/test-{server|client}.py: add the python/.libs directory
1636         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1637         get picked up from the system
1638
1639 2005-08-25  Colin Walters  <walters@verbum.org>
1640
1641         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1642         to Ryan Lortie for the suggestion.
1643
1644 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1645
1646         * test/python: Add python regression test
1647
1648         * configure.in: Add test/python/Makefile
1649
1650         * test/Makefile.am: Add the python directory to SUBDIRS
1651
1652 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1653
1654         * Release 0.36.1
1655
1656         * python/_dbus.py: 
1657         (Interface::connect_to_signal): propigate keywords for match on args
1658         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1659
1660         * python/proxies.py (ProxyObject::connect_to_signal):
1661         propigate keywords for match on args
1662
1663         * Makefile.am: point everything to pyexecdir since python borks
1664         on multilib
1665
1666 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1667
1668         * Release 0.36
1669
1670 2005-08-23  Colin Walters  <walters@verbum.org>
1671
1672         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1673
1674 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1675
1676         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1677         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1678         of defining DBusConnection ourselves.
1679
1680 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1681
1682         * python/dbus.pth: New path file to fix up problems when installing
1683         c libraries to lib64 and python files to lib.
1684
1685         * python/Makefile.am: install dbus.pth in the correct spot
1686
1687 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1688         * ChangeLog: clean up my last entry a bit
1689
1690         * doc/introspect.xsl: New stylesheet for converting introspection data
1691         into browser renderable xhtml. Contributed by Lennart Poettering.
1692
1693         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1694         Poettering.
1695
1696         * doc/dbus-tutorial.xml: 
1697         - Add Colin Walter to the Authors section for authoring the GLib
1698         section
1699         - Add descriptions of the new signature and type functionality
1700         in the Python complex type mapping section
1701         - Add a sidenote on the new args matching functionality in 
1702         the Python bindings
1703         - Fixed up some of the examples to use the gobject.MainLoop
1704         instead of gtk.main
1705         
1706         * python/_dbus.py:
1707         (Bus::_create_args_dict): New. Converts a hash of arg matches
1708         to a more useable format
1709         (Bus::add_signal_receiver): add a **keywords parameter for catching
1710         arg match parameters
1711         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1712         arg match parameters
1713         
1714         * python/matchrules.py:
1715         (MatchTree::exec_matches): Check for arg matches
1716         (SignalMatchRule::add_args_match): New method
1717         (SignalMatchRule::execute): Added args_list parameter as an optimization
1718         so we don't have to marshal the args more than once
1719         (SignalMatchRule::match_args_from_list): New method that checks to see
1720         if the rule's arg matches match an argument list.  Only arguments
1721         set in the rule are checked.
1722         (SignalMatchRule::match_args_from_rule): New method that checks to see
1723         if the rule's arg matches match another rule's.  All args have to match
1724         in order for this method to return true.  If either rule has more args
1725         then it is not a match.
1726         (SignalMatchRule::is_match): Add args match
1727         (SignalMatchRule::repr): Add args to the final output if they exist
1728
1729 2005-08-17  Ross Burton  <ross@burtonini.com>
1730
1731         * glib/dbus-gproxy.c:
1732         (dbus_g_proxy_call_no_reply): unref the message once sent.
1733         (dbus_g_proxy_call): protect against NULL proxy.
1734
1735 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1736
1737         * python/__init__.py: Version updated (0, 43, 0)
1738         
1739         * python/dbus_bindings.pyx: 
1740         - Fixed type objects to have self passed into __init__
1741         - Added the Variant type
1742         - Add the ability to specify types or signatures for Array, Variant 
1743         and Dictionary
1744         (Connection::send_with_reply_handlers): return a PendingCall object
1745         (_pending_call_notification): handle the case when an error is returned 
1746         without an error message in the body
1747         (MessageIter::get_boolean): return True or False instead of an integer
1748         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1749         and add checks for objects with embeded signatures or types (Array, 
1750         Variant and Dictionary)
1751         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1752         (MessageIter::append_dict): handle embeded types or signatures
1753         (MessageIter::append_array): handle embeded types or signatures
1754         (MessageIter::append_variant): new method
1755         
1756         * python/proxies.py:
1757         (DeferedMethod): New. Dummy executable object used when queuing calls 
1758         blocking on introspection data
1759         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1760         or shorter timeouts for method calls
1761         (ProxyObject): Add first pass at an introspection state machine
1762         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1763         introspection. 
1764         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1765         the usual mechanisms for sending messages.  This is to avoid a deadlock
1766         where the Intospect call would be queued waiting for the Introspect 
1767         call to finish ;-)
1768         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1769         when introspection returns with no error
1770         (ProxyObject::_introspect_error_handler): New.  This method is called 
1771         when introspection encounters an error
1772         (ProxyObject::__getattr__): Code to handle different introspection 
1773         states.  Queue async calls or block blocking calls if we are 
1774         introspecting.  Pass through as normal if we are not or are done with 
1775         introspecting.
1776         
1777         * python/service.py: Import signal and method from decorators.py
1778
1779         * python/types.py: Add Variant type
1780
1781 2005-08-16  Colin Walters  <walters@verbum.org>
1782
1783         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1784         DBusError message is NULL.
1785
1786 2005-08-09  Havoc Pennington  <hp@redhat.com>
1787
1788         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1789         malloc'd copy of the name parameter
1790
1791 2005-08-09  Havoc Pennington  <hp@redhat.com>
1792
1793         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1794         warning if the reply serial is set to 0
1795
1796 2005-08-04  Colin Walters  <walters@verbum.org>
1797
1798         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1799         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1800         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1801         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1802         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1803         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1804         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1805         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1806         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1807         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1808         
1809         Prefix name with _ to ensure they're not exported.  All callers
1810         updated.
1811
1812         * glib/dbus-gvalue.c (typecode_to_gtype)
1813         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1814         (signature_iter_to_g_type_dict)
1815         (signature_iter_to_g_type_array)
1816         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1817         (dbus_gtypes_from_arg_signature):
1818         Move to dbus-gsignature.c.
1819
1820         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1821         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1822         (dbus_binding_tool_output_glib_client): Ditto.
1823
1824         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1825         and dbus-gsignature.h
1826
1827         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1828         unused variable.
1829
1830 2005-08-03  Colin Walters  <walters@verbum.org>
1831
1832         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1833         catch any incompatible changes accidentally made.
1834
1835 2005-08-03  Havoc Pennington  <hp@redhat.com>
1836
1837         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1838         typo, from Julien Puydt
1839
1840         * bus/connection.c (bus_connection_disconnected): we were always
1841         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1842
1843 2005-08-01  Colin Walters  <walters@verbum.org>
1844
1845         Patch from Joe Markus Clarke:   
1846         
1847         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1848         use-after-free.
1849
1850 2005-08-01  Colin Walters  <walters@verbum.org>
1851         
1852         Patch from Joe Markus Clarke:   
1853         
1854         * tools/dbus-send.c (main): 
1855         
1856         Don't use C99 style initializers (bug #3933).
1857         
1858 2005-08-01  Colin Walters  <walters@verbum.org>
1859
1860         Patch from Joe Markus Clarke:   
1861
1862         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1863         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1864         * glib/dbus-gobject.c (write_interface):
1865
1866         Don't use C99 style initializers (bug #3933).
1867
1868 2005-07-31  Havoc Pennington  <hp@redhat.com>
1869
1870         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1871         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1872
1873 2005-07-30  Havoc Pennington  <hp@redhat.com>
1874
1875         * fix a bunch of Doxygen warnings and mistakes
1876
1877 2005-07-30  Havoc Pennington  <hp@redhat.com>
1878
1879         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1880         DBUS_BUILD_TESTS since it's now used in production code
1881
1882 2005-07-29  Havoc Pennington  <hp@redhat.com>
1883
1884         * test/glib/test-profile.c (write_junk): initialize the junk
1885         buffer so valgrind doesn't have a breakdown
1886
1887 2005-07-29  Havoc Pennington  <hp@redhat.com>
1888
1889         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1890         (match_rule_matches): remove unused arg
1891         (test_matching): add tests for match_rule_matches()
1892
1893         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1894         do arg0='foo' arg5='bar' in the match rules
1895         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1896
1897         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1898
1899 2005-07-29  Ross Burton  <ross@openedhand.com>
1900
1901         * dbus/dbus-connection.c:
1902         Don't create a DBusCondVar which is never used.
1903
1904 2005-07-27  Ross Burton  <ross@openedhand.com>
1905
1906         * dbus/dbus-message.c:
1907         Reduce the size of the maximum cached message to 10K.
1908
1909 2005-07-25  Ross Burton  <ross@openedhand.com>
1910
1911         * glib/dbus-gproxy.c:
1912         Remove matches when all proxies are unregistered.
1913
1914 2005-07-24  Colin Walters  <walters@verbum.org>
1915
1916         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1917         typedata; recursive arrays won't have it.
1918
1919         * test/glib/test-dbus-glib.c:
1920         * test/glib/test-service-glib.c:
1921         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1922         
1923 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1924
1925         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1926         proxies.py, service.py: Cleanup of code after running it through the
1927         pyflakes code checker mostly dealing with undefined names.  
1928         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1929
1930 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1931
1932         * NEWS: Update to 0.35.2
1933
1934 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1935
1936         * python/_dbus.py: Remove import of the dbus.services
1937         module as it no longer exists (patch from Dimitur Kirov)
1938
1939         * python/service.py (Object::__init__): Fixed typo
1940         s/name/bus_name (patch from Dimitur Kirov)
1941
1942         * python/examples/example-signal-emitter.py: import dbus.glib
1943         to get the main loop and use glib mainloop instead of gtk so
1944         X doesn't have to be running.
1945
1946         * python/examples/example-signal-recipient.py: import dbus.glib
1947         to get the main loop and use glib mainloop instead of gtk so
1948         X doesn't have to be running. Import the decorators module
1949         directly.
1950
1951         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1952         didn't pick up on but are needed to build
1953
1954         * configure.in: upped version to 0.35.2
1955
1956         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1957         added Colin Walters' SELinux API rename patch from head 
1958         s/unix sercurity context/selinux security context/
1959
1960 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1961
1962         * python/Makefile.am: dbus_binding.pxd.in should be included 
1963         in EXTRA_DIST not dbus_binding.pxd
1964         fix up $(srcdir) hopefully for the last time
1965
1966         * NEWS: Update to 0.35.1
1967
1968 2005-07-16  Colin Walters  <walters@verbum.org>
1969
1970         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1971         from bus_driver_handle_get_connection_unix_security_context.  Update for
1972         error usage.
1973         (message_handlers): Update for renames.
1974
1975         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1976         _dbus_string_init failure correctly.
1977         (bus_selinux_append_context): Convert SID to context.  Append it
1978         as a byte array.
1979         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1980         hasn't been called.
1981
1982         * bus/selinux.h: Update prototype.
1983
1984         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1985         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1986
1987 2005-07-15  Colin Walters  <walters@verbum.org>
1988
1989         * doc/TODO: Add note about convenience wrappers.
1990
1991 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1992
1993         * NEWS: Update to 0.35
1994
1995 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1996
1997         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1998         so distcheck doesn't fail
1999
2000         * glib/examples/Makefile.am: Add example-service.xml and 
2001         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2002
2003         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2004         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2005
2006         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2007         compiler looks in the right places during distcheck
2008
2009 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2010
2011         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2012         to fail
2013
2014 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2015
2016         * python/examples/example-service.py,
2017         python/examples/example-signal-emitter.py: Fixed up examples
2018         for API changes
2019
2020 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2021
2022         * python/__init__.py: Upped to version (0,42,0) because of
2023         the API change
2024
2025 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2026
2027         * ChangeLog: fix date in last entry
2028
2029         * configure.in, bus/system.conf.in: add the ability to configure 
2030         the system bus user at compiletime with the --with-dbus-user flag
2031         (patch from Kristof Vansant)
2032
2033 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2034
2035         * bus/dispatch.c, test/test-service.c: Add testcase
2036         for sending messages to oneself (TODO item).
2037
2038         * python/service.py (class Object): Swap ordering of bus_name 
2039         and object_path parameters to better support inheritance.
2040
2041         * doc/dbus-tutorial.xml: change Python docs to reflect change
2042         in parameter ordering and fix the inheritance section.
2043
2044         * doc/TODO: remove sending message to oneself TODO item
2045
2046 2005-07-15  Ross Burton  <ross@openedhand.com>
2047
2048         * glib/dbus-gproxy.c:
2049         Fix a leak when calling methods via the proxy.
2050
2051 2005-07-15  Colin Walters  <walters@verbum.org>
2052
2053         * bus/selinux.c (bus_selinux_append_context): Wrap in
2054         HAVE_SELINUX.
2055
2056 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2057
2058         * python/_dbus.py (Bus::remove_signal_receiver):
2059         don't add a callback to the match if none has been passed in
2060         
2061         * python/matchrules.py (SignalMatchTree::remove): if the rule
2062         being matched does not have a callback treat it as a wildcard
2063         fix matching logic
2064
2065         * doc/dbus-tutorial.xml: Add Python tutorial
2066
2067 2005-07-14  Colin Walters  <walters@verbum.org>
2068
2069         * bus/driver.c
2070         (bus_driver_handle_get_connection_unix_security_context): New function.
2071         (message_handlers): Add.
2072
2073         * bus/selinux.c (bus_selinux_append_context): New function; appends
2074         security context to message.
2075
2076         * bus/selinux.h: Prototype.
2077
2078         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2079
2080 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2081
2082         * bus/activation.c: clean up all tabs to be 8 spaces 
2083         (bus_activation_activate_service): make sure we clean up
2084         if activation fails
2085
2086         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2087         (check_shell_fail_service_auto_start): New function
2088         tests to make sure we get fail properly when trying to auto start a service
2089         with a faulty command line
2090         (check_shell_service_success_auto_start): New function tests to make sure
2091         auto started services get the arguments on the command line
2092
2093         * test/test-shell-service.c: Added service for testing auto-starting with 
2094         command line arguments
2095
2096         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2097         test/data/valid-service-files/debug-shell-echo-success.service.in:
2098         Added service files for testing auto-starting with command line arguments
2099
2100         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2101
2102 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2103
2104         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2105         
2106         * dbus/Makefile.am: added new files to build.
2107
2108         * bus/activation.c (bus_activation_activate_service): support
2109         activation commands with parameters.
2110
2111         * test/shell-test.c: added test program for the shell parsing
2112         code.
2113
2114 2005-07-13  David Zeuthen  <davidz@redhat.com>
2115
2116         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2117         64 bit signed and unsigned parameters
2118
2119 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2120
2121         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2122
2123         * python/service.py (class Name): renamed BusName to make it clearer
2124         what the object is for (a name on the bus)
2125
2126         * python/examples/example-service.py,
2127         python/examples/example-signal-emitter.py: change the Name object to
2128         BusName
2129
2130 2005-07-12  Colin Walters  <walters@verbum.org>
2131
2132         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2133
2134         * tools/dbus-launch.c: Include sys/select.h.
2135
2136 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2137         * python/dbus_bindings.pyx.in: removed
2138
2139         * python/dbus_bindings.pyx: Added.
2140         - Fixed some memleaks (patch from 
2141         Sean Meiners <sean.meiners@linspireinc.com>)
2142         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2143         own pxd file (Pyrex definition)
2144         - Broke out glib dependancies into its own pyx module
2145         
2146         * python/dbus_bindings.pdx: Added.
2147         - Defines C class Connection for exporting to other modules
2148
2149         * python/dbus_glib_bindings.pyx: Added.
2150         - New module to handle lowlevel dbus-glib mainloop integration
2151
2152         * python/glib.py: Added.
2153         - Registers the glib mainloop when you import this module
2154
2155         * python/services.py: Removed (renamed to service.py)
2156         
2157         * python/service.py: Added.
2158         - (class Server): renamed Name
2159
2160         * python/__init__.py: Bump ro version (0,41,0)
2161         -don't import the decorators or service module
2162         by default.  These now reside in the dbus.service namespace
2163
2164         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2165         setup function on creation 
2166
2167         * python/examples/example-service.py,
2168         python/examples/example-signal-emitter.py: update examples
2169
2170         * python/examples/gconf-proxy-service.py,
2171         python/examples/gconf-proxy-service2.py: TODO fix these up
2172
2173         * doc/TODO: Addition
2174         - Added a Python Bindings 1.0 section
2175         - added "Add match on args or match on details to match rules"
2176
2177
2178 2005-07-12  Colin Walters  <walters@verbum.org>
2179
2180         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2181         (statemachine-glue.h): 
2182         * glib/examples/Makefile.am (example-service-glue.h) 
2183         (example-signal-emitter-glue.h): 
2184         * glib/Makefile.am (dbus-glib-error-switch.h): 
2185         Add libtool --mode=execute so we use the built library instead
2186         of any installed one.
2187
2188 2005-07-11  Colin Walters  <walters@verbum.org>
2189
2190         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2191         (dbus_g_value_types_init): Remove assertion.
2192         (dbus_g_value_get_g_type, dbus_g_value_open)
2193         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2194         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2195         functions related to DBusGValue.  Now we marshal/demarshal
2196         structures as GValueArray.
2197         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2198         structures.
2199         (signature_iter_to_g_type_array): Don't call
2200         signature_iter_to_g_type_struct.
2201         (signature_iter_to_g_type_struct): Delete.
2202         (dbus_gvalue_to_signature): Delete.
2203         (dbus_gvalue_to_signature): New function with same name as other
2204         one; we can convert structures to signatures.
2205         (demarshal_valuearray): New function.
2206         (get_type_demarshaller): Use it.
2207         (demarshal_recurse): Delete.
2208         (marshal_proxy): New function.
2209         (marshal_map): Warn if we can't determine signature from type.
2210         (marshal_collection_ptrarray): Ditto.
2211         (marshal_collection_array): Ditto.
2212         (get_type_marshaller): Use marshal_valuearray.
2213         (marshal_recurse): Delete.
2214         (_dbus_gvalue_test): Add some tests.
2215
2216         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2217         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2218         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2219         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2220         (dbus_g_value_free): Remove prototypes.
2221
2222         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2223         G_TYPE_VALUE_ARRAY.
2224
2225         * glib/examples/example-service.c:
2226         * glib/examples/example-client.c: Implement GetTuple.
2227
2228         * test/glib/test-dbus-glib.c:
2229         * test/glib/test-service-glib.c:
2230         * test/glib/test-service-glib.xml: Add structure tests.
2231
2232 2005-07-10  Colin Walters  <walters@verbum.org>
2233
2234         * doc/TODO: Knock off some GLib items with this patch.
2235
2236         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2237         (_dbus_gvalue_signals_error): New functions.
2238
2239         * glib/dbus-gvalue-utils.h: Prototype them.
2240
2241         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2242         and change to not output const/retval flags for input args.  All
2243         callers updated.
2244         (invoke_object_method): Refactor to handle return values.  Add
2245         some more comments in various places.  Remove debug g_print.
2246
2247         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2248
2249         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2250         Handle G_TYPE_NONE.
2251         (compute_gsignature): New function; refactored from code from
2252         compute_marshaller and compute_marshaller_name.  Enhance to
2253         handle return values and async ops more cleanly.  Update for
2254         async ops returning NONE instead of BOOLEAN.
2255         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2256         and output appropriate string.
2257         (generate_glue): Handle return value annotation.  Also don't dump
2258         constness flag for input arguments.
2259
2260         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2261         files shared between installed library and utilities.
2262         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2263         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2264         binding tool can access gtype utility functions.
2265
2266         * test/glib/test-service-glib.c: 
2267         * test/glib/test-service-glib.xml: 
2268         * test/glib/test-dbus-glib.c: Add some tests for return values.
2269
2270 2005-07-09  Colin Walters  <walters@verbum.org>
2271
2272         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2273         argument if available, not method.
2274
2275         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2276         (invoke_object_method): First, remove some redundant
2277         GValues (object_value, error_value) in favor of working on
2278         array directly.  Second, rework constness to be less buggy.
2279         Now we iterate directly over the argument metadata instead
2280         of parallel iterating over output signature and metadata.
2281
2282         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2283
2284         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2285         annotation on input args.
2286         
2287 2005-07-09  Colin Walters  <walters@verbum.org>
2288
2289         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2290         Define.
2291
2292         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2293         annotation.
2294
2295         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2296         (method_dir_signature_from_object_info): Handle arg_iterate change.
2297         (write_interface): Ditto.
2298         (lookup_object_info): Don't barf if format_version is > 0.
2299         (invoke_object_method): Handle arg constness.
2300
2301         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2302         (arg_info_new): Create.
2303         (arg_info_unref): Destroy.
2304         (arg_info_get_annotations, arg_info_get_annotation) 
2305         (arg_info_add_annotation): New functions.
2306
2307         * glib/dbus-gidl.h: Prototype them.
2308
2309         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2310         args, disallow them in properties.
2311         (parse_annotation): Handle arg annotations.
2312
2313         * test/glib/test-service-glib.xml: 
2314         * test/glib/test-service-glib.c: Update to make some methods
2315         const.
2316
2317 2005-07-08  Colin Walters  <walters@verbum.org>
2318
2319         * test/glib/test-service-glib.xml: 
2320         * test/glib/test-service-glib.c:
2321         * test/glib/test-dbus-glib.c: Test a{sv}.
2322
2323         * glib/examples/statemachine/statemachine.c:
2324         * glib/examples/statemachine/statemachine-server.c:
2325         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2326         add progress bar, etc.
2327
2328         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2329         needed anymore due to generic array/map marshalling.
2330         (dbus_g_value_types_init): Don't register basic arrays or the
2331         string/string hash.
2332         (dbus_gtype_from_signature_iter): Don't try to recurse into
2333         variants.
2334         (dbus_gtype_to_signature): Check collection/map before type
2335         metadata.
2336         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2337         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2338         generic map creation/append functions instead of hash table
2339         specifically.
2340         (get_type_demarshaller): Handle maps.
2341         (demarshal_collection): Dispatch on collection type to either
2342         demarshal_collection_ptrarray or demarshal_collection_array.
2343         (get_type_marshaller): Handle maps.
2344         (marshal_collection): Dispatch collection type to either
2345         marshal_collection_ptrarray or marshal_collection_array.
2346         (_dbus_gvalue_test): New test.
2347
2348         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2349         (hash_free_from_gtype): Use it to free GValues.
2350         (hashtable_append): New function.
2351         (ptrarray_append): Fix prototype.
2352         (slist_append): Ditto.
2353         (_dbus_gvalue_utils_test): Extend tests.
2354
2355         * glib/dbus-gtype-specialized.c
2356         (dbus_g_type_specialized_init_append): Renamed from
2357         dbus_g_type_specialized_collection_init_append.  Remove const from
2358         value, since we steal it.
2359         (dbus_g_type_specialized_map_append): New function.
2360
2361         * glib/dbus-gtype-specialized.h: Update prototypes.
2362         Add DBusGTypeSpecializedMapAppendFunc.
2363
2364         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2365         _dbus_gvalue_test.
2366         
2367         * glib/dbus-gtest.h: Prototype it.
2368
2369 2005-07-08  Ross Burton  <ross@openedhand.com>
2370
2371         * dbus/dbus-glib.h:
2372         Add DBysGAsyncData for the async bindings.
2373
2374         * glib/dbus-binding-tool-glib.c:
2375         Re-enable the async bindings.
2376
2377         * test/glib/test-dbus-glib.c:
2378         Add a test for the generated async bindings.
2379
2380 2005-07-08  Colin Walters  <walters@verbum.org>
2381
2382         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2383         connection concept.
2384         
2385 2005-07-08  Colin Walters  <walters@verbum.org>
2386         
2387         * tools/Makefile.am: Kill of print-introspect in favor of using
2388         dbus-send --print-reply=literal.
2389
2390         * test/glib/test-service-glib.xml: 
2391         * test/glib/test-service-glib.c (my_object_get_objs): New test
2392         for "ao".
2393
2394         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2395         (main): Test GetObjs.
2396
2397         * glib/examples/statemachine/Makefile.am:
2398         * glib/examples/statemachine/sm-marshal.list:
2399         * glib/examples/statemachine/statemachine-client.c:
2400         * glib/examples/statemachine/statemachine-server.c:
2401         * glib/examples/statemachine/statemachine-server.xml:
2402         * glib/examples/statemachine/statemachine.c:
2403         * glib/examples/statemachine/statemachine.h:
2404         * glib/examples/statemachine/statemachine.xml:
2405
2406         New example.
2407
2408         * glib/examples/example-service.c (main): Move invocation
2409         of dbus_g_object_type_install_info earlier, to emphasize it
2410         should only be done once.
2411
2412         * glib/examples/example-signal-emitter.c (main): Ditto.
2413
2414         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2415
2416         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2417         (dbus_gvalue_marshal): Update prototypes.
2418
2419         * glib/dbus-gvalue.c: Update all marshalling functions to take
2420         const GValue instead of GValue.
2421         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2422         types.
2423         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2424         change.
2425         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2426         Return a newly-allocated string.
2427         (demarshal_proxy, demarshal_object_path, demarshal_object)
2428         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2429         we get the wrong types from message.
2430         (get_type_demarshaller): New function, extracted from
2431         dbus_gvalue_demarshal.
2432         (demarshal_collection): New function, demarshals generic
2433         collection.
2434         (dbus_gvalue_demarshal): Just invoke result of
2435         get_type_demarshaller.  Throw error if we don't have one.
2436         (marshal_garray_basic): Abort on OOM.
2437         (get_type_marshaller): New function, extracted from
2438         dbus_gvalue_marshal.
2439         (collection_marshal_iterator, marshal_collection): New functions;
2440         implements generic marshalling for an iteratable specialized
2441         collection.
2442         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2443
2444         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2445         G_TYPE_STRING.
2446         (ptrarray_value_from_gvalue): Ditto.
2447         (ptrarray_append, ptrarray_free): New functions.
2448         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2449         (slist_append, slist_end_append, slist_free): New functions.
2450         (dbus_g_type_specialized_builtins_init): Add append fuctions
2451         for GPtrArray and GSList.  Register GSList.
2452         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2453
2454         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2455         New.
2456         (dbus_g_type_specialized_collection_init_append)
2457         (dbus_g_type_specialized_collection_append)
2458         (dbus_g_type_specialized_collection_end_append): Prototype.
2459         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2460         end_append_func.
2461
2462         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2463         (dbus_g_type_specialized_collection_append) 
2464         (dbus_g_type_specialized_collection_end_append): New functions.
2465         (dbus_g_type_map_value_iterate): Take const GValue.
2466         (dbus_g_type_collection_value_iterate): Ditto.
2467
2468         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2469         _dbus_gvalue_utils_test.
2470         
2471         * glib/dbus-gtest.h: Prototype it.
2472
2473         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2474         using uninitialized owner_list.
2475         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2476         public API.
2477         (dbus_g_proxy_end_call_internal): Update to use error set
2478         from dbus_gvalue_demarshal instead of setting it here.
2479         (dbus_g_proxy_begin_call): Move return_if_fail here.
2480
2481         * glib/dbus-gobject.c (write_interface): Update for
2482         dbus_gtype_to_signature returning new string.
2483
2484         * configure.in: Add glib/examples/statemachine.
2485
2486 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2487
2488         * configure.in: Add a configure option, --with-console-auth-dir
2489         
2490         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2491         new setting.  Patch from Kay Sievers.
2492
2493 2005-07-06  Colin Walters  <walters@verbum.org>
2494
2495         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2496         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2497         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2498         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2499         Delete in favor of dbus_g_proxy_begin_call and
2500         dbus_g_proxy_cancel_call.
2501         (DBusGProxyCall, DBusGProxyCallNotify): New.
2502         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2503         data, and destroy function.  This replaces
2504         dbus_g_pending_call_set_notify.
2505         (dbus_g_proxy_cancel_call): Prototype.
2506         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2507
2508         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2509         pending_calls map.
2510         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2511         internal proxy for calls to the bus. Remove
2512         pending_nameowner_calls, now the internal proxy keeps track.
2513         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2514         pending_nameowner_calls.
2515         (got_name_owner_cb): Update prototype, and use
2516         dbus_g_proxy_end_call.
2517         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2518         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2519         favor of using internal proxy.
2520         (dbus_g_proxy_manager_unregister): Update to use
2521         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2522         (dbus_g_proxy_init): Initialize pending calls map.
2523         (dbus_g_proxy_constructor): New.
2524         (dbus_g_proxy_class_init): Add get/set property functions,
2525         constructor, and add NAME, PATH, and INTERFACE properties.
2526         (cancel_pending_call): New function.
2527         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2528         cancel them.
2529         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2530         (GPendingNotifyClosure): New structure.
2531         (d_pending_call_notify, d_pending_call_free): Moved here from
2532         dbus-glib.c.
2533         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2534         ordering.
2535         (manager_begin_bus_call): New internal function for talking to
2536         internal bus proxy.
2537         (dbus_g_proxy_new): Construct object using GObjet properties.
2538         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2539         Create closure of same, and insert call into map of pending calls.
2540         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2541         call.  Look up pending call in current set.  Remove it when we've
2542         completed.
2543         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2544         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2545         and destroy function directly.
2546         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2547         (dbus_g_proxy_call): Invoke with NULL callback.
2548         (dbus_g_proxy_cancel_call): New function, replaces
2549         dbus_g_pending_call_cancel.
2550
2551         * glib/dbus-gparser.c (validate_signature): Fix call to
2552         dbus_set_g_error.
2553
2554         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2555         New quark for attaching metadata to GType.
2556         (info_hash): Delete.
2557         (lookup_object_info): Look up using quark.
2558         (dbus_g_object_type_install_info): Check that a type is classed,
2559         not that it's an object.  Also just install type data using quark
2560         instead of using global hash.
2561
2562         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2563         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2564         (GPendingNotifyClosure): Delete.
2565         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2566         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2567
2568         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2569         client method generation until we can fix it...
2570         
2571         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2572         (load_from_service_thread_func): Ditto.
2573
2574         * tools/dbus-names-model.c (struct NamesModel): Hold
2575         DBusGProxyCall.
2576         (have_names_notify): Update prototype, use
2577         dbus_g_proxy_cancel_call.
2578         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2579
2580         * tools/dbus-monitor.c (filter_func): Update for print_message
2581         API change.
2582
2583         * test/glib/test-dbus-glib.c: Add more tests for async
2584         invocations.  Update many begin_call/end_call pairs to just use
2585         dbus_g_proxy_call.
2586
2587         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2588         allows us to dump print-introspect.c.
2589
2590         * tools/dbus-print-message.h (print_message): Add literal argument
2591         to print_message which is intended to allow printing arguments without
2592         metadata like "string=".
2593
2594         * tools/dbus-print-message.c (print_iter): Add literal argument.
2595         (print_message): Allow printing string messages literally.
2596
2597 2005-07-05  Colin Walters  <walters@verbum.org>
2598
2599         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2600         Remove value refcount leak, original patch from Jorn Baayen
2601         <jorn@openedhand.com>.  Also remove useless extra value in favor
2602         of prepending to value array directly.
2603
2604 2005-07-02  Colin Walters  <walters@verbum.org>
2605
2606         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2607
2608 2005-07-01  Colin Walters  <walters@verbum.org>
2609
2610         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2611         
2612         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2613         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2614         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2615         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2616
2617 2005-06-30  Colin Walters  <walters@verbum.org>
2618
2619         * test/glib/test-dbus-glib.c:
2620         * test/glib/test-service-glib.c:
2621         * test/glib/test-service-glib.xml: Update tests for new error
2622         setting bits, also add async tests (patch from Ross Burton).
2623
2624         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2625         DBUS_GLIB_THREADS_LIBS.
2626
2627         * glib/dbus-gproxy.c (get_name_owner)
2628         (dbus_g_pending_call_end_valist): Ditto.
2629
2630         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2631         domain (GQuark) to DBusGErrorInfo.  
2632         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2633         quark in error_metadata.  Take message interface as default
2634         error message interface.
2635         (gerror_to_dbus_error_message): Pass message interface.
2636         (dbus_set_g_error): Resurrected.
2637         (dbus_g_error_info_free): New function.
2638         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2639         of _peek to actually create the object class if it hasn't been
2640         created yet.
2641         (dbus_g_error_domain_register): New function.
2642
2643         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2644
2645         * glib/dbus-gparser.c (validate_signature): Ditto.
2646
2647         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2648         (dbus_g_error_domain_register): Prototype.
2649
2650         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2651         Update tests.
2652
2653 2005-06-29  Colin Walters  <walters@verbum.org>
2654
2655         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2656         DBUS_TYPE_G_OBJECT_PATH.
2657
2658         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2659         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2660         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2661         (dbus_g_object_path_get_g_type): New function.
2662         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2663         to DBUS_TYPE_G_OBJECT_PATH by default.
2664         (demarshal_proxy): Remove unused name variable.
2665         (demarshal_object_path, marshal_object_path): New functions.
2666         (demarshal_proxy_array, marshal_proxy_array): Delete.
2667         
2668         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2669         DBUS_TYPE_G_OBJECT_PATH to char *.
2670         (dbus_g_type_get_lookup_function): Map builtin
2671         DBUS_TYPE_G_OBJECT_PATH.
2672
2673         * test/glib/test-dbus-glib.c
2674         * test/glib/test-service-glib.c (my_object_objpath): 
2675         Adapt tests to new object path marshalling.
2676
2677 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2678
2679         * configure.in: force check for Python >= 2.4
2680
2681 2005-06-29  Colin Walters  <walters@verbum.org>
2682         
2683         Patch from Ross Burton <ross@openedhand.com>
2684         
2685         * glib/dbus-gobject.c (invoke_object_method): Unset object
2686         value in all cases, not only in async case.
2687
2688 2005-06-29  Colin Walters  <walters@verbum.org>
2689
2690         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2691         name_call for keeping track of any outgoing GetNameOwner call.
2692         Also add for_owner and associated.
2693         (struct _DBusGProxyManager): Add owner_names, which is hash table
2694         that maps a base name to a list of names it owns (that we're
2695         interested in).  Add pending_nameowner_calls which is a list of
2696         all outstanding GetNameOwner; avoids us having to iterate over
2697         every proxy.  Add unassociated_proxies which keeps track of name
2698         proxies with no associated name owner.
2699         (dbus_g_proxy_manager_unref): Destroy owner_names.
2700         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2701         name refcounts.
2702         (find_name_in_info, name_owner_foreach)
2703         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2704         (dbus_g_proxy_manager_monitor_name_owner)
2705         (dbus_g_proxy_manager_unmonitor_name_owner)
2706         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2707         New functions; they manipulate the owner_names mapping.
2708         (got_name_owner_cb): New function.
2709         (get_name_owner): New function, extracted from
2710         dbus_g_proxy_new_for_name_owner.
2711         (dbus_g_proxy_manager_register): For now we need to keep track of
2712         all NameOwnerChanged.  Also if the proxy is for a name, if we
2713         don't already know the name owner, queue a new GetNameOwner
2714         request and add it to our list of unassociated proxies.  Otherwise
2715         inc the refcount.
2716         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2717         cancel any pending GetNameOwner call, etc.
2718         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2719         the owner_names mapping to look up the current names for the
2720         signal source, and dispatch to any proxies for that name.
2721         (dbus_g_proxy_new): Initialize new members.
2722         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2723         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2724         (dbus_g_pending_call_end_valist): New function, extracted from
2725         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2726         but want to use the GLib infrastructure.  Also note how many
2727         arguments in reply were over.
2728         (dbus_g_pending_call_end): New function, just call
2729         dbus_g_pending_call_end_valist.
2730         (dbus_g_proxy_end_call_internal): Just call
2731         dbus_g_pending_call_end_valist.
2732
2733         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2734         of builtin marshaller for STRING_STRING_STRING.
2735
2736         * test/glib/test-dbus-glib.c: 
2737         * test/glib/test-service-glib.c:
2738         * test/glib/test-service-glib.xml:
2739         Extend tests to cover name proxies, destruction of owner proxies,
2740         etc.
2741         
2742         * glib/examples/example-signal-recipient.c
2743         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2744         
2745         * tools/dbus-send.c (main): Print D-BUS error name in addition
2746         to message.
2747
2748 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2749
2750         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2751         cmessage_function_handler): Patch from 
2752         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2753         by using the Py_GILState_Ensure/Release to synchronize with the
2754         python runtime.
2755         
2756 2005-06-28  Ray Strode  <rstrode@redhat.com>
2757
2758         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2759         babysitter helper process on last unref, bug #2813.
2760
2761 2005-06-27  Colin Walters  <walters@verbum.org>
2762
2763         * test/glib/test-dbus-glib.c: 
2764         * test/glib/test-service-glib.c:
2765         * test/glib/test-service-glib.xml:
2766         Test hash table signal emitting.
2767
2768         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2769         types to their fundamental basis types, since this is what
2770         marshallers operate on.  Also add an entry for VOID__BOXED.
2771         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2772
2773 2005-06-26  Havoc Pennington  <hp@redhat.com>
2774
2775         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2776         from Don Park
2777
2778 2005-06-26  Colin Walters  <walters@verbum.org>
2779
2780         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2781         (dbus_g_error_set): New public function from its ashes; used by
2782         both service-side method implementation and GLib bindings
2783         internals.
2784         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2785         (_dbus_glib_test): Add some tests.
2786
2787         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2788
2789         * test/glib/test-service-glib.c (my_object_throw_error): Use
2790         dbus_g_error_set.
2791
2792         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2793         errors thrown by dbus_g_error_set.
2794
2795         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2796
2797         * glib/dbus-gparser.c (validate_signature): Ditto.
2798
2799         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2800         (dbus_g_proxy_end_call_internal): Ditto.
2801
2802         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2803         converts DBUS_ERROR_x to DBUS_GERROR_x.
2804         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2805
2806         * doc/TODO: Remove error TODO.
2807
2808         * doc/dbus-tutorial.xml: Update with documentation about error
2809         handling.
2810
2811         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2812         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2813         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2814
2815 2005-06-22  Colin Walters  <walters@verbum.org>
2816         
2817         Patch from Ross Burton <ross@openedhand.com>
2818
2819         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2820
2821 2005-06-20  Colin Walters  <walters@verbum.org>
2822
2823         * configure.in: Add glib/examples.
2824
2825         * glib/Makefile.am: Add examples/
2826
2827         * glib/examples/.cvsignore
2828         * glib/examples/Makefile.am
2829         * glib/examples/example-client.c
2830         * glib/examples/example-service.c
2831         * glib/examples/example-service.xml
2832         * glib/examples/example-signal-emitter.c
2833         * glib/examples/example-signal-emitter.xml
2834         * glib/examples/example-signal-recipient.c:
2835         New files; GLib binding examples, ported from
2836         python/examples.
2837
2838 2005-06-20  Colin Walters  <walters@verbum.org>
2839
2840         * dbus/dbus-glib.h: 
2841         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2842         dbus_g_proxy_call.
2843
2844         * glib/dbus-binding-tool-glib.c: 
2845         * doc/dbus-tutorial.xml: 
2846         * test/glib/test-dbus-glib.c: Update for rename.
2847         
2848 2005-06-20  Colin Walters  <walters@verbum.org>
2849
2850         Patch suggested by Ross Burton <ross@openedhand.com>
2851
2852         * glib/dbus-gobject.c (export_signals): Free signal name.
2853         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2854         memory leak.  Add a bit of documentation.
2855         (dbus_g_method_return_error): Free context, and note we do
2856         so.
2857
2858 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2859
2860         * dbus/dbus-glib.h:
2861         * glib/dbus-gobject.c:
2862         * glib/dbus-gproxy.c:
2863         * glib/dbus-gvalue.c: Predeclare structs as 
2864         typedef struct _Something Something instead of 
2865         typedef struct Something Something, so we can 
2866         redeclare the prototypes. Other GNOME libraries 
2867         do this already.
2868
2869 2005-06-17  Colin Walters  <walters@verbum.org>
2870
2871         * tools/dbus-names-model.c (have_names_notify): Fix call
2872         to dbus_g_proxy_end_call.
2873         
2874 2005-06-17  Colin Walters  <walters@verbum.org>
2875
2876         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2877         spew warnings if we get malformed remote signals.
2878
2879         * glib/dbus-gobject.c (propsig_iterate): New function.
2880         (lookup_object_info): New function, extracted from
2881         lookup_object_and_method.
2882         (introspect_properties, introspect_signals): Delete; these
2883         are merged into write_interface.
2884         (write_interface): Write out signals and properties here;
2885         dump the org.gtk.object stuff and use the interface given
2886         in the introspection data blob.  Also fix up property XML.
2887         (lookup_values): New function.
2888         (introspect_interfaces): Gather a mapping from interface to a
2889         list of its methods, signals, and properties, then write out
2890         each interface.
2891         (lookup_object_and_method): Use lookup_object_info.
2892         (struct DBusGSignalClosure): Add interface.
2893         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2894         we can just use the constant data.
2895         (dbus_g_signal_closure_finalize): Don't free signal name.
2896         (signal_emitter_marshaller): Use interface from signal closure.
2897         (export_signals): Only export signals mentioned in introspection
2898         blob.
2899         (dbus_g_connection_register_g_object): Warn if we have no
2900         introspection data for an object.
2901         (funcsig_equal): Remove unused variable.
2902         (dbus_g_object_register_marshaller): Take varargs instead of
2903         list.
2904         (dbus_g_object_register_marshaller_array): New function,
2905         extracted from old dbus_g_object_register_marshaller.
2906
2907         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2908         signals and property data.
2909         (write_quoted_string): New function, extracted from generate_glue.
2910         (generate_glue): Write signals and properties to introspection
2911         blob.
2912
2913         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2914         exported_signals and exported_properties.
2915         (dbus_g_object_register_marshaller): Update prototype.
2916         (dbus_g_object_register_marshaller_array): Prototype.
2917         
2918         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2919
2920         * test/glib/test-service-glib.c: Add new test signals and method
2921         to emit them.
2922
2923         * test/glib/test-service-glib.xml: Add some test signals.
2924
2925         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2926         and my-object-marshal.h
2927         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2928         my-object-marshal.c.
2929         (my-object-marshal.c, my-object-marshal.h): Implement.
2930
2931         * test/glib/.cvsignore: Update.
2932
2933         * doc/TODO: Remove two GLib TODO items fixed by this
2934         patch.
2935
2936 2005-06-16  Colin Walters  <walters@verbum.org>
2937
2938         * doc/TODO: Update for GLib bindings.
2939         
2940 2005-06-16  Colin Walters  <walters@verbum.org>
2941
2942         * glib/dbus-binding-tool-glib.c:
2943         * glib/dbus-gobject.c:
2944         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2945         from Ross Burton, for his GLib bindings work.
2946
2947 2005-06-16  Colin Walters  <walters@verbum.org>
2948
2949         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2950         to iterate instead of walking to G_TYPE_INVALID.
2951
2952         Patch based on a patch from Ryan Gammon.
2953
2954 2005-06-16  Colin Walters  <walters@verbum.org>
2955
2956         * bus/bus.c (bus_context_new): Set parser to NULL
2957         after we unref it (Patch from Chris Boscolo, #2174).
2958         
2959 2005-06-16  Colin Walters  <walters@verbum.org>
2960
2961         * python/dbus_bindings.pyx.in: Import size_t,
2962         __int64_t, __uint64_t, and __signed.
2963
2964         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2965         Define cmsg struct, output it.
2966         (_dbus_read_credentials_unix_socket):
2967         Use cmsg struct.
2968         
2969         Patch from Joe Markus Clarke for FreeBSD support.
2970         
2971 2005-06-16  Colin Walters  <walters@verbum.org>
2972
2973         * tools/dbus-send.c (append_array): Use strtok.
2974         (append_dict): New function.
2975         (type_from_name): New function, extracted from main.
2976         (main): Handle sending dicts.
2977
2978         * tools/dbus-print-message.c (print_iter): Print dict
2979         entries.
2980         
2981 2005-06-16  Colin Walters  <walters@verbum.org>
2982
2983         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2984         values as the empty string (#2948).
2985         
2986 2005-06-16  Colin Walters  <walters@verbum.org>
2987
2988         * dbus/Makefile.am:
2989         * mono/doc/Makefile.am:
2990         * test/glib/Makefile.am:
2991
2992         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2993
2994 2005-06-16  Colin Walters  <walters@verbum.org>
2995
2996         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2997         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2998
2999         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3000         Increment pointer after swapping fixed array.  Add assertion
3001         for array length.
3002                 
3003 2005-06-15  Colin Walters  <walters@verbum.org>
3004
3005         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3006         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3007         
3008 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3009
3010         * NEWS: Update to 0.34
3011
3012 2005-06-15  David Zeuthen  <davidz@redhat.com>
3013
3014         * configure.in (LT_CURRENT): Revert back to 1 as the library
3015         hasn't changed and we've certainly not committed to protocol
3016         stability yet.  All this does is to break ABI. See commit note
3017         from hp@redhat.com 2005-05-05 for details.
3018         
3019 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3020
3021         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3022         (_dbus_connection_run_builtin_filters): New method
3023         (dbus_connection_dispatch): Run the builtin filters which in turn
3024         runs the peer filter which handles Ping messages.
3025
3026         * doc/TODO: 
3027          - Ping isn't handled: This patch fixes it
3028          
3029          - Add a test case for the Ping message: added TODO item
3030
3031 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3032
3033         * dbus/dbus-message.c:
3034         (dbus_message_has_path): New method
3035         (dbus_message_has_interface): New method
3036         (dbus_message_has_member): New method
3037
3038         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3039         New method
3040
3041         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3042         the keyring directory is private to the user
3043
3044         * doc/TODO:
3045          - The convenience functions in dbus-bus.h should perhaps have
3046          the signatures that they would have if they were autogenerated
3047          stubs. e.g. the acquire service function. We should also evaluate
3048          which of these functions to include, in light of the fact that
3049          GLib/Qt native stubs will probably also exist.: Punted
3050
3051          - add dbus_message_has_path(), maybe has_member/interface:
3052          fixed in this patch
3053
3054          - in dbus-keyring.c, enforce that the keyring dir is not
3055          world readable/writable: Fixed in this patch
3056
3057 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3058
3059         * dbus/dbus-marshal-validate.h: Added a new validation
3060         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3061         out of memory errors when validating signitures
3062
3063         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3064         in places where we previously used DBUS_VALID and a FALSE return 
3065         value to indicate OOM
3066         
3067         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3068         Use a stack to track the number of elements inside containers.  The 
3069         stack values are then used to validate that dict entries have only two
3070         elements within them.
3071         (validate_body_helper): check the reason for failure when validating
3072         varients
3073         
3074         * dbus/dbus-message.c (load_message): use 
3075         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3076         DBUS_VALID and a FALSE return value to indicate OOM
3077
3078         * doc/TODO: remove "- validate dict entry number of fields" as this
3079         patch fixes it
3080
3081 2005-06-14  David Zeuthen  <davidz@redhat.com>
3082
3083         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3084         watches (if applicable) and add new watches
3085
3086         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3087         (main): Setup SIGIO signal handler if using D_NOTIFY
3088
3089         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3090
3091         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3092         (merge_included): Also merge conf_dirs list
3093         (bus_config_parser_unref): Clear conf_dirs list
3094         (include_dir): Add directory to conf_dirs list
3095         (bus_config_parser_get_conf_dirs): New function
3096
3097         * bus/dir-watch.[ch]: New files
3098
3099         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3100
3101         * configure.in: Add checks for D_NOTIFY on Linux
3102
3103 2005-06-14  Colin Walters  <walters@verbum.org>
3104
3105         * glib/dbus-binding-tool-glib.c:
3106         * glib/dbus-gobject.c:
3107         * glib/dbus-gvalue.c: Fix indentation and brace style.
3108         
3109 2005-06-14  Ross Burton <ross@openedhand.com>.
3110
3111         * glib/dbus-glib.h: Make DBusGMethodInvocation
3112         a private structure.  Rearrange prototypes a bit.
3113         
3114         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3115         documentation for first_arg_type.
3116         
3117         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3118         here, add documentation.  Move dbus_g_method_return
3119         and dbus_g_method_return_error into public API
3120         section.
3121
3122 2005-06-14  Colin Walters  <walters@verbum.org>
3123
3124         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3125         Add missing return statements, noticed by Ross Burton.
3126         
3127 2005-06-13  Ross Burton <ross@openedhand.com>.
3128
3129         * glib/dbus-gobject.c: Handle errors on message
3130         demarshalling by sending error message back.
3131         * glib/dbus-gvalue.c: Initialize return variables.
3132
3133 2005-06-13  Colin Walters  <walters@verbum.org>
3134
3135         * glib/Makefile.am: Fix thinko in last patch.
3136
3137 2005-06-13  Colin Walters  <walters@verbum.org>
3138
3139         * glib/Makefile.am: Move dbus-gtype-specialized.c
3140         and dbus-gtype-specialized.h into a _HEADERS variable,
3141         install them.
3142
3143 2005-06-12  Colin Walters  <walters@verbum.org>
3144
3145         Async signals and various bugfixes and testing by
3146         Ross Burton <ross@openedhand.com>.
3147
3148         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3149         (dbus_gvalue_genmarshal_name_from_type)
3150         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3151         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3152         (dbus_g_value_types_init, dbus_gtype_from_signature)
3153         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3154         (dbus_gtypes_from_arg_signature): New function prototypes.
3155         (dbus_gvalue_demarshal): Take context and error arguments.
3156         (dbus_gvalue_demarshal_variant): New function.
3157         (dbus_gvalue_demarshal_message): New function.
3158         (dbus_gvalue_store): Delete.
3159
3160         * glib/dbus-gvalue.c:
3161
3162         File has been almost entirely rewritten; now we special-case
3163         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3164         hash tables correctly, etc.  Full support for recursive values
3165         is not yet complete.
3166
3167         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3168         argument of signal to G_TYPE_POINTER since we now pass a
3169         structure.
3170         (lookup_g_marshaller): Delete in favor of
3171         _dbus_gobject_lookup_marshaller.
3172         (marshal_dbus_message_to_g_marshaller): Use
3173         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3174         to handle remote signal callbacks.
3175         (dbus_g_proxy_new_from_proxy): New function; creates a new
3176         DBusGProxy by copying an existing one.
3177         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3178         (dbus_g_proxy_get_path): New functions.
3179         (dbus_g_proxy_marshal_args_to_message): New function;
3180         factored out of existing code.
3181         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3182         from a varargs array.
3183         (dbus_g_proxy_begin_call_internal): New function.
3184         (dbus_g_proxy_end_call_internal): New function.
3185         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3186         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3187         after collecting args into value array.
3188         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3189         invoke dbus_g_proxy_end_call_internal.
3190         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3191         end_call_internal.
3192         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3193         types.
3194         (array_free_all): New function.
3195         (dbus_g_proxy_add_signal): Take GTypes.
3196
3197         * glib/dbus-gobject.h:
3198         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3199         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3200         Prototype.
3201
3202         * glib/dbus-gobject.c: Add a global marshal_table hash which
3203         stores mappings from type signatures to marshallers.  Change lots
3204         of invocations of dbus_gtype_to_dbus_type to
3205         dbus_gtype_to_signature.
3206         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3207         (introspect_signals): Fix test for query.return_type.
3208         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3209         (invoke_object_method): Many changes.  Handle asynchronous
3210         invocations.  Convert arguments with
3211         dbus_gvalue_demarshal_message.  Handle errors.  Use
3212         DBusSignatureIter instead of strlen on args. Handle all arguments
3213         generically.  Special-case variants.
3214         (dbus_g_method_return, dbus_g_method_return_error): New function.
3215         (DBusGSignalClosure): New structure, closes over signal
3216         information.
3217         (dbus_g_signal_closure_new): New function.
3218         (dbus_g_signal_closure_finalize): New function.
3219         (signal_emitter_marshaller): New function; is special marshaller
3220         which emits signals on bus.
3221         (export_signals): New function; introspects object signals and
3222         connects to them.
3223         (dbus_g_object_type_install_info): Take GType instead of
3224         GObjectClass.
3225         (dbus_g_connection_register_g_object): Invoke export_signals.
3226         (dbus_g_connection_lookup_g_object): New function.
3227         (DBusGFuncSignature) New structure; used for mapping type
3228         signatures to marshallers.
3229         (funcsig_hash): New function; hashes DBusGFuncSignature.
3230         (funcsig_equal): New function; compares DBusGFuncSignature.
3231         (_dbus_gobject_lookup_marshaller): New function.
3232         (dbus_g_object_register_marshaller): New function; used to
3233         register a marshaller at runtime for a particular signature.
3234
3235         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3236
3237         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3238         which notes a server method implementation should be
3239         asynchronous.
3240
3241         * glib/dbus-binding-tool-glib.c
3242         (dbus_binding_tool_output_glib_server): Call
3243         dbus_g_value_types_init.
3244         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3245         variants specially.
3246         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3247         of a lookup function.
3248         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3249         (write_untyped_out_args): New method; write output arguments.
3250         (write_formal_declarations_for_direction): Function for
3251         writing prototypes.
3252         (write_formal_parameters_for_direction): Function for
3253         writing implementations.
3254         (write_typed_args_for_direction): Function for writing
3255         arguments prefixed with GTypes.
3256         (write_async_method_client): Write out async version
3257         of method.
3258
3259         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3260         (dbus_g_type_get_marshal_name): Move mapping from GType
3261         to marshal name into here.
3262         (dbus_g_type_get_c_name): Move into here.
3263         (compute_marshaller): Convert signature to type with
3264         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3265         (compute_marshaller_name): Ditto.
3266         (compute_marshaller): Handle async signal annotations.
3267         (gather_marshallers): Return if we don't have a known
3268         prefix.
3269         (generate_glue): Collect introspection blob here, and
3270         write all of the blob at the end.  This allows an object
3271         with multiple interfaces to work.
3272         Mark async methods in introspection blob.
3273
3274         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3275         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3276         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3277
3278         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3279         avoids people accidentally using DBUS_TYPE_* which should
3280         not be necessary anymore.
3281         Do include dbus-gtype-specialized.h, which are utilities
3282         for GLib container types.
3283         Add various #defines for types such as
3284         DBUS_TYPE_G_BOOLEAN_ARRAY.
3285         (DBusGValueIterator, DBusGValue): Define, not fully used
3286         yet.
3287         (dbus_g_value_get_g_type): Type for recursive value.
3288         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3289         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3290         (dbus_g_value_free): Prototypes.
3291         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3292         (dbus_g_proxy_set_interface): Prototype.
3293         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3294         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3295         types.
3296         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3297         Accessors.
3298         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3299         doing async invocations.
3300         (dbus_g_method_return, dbus_g_method_return_error):
3301         Prototypes.
3302         * doc/dbus-tutorial.xml: Update GLib section.
3303         
3304         * tools/dbus-viewer.c (load_child_nodes): Update
3305         for new invocation type of dbus_g_proxy_end_call.
3306         (load_from_service_thread_func): Ditto.
3307
3308         * tools/print-introspect.c (main): Ditto.
3309
3310         * tools/dbus-names-model.c (have_names_notify)
3311         (names_model_reload, names_model_set_connection)
3312         Use GTypes.
3313
3314         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3315         needed since Python bindings use GLib bindings.
3316
3317         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3318         Add --prefix argument.
3319
3320         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3321         unneeded --ignore-unsupported arg.
3322         
3323         * test/glib/test-service-glib.c: 
3324         * test/glib/test-service-glib.xml:
3325         * test/glib/test-dbus-glib.c: Add many more tests.
3326
3327 2005-06-06  David Zeuthen  <davidz@redhat.com>
3328
3329         * doc/TODO: Add item about need to remove deprecated functions.
3330
3331         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3332
3333         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3334         to repair the ABI which was broken with the last commit.
3335
3336 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3337
3338         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3339         (dbus_connection_disconnect): renamed to dbus_connection_close 
3340         for API symmetry with dbus_connection_open
3341         (_dbus_connection_open_internal): 
3342         s/dbus_connection_disconnect/dbus_connection_close
3343
3344         * dbus/dbus-bus.c (dbus_bus_get):
3345         s/dbus_connection_disconnect/dbus_connection_close
3346
3347         * bus/connection.c (bus_connections_unref, 
3348         bus_connections_setup_connection, bus_connections_expire_incomplete):
3349         s/dbus_connection_disconnect/dbus_connection_close
3350
3351         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3352         kill_client_connection_unchecked, check_hello_connection):
3353         s/dbus_connection_disconnect/dbus_connection_close
3354
3355         * bus/bus.c (new_connection_callback):
3356         s/dbus_connection_disconnect/dbus_connection_close
3357
3358         * tools/dbus-send.c (main):
3359         s/dbus_connection_disconnect/dbus_connection_close
3360
3361         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3362         s/dbus_connection_disconnect/dbus_connection_close
3363         
3364         * test/test-service.c (path_message_func, filter_func):
3365         s/dbus_connection_disconnect/dbus_connection_close
3366         
3367         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3368         
3369 2005-05-25  Colin Walters  <walters@verbum.org>
3370
3371         * dbus/dbus-protocol.h: Move various bus service #defines such
3372           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3373           dbus/dbus-shared.h.
3374         * dbus/dbus-shared.h: Various defines moved here.
3375         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3376
3377 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3378
3379         * python/__init__.py: Python bindings deserve a minor version
3380         update.  Upped to (0, 40, 2)
3381
3382 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3383
3384         * python/decorators.py: add explicitly_pass_message decorator
3385         for passing in the dbus message as keyword for edge case signal
3386         handling
3387
3388         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3389         to conform with what dbus expects for match rules
3390         (SignalMatchRule.execute): add the dbus message as a keyword
3391         if the signal handler has requested it
3392
3393         * python/examples/example/signal-recipient.py: added some more
3394         examples on how to hook up to signals
3395
3396 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3397
3398         * python/decorators.py: import dbus_bindings
3399
3400         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3401         SignalMatchNode): new classes that implement wildcard signal
3402         callback matching using a tree lookup. Heavily modified from a
3403         patch sent by Celso Pinto (fd.o bug #3241)
3404
3405         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3406         use new match classes to handle signals.
3407
3408 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3409         
3410         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3411
3412 2005-05-18  Havoc Pennington  <hp@redhat.com>
3413
3414         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3415         gettext. Not really worth requiring yet perhaps, but any
3416         production quality 1.0 would require it so we should go ahead and
3417         get things set up. We do have a couple token calls to
3418         bindtextdomain in the code already.
3419
3420 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3421
3422         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3423         when using recursive g_main_loops
3424
3425         * python/_dbus.py (class Bus): add the ProxyObjectClass
3426         alias for ProxyObject to make it easier for the Twisted 
3427         networking framework to integrate dbus.
3428
3429         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3430         alias for ProxyMethod to make it easier for the Twisted 
3431         networking framework to integrate dbus. 
3432
3433 2005-05-11  Ross Burton  <ross@openedhand.com>
3434
3435         * glib/dbus-glib-tool.c: Add --prefix argument.
3436         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3437         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3438         Add prefix argument.
3439         (generate_glue): Pass prefix argument down.
3440         (dbus_binding_tool_output_glib_server): Pass prefix to
3441         glib-genmarshal.
3442         
3443 2005-05-11  Colin Walters  <walters@verbum.org>
3444
3445         * tools/dbus-send.c (append_array): New function.
3446         (append_arg): Broken out from main.
3447         (main): Add cheesy hack to send arrays and variants.
3448         (usage): Update.
3449         * tools/dbus-print-message.c (print_iter): Broken out
3450         from main.
3451
3452 2005-05-11  Colin Walters  <walters@verbum.org>
3453
3454         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3455         New function, returns signature string for signature iter.
3456         * dbus/dbus-signature.h: Prototype it.
3457         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3458         New function, returns signature string for message iter.
3459         (dbus_message_iter_get_array_len): New function, returns
3460         length of array.
3461         (dbus_message_iter_get_fixed_array): Fix assertion; this
3462         function should be used when the iter is pointing to the
3463         contents of an array
3464         * dbus/dbus-message.h: Prototypes.
3465         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3466         New function; returns length of an array.
3467         * dbus/dbus-marshal-recursive.h: Prototype it.
3468         
3469 2005-05-11  Colin Walters  <walters@verbum.org>
3470
3471         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3472         compilation error.
3473         
3474 2005-05-08  Havoc Pennington  <hp@redhat.com>
3475
3476         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3477         daemon's pid, not the parent's pid, to the file descriptor.
3478         Reported by Taj Morton.
3479
3480 2005-05-05  Havoc Pennington  <hp@redhat.com>
3481
3482         * configure.in (LT_*): add notes on how the libtool versioning
3483         works to save thinking. Increment soname to indicate protocol
3484         breakage (though really the library interface hasn't changed I
3485         guess)
3486
3487         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3488         verify the GUID received from server matches what we were
3489         expecting, if we had an expectation
3490
3491         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3492         (_dbus_auth_get_guid_from_server): new function
3493         (send_begin): parse the OK args
3494
3495         * doc/dbus-specification.xml: add GUID to the auth protocol
3496
3497 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3498
3499         * Fix my name in previous changelog ;)
3500
3501         * python/proxies.py (ProxyObject.__getattr__): add further patch
3502         from Anthony Baxter to throw an AttributeError when python 
3503         __special__ functions are called instead of marshling them over 
3504         the bus (Bug#1685 comment 3).
3505
3506 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3507
3508         * python/Makefile.am: changed to use pyexecdir for the binding
3509         shared libraries (Bug#2494)
3510
3511         * python/exceptions.py: bring exceptions over from the bindings
3512         so they can be used in applications (Bug#2036)
3513         Make all exceptions derive from DBusException
3514
3515         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3516         of classes so that print obj doesn't throw an exception (Bug #1685)
3517
3518 2005-05-03  Ross Burton  <ross@openedhand.com>
3519
3520         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3521         Return if we get an error during registration.  Set up a
3522         weak reference on object to unregister if object is destroyed.
3523         (unregister_gobject): New function.
3524         
3525 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3526
3527         * python/dbus_bindings.pyx.in: 
3528         - added new type classes for hinting to the marashaler what type 
3529         to send over the wire
3530         - added int16 and uint16 marshalers
3531         - Fixed a bug in the type constants that caused int32 to go out
3532         as uint16 over the wire
3533         * python/dbus.py: split up into different files and renamed _dbus.py
3534         * python/__init__.py, python/_util.py, python/decorators.py, 
3535         python/exceptions.py, python/proxies.py, python/services.py,
3536         python/types.py: new files split off from dbus.py
3537         * python/Makefile.am: Add new files, remove dbus.py and 
3538         install all python files to <python module dir>/dbus
3539         * python/examples/*: Added #!/usr/bin/env python to the top of
3540         every example.  Patch provided by Tatavarty Kalyan
3541
3542 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3543
3544         * NEWS: Update to 0.33
3545
3546 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3547
3548         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3549         method for doing async calls
3550         (_pending_call_notification): New C function for handling pendning call
3551         callbacks
3552         (set_notify): New method for setting pending call notification
3553         
3554         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3555         Async capabilities added to remote method calls
3556         (Sender): class removed
3557         (RemoteService): class removed
3558         (ObjectTree): class removed for now
3559         (RemoteObject): Renamed to ProxyObject
3560         (RemoteMethod): Renamed to ProxyMethod
3561         (method): Decorator added for decorating python methods as dbus methods
3562         (signal): Decorator added for decorating python methods as signal emitters
3563         (ObjectType): Metaclass added for generating introspection data and the
3564         method callback vtable
3565         (Interface): Wrapper class added to wrap objects in a dbus interface
3566         (Object): Uses ObjectType as its metaclass and exports Introspect
3567         of the org.freedesktop.DBus.Introspectable interface
3568         (ValidationException, UnknownMethodException): new exceptions
3569
3570         * python/examples/*: Modified to fit with the new bindings
3571
3572 2005-04-23  Havoc Pennington  <hp@redhat.com>
3573
3574         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3575         reported by Tony Houghton
3576
3577         * test/test-service.c (main): test
3578         dbus_connection_get_object_path_data()
3579
3580         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3581         the exact_match
3582         (_dbus_object_tree_get_user_data_unlocked): new function used by
3583         dbus_connection_get_object_path_data()
3584         (do_register): add assertion test for get_user_data_unlocked
3585         (object_tree_test_iteration): more tests
3586
3587         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3588         new function from Dan Reed to let you get the user data from 
3589         dbus_connection_register_object_path()
3590
3591 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3592
3593         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3594         in numerous places that did not account for the NULL terminator
3595         (signature_from_seed): changed the manual string copy loop to 
3596         just use strcpy instead
3597         make check should now pass
3598
3599 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3600
3601         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3602         so that it allows messages that are not signals to pass in 
3603         NULL as the interface.
3604
3605 2005-04-18  David Zeuthen  <davidz@redhat.com>
3606
3607         * glib/dbus-gmain.c (io_handler_destroy_source): 
3608         (timeout_handler_destroy_source, connection_setup_free): 
3609         Also unref the source to avoid memory leaks.
3610
3611 2005-04-13  David Zeuthen  <davidz@redhat.com>
3612
3613         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3614         more reasonable, yet still totally arbitrary, value :-). 
3615
3616 2005-04-13  David Zeuthen  <davidz@redhat.com>
3617
3618         * doc/TODO: Added an "important for 1.0" item about selinux
3619         allow/deny messages
3620
3621 2005-04-13  David Zeuthen  <davidz@redhat.com>
3622
3623         * bus/selinux.c: Add c-file-style to top of file
3624         (log_audit_callback): Don't free the data here anymore
3625         (bus_selinux_check): Don't take spid and tpid since appending
3626         that to auxdata may OOM.
3627         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3628         to the caller if we are OOM by taking an error object.
3629         (bus_selinux_allows_send): -do-
3630
3631         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3632         and bus_selinux_allows_send
3633
3634         * bus/bus.c (bus_context_check_security_policy): Pass error and
3635         pass on OOM thrown by bus_selinux_allows_send()
3636
3637         * bus/services.c (bus_registry_acquire_service): Pass error and
3638         pass on OOM thrown by bus_selinux_allows_acquire_service()
3639
3640 2005-04-13  Havoc Pennington  <hp@redhat.com>
3641
3642         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3643         message at a time to avoid monopolizing the main loop, bug 
3644         #2953 from Benjamin Otte
3645
3646 2005-04-09  Havoc Pennington  <hp@redhat.com>
3647
3648         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3649         possible overlap, fix from Daniel Reed
3650         (fixup_alignment): fix signedness warnings
3651         (_dbus_string_append_unichar): ditto
3652
3653 2005-04-09  Havoc Pennington  <hp@redhat.com>
3654
3655         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3656
3657         * glib/dbus-glib-tool.c (main): fix warning
3658
3659         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3660
3661         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3662         add a new function that can be used in simple applications that
3663         don't have a main loop and are willing to block
3664
3665 2005-04-05  David Zeuthen  <davidz@redhat.com>
3666
3667         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3668
3669         * glib/dbus-gmain.c:
3670         (io_handler_destroy_source): Remove from list of IO handlers
3671         of the ConnectionSetup object
3672         (timeout_handler_destroy_source): -do- for timeout handlers
3673         (io_handler_source_finalized): Don't remove from list since
3674         we now do that in io_handler_destroy_source(). Renamed from
3675         io_handler_source_destroyed
3676         (timeout_handler_source_destroyed): -do- for timeout handlers
3677         (connection_setup_free): It is now safe to iterate over all
3678         IO and timeout handlers as the _destroy_source removes them
3679         from the list synchronously
3680
3681 2005-03-30  Havoc Pennington  <hp@redhat.com>
3682
3683         * configure.in: change check to gtk 2.4
3684
3685         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3686         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3687         to 2.4
3688
3689 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3690
3691         * News: Update 0.32
3692
3693         * HACKING: Fixed realease instructions.  configure.in should be updated to
3694           the next release by the person who made the last release.
3695
3696 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3697
3698         * python/lvalue_cast_post_process.py - removed.  Patch has been
3699           submitted to Pyrex maintainers that fixes gcc4.0 errors
3700
3701         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3702
3703 2005-03-24  Daniel Reed  <n@ml.org>
3704
3705         * tools/Makefile.am: Make print-introspect and
3706         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3707
3708 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3709
3710         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3711
3712         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3713           had in Red Hat packages for a while but for some reason never 
3714           got merged upstream
3715           (_dbus_is_a_number): New checks if a string
3716           can be converted to a number and does the conversion if it can
3717           (_dbus_user_database_lookup): Add check to see if the given username
3718           is a udi.  This allows udi's to be used instead of usernames in the
3719           config file.
3720           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3721           is a gdi.  This allows gdi's to be used instead of groupnames in the
3722           config file.
3723
3724 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3725
3726         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3727           code so that it compiles with gcc4.0
3728
3729         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3730           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3731           results back to dbus_binding.c
3732
3733 2005-03-20  Colin Walters  <walters@verbum.org>
3734
3735         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3736
3737         * configure.in: Require GTK+ 2.6.
3738         
3739 2005-03-20  Colin Walters  <walters@verbum.org>
3740
3741         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3742
3743 2005-03-17  Tom Parker  <palfrey@tevp.net>
3744
3745         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3746         print DBUS_UID_UNSET; instead print passed username.  Also
3747         be sure to actually use gid looked up in cache.
3748         
3749         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3750         for DBUS_GID_UNSET and groupname.
3751
3752 2005-03-17  Colin Walters  <walters@verbum.org>
3753
3754         * bus/print-introspect.c: Move to tools/.
3755         * bus/run-with-tmp-session-bus.sh: Ditto.
3756         
3757         * glib/Makefile.am (dbus-glib-bindings.h): Move
3758         generation to tools/Makefile.am.
3759
3760         * test/glib/run-test.sh: Update to handle move
3761         of run-with-tmp-session-bus.sh.
3762
3763         * test/glib/test-service-glib.c: Update to handle
3764         move of dbus-glib-bindings.h.
3765
3766         * tools/print-introspect.c: Moved here
3767         from bus/, and ported to GLib bindings.
3768
3769         * tools/run-with-tmp-session-bus.sh: Moved here
3770         from bus/.
3771
3772         * tools/Makefile.am: Generate dbus-glib-bindings.h
3773         and dbus-bus-introspect.xml here.
3774
3775         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3776         Update.
3777
3778 2005-03-17  Colin Walters  <walters@verbum.org>
3779
3780         * bus/driver.c (write_args_for_direction): Use
3781         _dbus_string_get_const_data to retrieve string;
3782         _dbus_string_get_const_data_len doesn't actually return
3783         a NULL-terminated substring.
3784
3785         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3786         (main): Change to use org_freedesktop_DBus_request_name
3787         instead of using g_proxy_begin_call/end_call.
3788
3789 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3790
3791         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3792         generating the finalizer.  Fixes from Ben Maurer.
3793
3794 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3795
3796         * mono/BusDriver.cs: Update method names: ListServices
3797         becomes ListNames; GetOwner becomes GetNameOwner.
3798
3799         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3800         onto the eval stack when removing the delegate.
3801
3802 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3803
3804         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3805         LT_CURRENT.  Set it to the autoconf variable.
3806                                                                                 
3807         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3808         classes that disconnects the signal handler delegate from the
3809         service object.  Fixes a big leak of proxy objects on the
3810         client side of things.  Patch from Ben Maurer
3811         <bmaurer@ximian.com>
3812
3813 2005-03-12  Colin Walters  <walters@verbum.org>
3814
3815         * bus/driver.c (write_args_for_direction): New function,
3816         parses a type signature into arguments and outputs to
3817         XML.
3818         (bus_driver_handle_introspect): Use it instead of
3819         hardcoding XML for certain signatures.
3820         
3821         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3822         dependency on dbus-daemon.
3823
3824         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3825         argument, pass it to dbus_binding_tool_output_glib_client.
3826
3827         * glib/dbus-binding-tool-glib.c
3828         (generate_client_glue): Protect against multiple inclusion.
3829         (dbus_binding_tool_output_glib_client): Add
3830         G_BEGIN_DECLS/G_END_DECLS.
3831
3832         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3833         Change to just take iface prefix directly.
3834         (write_formal_parameters): Clarify error message.
3835         (check_supported_parameters): New function; checks to see type
3836         signatures of method parameters are supported.
3837         (generate_client_glue): Handle ignore_unsupported flag.
3838         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3839         parameter.
3840
3841         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3842         --ignore-unsupported by default until glib bindings
3843         support arrays.
3844
3845 2005-03-11  Colin Walters  <walters@verbum.org>
3846
3847         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3848         install it.
3849
3850         * bus/print-introspect.c: New file; prints introspection
3851         data for a given name and object path.
3852
3853         * bus/run-with-tmp-session-bus.sh: New file, refactored
3854         from test/glib/run-test.sh.  Creates a temporary session
3855         bus and runs another program.
3856
3857         * test/glib/run-test.sh: Refactor to invoke
3858         run-with-tmp-session-bus.sh.
3859
3860         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3861         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3862         macros instead of hardcoding.
3863
3864         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3865
3866 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3867
3868         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3869         this unref; it doesn't match up evenly in some codepaths.
3870         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3871         this evenly matches with the ref near the top of this function.
3872
3873 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3874
3875         * dbus/dbus-object-tree.c
3876         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3877         and we try to unregister a path that's not registered, still go
3878         through the process of unlocking and don't just return.
3879
3880 2005-03-09  Colin Walters  <walters@verbum.org>
3881
3882         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3883         to this are generated for client-side wrappers.  Invokes a
3884         D-BUS method and returns reply values.  
3885
3886         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3887         function; writes signature string for argument direction.
3888         (write_args_for_direction): Change to pass input values directly
3889         instead of via address, and fix indentation.
3890         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3891         make generated wrappers inlineable.
3892
3893         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3894         note about using dbus_type_is_fixed.
3895
3896         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3897         dbus/dbus-signature.c as dbus_type_is_fixed.
3898
3899         All callers updated.
3900
3901         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3902         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3903
3904         * dbus/dbus-signature.h: Prototype.
3905
3906         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3907         error printf code.
3908
3909         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3910         appropriate instead of just freeing it.
3911         (main): Free returned strings using g_free.
3912
3913         * test/glib/Makefile.am (test-service-glib-glue.h)
3914         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3915
3916         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3917         simply maps a simple D-BUS type to GType.
3918         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3919         GType.
3920         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3921         initialize the value with it.
3922         (dbus_gvalue_binding_type_from_type): Unused, delete.
3923         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3924         various types instead of unmarshalling to value data directly.
3925         Remove can_convert boolean.
3926         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3927         returning directly instead of using can_convert boolean.
3928         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3929         Stores a GValue in a pointer to a value of its corresponding C
3930         type.
3931
3932         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3933         add dbus_gvalue_store.
3934
3935 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3936
3937         Fix a bunch of lifecycle and memory management problems
3938         in the mono bindings.
3939
3940         * mono/Arguments.cs (Arguments): Implement IDisposable
3941
3942         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3943         strictly a static class.
3944
3945         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3946         delegates into this file.
3947         (Connection): Implement IDisposable.
3948         (Dispose): Disconnect the connection and set the raw connection
3949         pointer to IntPtr.Zero.
3950         (~Connection): Call Dispose().
3951         (RegisterObjectPath): Added.  Manages the registration of object
3952         paths so we can cleanly disconnect them at dispose/finalize time.
3953         (UnregisterObjectPath): Ditto.
3954         (set_RawConnection): Unregister all of the object paths when
3955         changing the underlying DBusConnection.  Add them back onto the
3956         new connection, if any.
3957
3958         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3959         more unmanaged resources anymore, so it's not necessary.  Move all
3960         the DBusObjectPathVTable stuff out of here.
3961         (Handler): Save references to our delegates so that they don't get
3962         finalized.  Call Connection.RegisterObjectPath() instead of
3963         dbus_connection_register_object_path() directly.
3964         (Message_Called): Dispose the message after we're finished with
3965         it.
3966
3967         * mono/Message.cs (Message): Implement IDisposable.
3968         (Dispose): Dispose the Arguments, and set the RawMessage to
3969         IntPtr.Zero.
3970         (SendWithReplyAndBlock): We own the ref to the reply that comes
3971         back from dbus_connection_send_with_reply_and_block() so add a
3972         comment about that and unref it after we've constructed a managed
3973         MethodReturn class around it.  Fixes a big, big leak.
3974
3975         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3976         method.
3977         (BuildSignalHandler): After we've sent the Signal message, dispose
3978         of it.
3979         (BuildMethod): Dispose of the method call and reply messages after
3980         we've sent the message and extracted the data we want from the
3981         reply.
3982
3983         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3984         anymore.
3985         (Service_FilterCalled): Dispose of the message after we're
3986         finished with it.
3987
3988 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3989
3990         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3991         After we attach our pending call to the connection, unref
3992         it.  Fixes a leak.
3993  
3994         * mono/Connection.cs (set_RawConnection): Disconnect our
3995         filter and match callbacks from the old connection and
3996         reconnect them to the new connection, if any.
3997
3998         * mono/DBusType/Array.cs: "Code" is a static member, so
3999         don't use "this" to refer to it.  Fix for stricter checking
4000         in Mono 1.1.4.
4001  
4002         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4003         object path that we pass into unmanaged code.
4004  
4005         * mono/DBusType/String.cs (Append): Don't leak the string
4006         that we pass into unmanged code.
4007
4008 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4009         * NEWS: Update for 0.31
4010
4011         * configure.in: Release 0.31
4012         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4013
4014         * qt/Makefile.am: fixed build
4015
4016         * dbus/Makefile.am: soname bump for libdbus
4017
4018         * glib/Makefile.am: soname bump for libdbus-glib
4019
4020 2005-03-05  Havoc Pennington  <hp@redhat.com>
4021
4022         * dbus/dbus-sysdeps.c:
4023         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4024         value
4025         (_dbus_generate_random_bytes_buffer): fix return value
4026
4027         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4028         checks actually work, from Tom Parker <fdo@tevp.net>
4029
4030 2005-03-01  Colin Walters  <walters@verbum.org>
4031
4032         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4033         functions copied from dbus-glib-tool.c.
4034         (main): Convert lots of error code to use them.
4035         Also add some testing for introspection bits.
4036
4037 2005-03-01  Colin Walters  <walters@verbum.org>
4038         
4039         * doc/TODO: Remove introspection signature TODO.
4040
4041 2005-02-27  Colin Walters  <walters@verbum.org>
4042
4043         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4044         Change return value to const char * instead of int so we can do
4045         full signatures.
4046         (struct PropertyInfo, struct ArgInfo): Store char *.
4047         (property_info_new, arg_info_new): Update parameters, strdup.
4048         (property_info_unref, arg_info_unref): Free.
4049
4050         * glib/dbus-gidl.h: Update prototypes.
4051
4052         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4053         (validate_signature): New function, just validates signature and
4054         sets GError.
4055         (parse_property, parse_arg): Invoke validate_signature.  Store
4056         signature instead of just type code.
4057
4058         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4059         function to return a primary type for a signature, dropping
4060         information about types in container types.
4061         (dbus_gvalue_genmarshal_name_from_type)
4062         (dbus_gvalue_binding_type_from_type)
4063         (dbus_gvalue_ctype_from_type): Update to take full signature
4064          instead of type code.
4065         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4066
4067         * glib/dbus-gvalue.h: Update prototypes for above.
4068
4069         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4070         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4071         (introspect_properties, introspect_signals, write_interface):
4072         Update to handle signatures, and remove usage of
4073         _dbus_gutils_type_to_string.
4074         (handle_introspect): Print out type codes instead of e.g. "string"
4075         in hardcoded introspection XML; also use x_AS_STRING constants
4076         instead of hardcoding in string.
4077
4078         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4079         to string.  Remove usage of _dbus_gutils_type_to_string.
4080
4081         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4082
4083         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4084         deletion.
4085         
4086         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4087         (compute_marshaller_name, generate_glue): Handle signature change
4088         to string.
4089         (write_formal_parameters, write_args_for_direction): Ditto, and
4090         remove FIXME.
4091
4092         * tools/dbus-tree-view.c (type_to_string): Delete.
4093         (info_set_func_text): Update to print full signatures.
4094
4095         * test/glib/test-service-glib.xml: Change types to new
4096         introspection format.
4097
4098 2005-02-26  Havoc Pennington  <hp@redhat.com>
4099
4100         * doc/TODO: remove the "guid" item
4101
4102         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4103         (with_bus_thread_func): use open_private
4104
4105         * dbus/dbus-connection.c (dbus_connection_open_private): new
4106         function that works like the old dbus_connection_open()
4107         (dbus_connection_open): now returns an existing connection if
4108         possible
4109
4110         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4111         through the GUID to the transport
4112
4113         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4114         GUID in hex-encoded form.
4115
4116         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4117         pass GUID argument in to the transport
4118
4119         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4120         guid argument
4121
4122         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4123
4124         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4125
4126 2005-02-25  Havoc Pennington  <hp@redhat.com>
4127
4128         * doc/dbus-specification.xml: document the GUID thing
4129
4130         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4131         globally unique ID for the server, and put a "guid=hexencoded"
4132         field in the address
4133
4134         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4135
4136         * dbus/dbus-message.c: ditto
4137
4138         * dbus/dbus-dataslot.c: ditto
4139
4140         * dbus/dbus-list.c: ditto
4141
4142         * dbus/dbus-internals.h: wait, just include
4143         dbus-threads-internal.h here
4144         
4145         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4146         use in main library
4147
4148         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4149
4150 2005-02-24  Colin Walters  <walters@verbum.org>
4151
4152         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4153
4154 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4155
4156         * glib/Makefile.am: added dbus-gobject.h to sources list
4157         so distcheck doesn't fail
4158         
4159 2005-02-24  Havoc Pennington  <hp@redhat.com>
4160
4161         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4162         you must disconnect before unref, since locking and other things
4163         are screwed up otherwise. Fix assorted other locking stuff.
4164
4165         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4166         fix compilation
4167
4168         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4169         into a private header and don't export from the library
4170
4171         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4172
4173 2005-02-24  Colin Walters  <walters@verbum.org>
4174         
4175         * dbus/dbus-signature.c: New file; implements various functions
4176         related to type signatures.  Includes an interator for parsing,
4177         validation functions.
4178         (dbus_type_is_basic): Moved here from
4179         dbus-marshal-basic.c:_dbus_type_is_basic.
4180         (dbus_type_is_container): Moved here from
4181         dbus-marshal-basic.c:_dbus_type_is_container.
4182
4183         All callers of _dbus_type_is_container and _dbus_type_is_basic
4184         updated, and include dbus-signature.h.
4185
4186         * dbus/dbus-signature.h: New file; prototypes for the above.
4187
4188         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4189         dbus-signature.h.
4190
4191         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4192         function factored out of _dbus_first_type_in_signature.
4193         (_dbus_first_type_in_signature_c_str): New function; returns first
4194         type code for a type signature character.
4195
4196         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4197         handle function moves.
4198
4199         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4200
4201         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4202         function; skips to next complete type in type signature.
4203         Implemented using previous skip_one_complete_type.  Now
4204         skip_one_complete_type just delegates to
4205         _dbus_type_signature_next.
4206
4207         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4208         to dbus-signature.c
4209         (_dbus_type_is_container): Ditto.
4210
4211         * doc/dbus-specification.xml: Update introspection sample to
4212         use real type signatures.
4213
4214         * dbus/dbus-test.h: Prototype signature test.
4215
4216         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4217         signature tests.
4218
4219         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4220
4221 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4222
4223         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4224         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4225
4226 2005-02-21  Colin Walters  <walters@verbum.org>
4227
4228         * dbus/dbus-test-main.c (main): Take optional specific test
4229         argument.
4230
4231         * dbus/dbus-test.c (run_test): New function, runs a test function
4232         with no data directory.
4233         (run_data_test): Like above, but takes data directory.
4234         (dbus_internal_do_not_use_run_tests): Take
4235         specific test argument.  Replace lots of cut n' paste code
4236         with run_test and run_data_test.
4237
4238         * dbus/dbus-test.h: Update prototype for
4239         dbus_internal_do_not_use_run_tests.
4240
4241 2005-02-20  Havoc Pennington  <hp@redhat.com>
4242
4243         Fix bugs reported by Daniel P. Berrange
4244         
4245         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4246         (protected_change_watch): new function
4247         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4248         (_dbus_server_add_watch): change to work like the
4249         dbus-connection.c equivalents; like those, probably kind of
4250         busted, but should at least mostly work for now
4251         (dbus_server_disconnect): drop the lock if we were already
4252         disconnected, patch from Daniel P. Berrange
4253
4254         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4255         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4256         same stuff
4257
4258         * doc/TODO: todo about unscrewing this mess
4259
4260 2005-02-19  Colin Walters  <walters@verbum.org>
4261
4262         * glib/dbus-binding-tool-glib.c
4263         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4264
4265         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4266         as errno.h and sys/stat.h.
4267         (lose): New function, prints error with
4268         newline and exits.
4269         (lose_gerror): Similar, but takes GError for message.
4270         (main): Add --output argument to specify output file to write to,
4271         instead of always printing to stdout.  In this mode, determine
4272         timestamps on source files to see whether any are newer than the
4273         target file.  If not, exit.  Also convert a number of error
4274         messages to use lose (since it's shorter), and switch to using
4275         g_io_channel_shutdown.
4276
4277 2005-02-19  Havoc Pennington  <hp@redhat.com>
4278
4279         * glib/dbus-gobject.c
4280         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4281
4282         * glib/dbus-glib.c: fix doxygen warnings
4283
4284         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4285         is found on an <arg>
4286
4287 2005-02-17  Colin Walters  <walters@verbum.org>
4288
4289         * glib/dbus-gobject.h: Don't export
4290         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4291         
4292         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4293         (invoke_object_method): Handle it.
4294
4295         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4296         Handle rename.
4297         
4298 2005-02-17  Colin Walters  <walters@verbum.org>
4299
4300         * bus/.cvsignore, doc/.cvsignore
4301         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4302         Update.
4303
4304 2005-02-17  Colin Walters  <walters@verbum.org>
4305         
4306         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4307         Rename to DBUS_SERVICE_DBUS.
4308         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4309         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4310         Change the value from "org.freedesktop.Local"
4311         to "org.freedesktop.DBus.Local".
4312         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4313         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4314         DBUS_INTERFACE_INTROSPECTABLE.
4315         Change the value from "org.freedesktop.Introspectable"
4316         to "org.freedesktop.DBus.Introspectable".
4317         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4318         DBUS_INTERFACE_PROPERTIES.
4319         Change the value from "org.freedesktop.Properties"
4320         to "org.freedesktop.DBus.Properties".
4321         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4322         DBUS_INTERFACE_PEER.
4323         Change the value from "org.freedesktop.Peer"
4324         to "org.freedesktop.DBus.Peer".
4325         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4326         DBUS_INTERFACE_LOCAL.
4327         Change the value from "org.freedesktop.Local"
4328         to "org.freedesktop.DBus.Local".
4329
4330         All other users of those constants have been changed.
4331
4332         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4333
4334         * glib/dbus-gobject.c (handle_introspect): Use constants.
4335
4336         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4337
4338 2005-02-17  Colin Walters  <walters@verbum.org>
4339
4340         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4341         (parse_node, parse_interface, parse_method, parse_signal)
4342         (parse_property, parse_annotation): Lose if we're currently in an
4343         annotation.
4344         (parse_annotation): New function.
4345         (parser_start_element, parser_end_element): Handle annotation.
4346         (parse_method, parse_interface): Remove support for c_name attribute,
4347         switch to annotations.
4348
4349         * glib/dbus-gidl.h (interface_info_get_binding_names)
4350         (method_info_get_binding_names)
4351         (interface_info_get_binding_name, method_info_get_binding_name)
4352         (interface_info_set_binding_name, method_info_set_binding_name):
4353         Remove.
4354         (interface_info_get_annotations, method_info_get_annotations)
4355         (interface_info_get_annotation, method_info_get_annotation)
4356         (interface_info_add_annotation, method_info_add_annotation):
4357         Prototype.
4358
4359         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4360         for "bindings".
4361         (struct MethodInfo): Ditto.
4362         Straightfoward conversion of binding methods into annotation methods
4363         as prototyped.
4364
4365         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4366
4367         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4368
4369         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4370         Use new annotation API.
4371
4372         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4373         annotation element.
4374         
4375         * doc/dbus-specification.xml: Discuss introspection annotations,
4376         include list of well-known annotations.
4377
4378         * test/glib/test-service-glib.xml: Make validate against new DTD.
4379
4380 2005-02-17  Colin Walters  <walters@verbum.org>
4381
4382         This patch is based on initial work from
4383         Paul Kuliniewicz <kuliniew@purdue.edu>.
4384
4385         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4386         initialization of GValue from dbus type to here.
4387         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4388         for the "glib-genmarshal" program from a DBus type.
4389         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4390         into the C name for it we use in the glib bindings.
4391         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4392         glib C type (not GValue).
4393         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4394
4395         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4396         from dbus-gobject.c.
4397
4398         * glib/dbus-gutils.h: Prototype it.
4399
4400         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4401         (marshal_dbus_message_to_g_marshaller): Use new shared function
4402         dbus_glib_marshal_dbus_message_to_gvalue_array.
4403
4404         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4405         Will be changed once we have annotations.
4406
4407         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4408         GStaticRWLock.  Callers updated.
4409         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4410         (string_table_next): New function for iterating over zero-terminated
4411         string value array.
4412         (string_table_lookup): New function; retrieves specific entry in
4413         array.
4414         (get_method_data): New function; look up method data in object data chunk.
4415         (object_error_domain_prefix_from_object_info)
4416         (object_error_code_from_object_info): New functions, but not implemented yet.
4417         (method_interface_from_object_info): New function; retrieve interface name.
4418         (method_name_from_object_info): New function; retrieve method name.
4419         (method_arg_info_from_object_info): New function; retrieve argument data.
4420         (arg_iterate): New function; iterates over serialized argument data.
4421         (method_dir_signature_from_object_info): New function; returns a
4422         GString holding type signature for arguments for just one
4423         direction (input or output).
4424         (method_input_signature_from_object_info)
4425         (method_output_signature_from_object_info): New functions.
4426         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4427         converts dbus message arguments into a GValue array.  Used for both
4428         signal handling and method invocation.
4429         (struct DBusGlibWriteIterfaceData): New utility structure.
4430         (write_interface): New function; generate introspection XML for
4431         an interface.
4432         (introspect_interfaces): New function; gathers all interface->methods,
4433         generates introspection XML for them.
4434         (handle_introspect): Invoke introspect_interfaces.
4435         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4436         (lookup_object_and_method): New function; examines an incoming message
4437         and attempts to match it up (via interface, method name, and argument
4438         signature) with a known object and method.
4439         (gerror_domaincode_to_dbus_error_name): New function; converts a
4440         GError domain and code into a DBus error name.  Needs GError data
4441         added to object introspection to work well.
4442         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4443         GError.
4444         (invoke_object_method): New function to invoke an object method
4445         looked up via lookup_object_and_method.  Parses the incoming
4446         message, turns it into a GValue array, then invokes the marshaller
4447         specified in the DBusGMethodInfo.  Creates a new message with
4448         either return values or error message as appropriate.
4449         (gobject_message_function): Invoke lookup_object_and_method and
4450         invoke_object_method.
4451
4452         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4453         (enum DBusBindingOutputMode): New enum for binding output modes.
4454         (pretty_print): Print binding names.
4455         (dbus_binding_tool_error_quark): GError bits.
4456         (version): Fix typo.
4457         (main): Create GIOChannel for output.  Parse new --mode argument,
4458         possible values are "pretty-print", "glib-server", "glib-client".
4459         Use mode to invoke appropriate function.
4460         
4461         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4462
4463         * glib/dbus-glib-tool.h: New header, just includes GError bits
4464         for now.
4465
4466         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4467         maps binding style to name.
4468         (struct MethodInfo): Ditto.
4469         (get_hash_keys, get_hash_key): Utility function, returns keys for
4470         a GHashTable.
4471         (interface_info_new, method_info_new): Initialize bindings.
4472         (interface_info_unref, method_info_unref): Destroy bindings.
4473         (method_info_get_binding_names, method_info_get_binding_name)
4474         (interface_info_get_binding_names, interface_info_get_binding_name):
4475         Functions for retrieving binding names.
4476         (method_info_set_binding_name, interface_info_set_binding_name):
4477         Functions for setting binding names.
4478
4479         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4480         for glib binding generation.
4481
4482         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4483         and client-side glib glue generation.
4484
4485         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4486         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4487         dbus-glib-tool.h.
4488
4489         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4490         of using GClosureMarshal directly.
4491         (struct DBusGObjectInfo): Add n_infos member.
4492
4493         * test/glib/test-service-glib.xml: New file; contains introspection data
4494         for MyTestObject used in test-service-glib.c.
4495
4496         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4497         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4498         (my_object_uppercase, my_object_many_args): New test methods.
4499         (main): Use dbus_g_object_class_install_info to include generated object
4500         info.
4501
4502         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4503         as well as client-side bindings.
4504
4505         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4506         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4507         using both the dbus_gproxy stuff directly as well as the generated bindings.
4508
4509 2005-02-15  Havoc Pennington  <hp@redhat.com>
4510
4511         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4512         complete a pending call, don't run filters first.
4513
4514         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4515         dbus_pending_call_steal_reply
4516
4517         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4518         _dbus_connection_block_pending_call
4519         (dbus_pending_call_get_reply): change to steal_reply and return a
4520         ref
4521
4522         * dbus/dbus-connection.c
4523         (dbus_connection_send_with_reply_and_block): port to work in terms
4524         of DBusPendingCall
4525         (_dbus_connection_block_pending_call): replace block_for_reply
4526         with this
4527
4528 2005-02-14  Havoc Pennington  <hp@redhat.com>
4529
4530         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4531         properly handle looking up group information by name; fix 
4532         from j@bootlab.org
4533
4534 2005-02-13  Havoc Pennington  <hp@redhat.com>
4535
4536         * dbus/dbus-connection.c (dbus_connection_return_message) 
4537         (dbus_connection_borrow_message): hold dispatch lock while message
4538         is outstanding
4539         (_dbus_connection_block_for_reply): hold dispatch lock while we
4540         block for the reply, so nobody steals our reply
4541         (dbus_connection_pop_message): hold the dispatch lock while we
4542         pluck the message
4543
4544 2005-02-13  Havoc Pennington  <hp@redhat.com>
4545
4546         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4547         (_dbus_connection_release_dispatch)
4548         (_dbus_connection_acquire_io_path)
4549         (_dbus_connection_release_io_path): make the mutex and condvar
4550         control access to the "acquired" flag. Drop the connection lock
4551         while waiting on the condvar. Hopefully these are baby steps in
4552         roughly the right direction.
4553
4554 2005-02-13  Havoc Pennington  <hp@redhat.com>
4555
4556         * dbus/dbus-connection.c: use separate mutexes for the condition
4557         variables; this is some kind of baseline for sanity, but the
4558         condition variables still aren't used correctly afaict
4559
4560 2005-02-13  Havoc Pennington  <hp@redhat.com>
4561
4562         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4563         fix a double-unlock
4564
4565         * dbus/dbus-connection.c
4566         (_dbus_connection_detach_pending_call_unlocked): add this
4567
4568         Initial semi-correct pass through to fix thread locking; there are
4569         still some issues with the condition variable paths I'm pretty
4570         sure
4571         
4572         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4573         lock/unlock calls
4574
4575         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4576         rename to add _unlocked
4577         (struct DBusConnection): move "dispatch_acquired" and
4578         "io_path_acquired" to use only one bit each.
4579         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4580         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4581         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4582         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4583         (_dbus_connection_remove_timeout) 
4584         (_dbus_connection_toggle_timeout): drop lock when calling out to
4585         user functions; done in a hacky/bad way.
4586         (_dbus_connection_send_and_unlock): add a missing unlock
4587         (_dbus_connection_block_for_reply): add a missing unlock
4588
4589         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4590         drop lock in a hacky probably unsafe way to call out to user
4591         function
4592
4593 2005-02-12  Havoc Pennington  <hp@redhat.com>
4594
4595         * tools/dbus-tree-view.c (info_set_func_text): display more
4596         details on args
4597
4598         * bus/driver.c (bus_driver_handle_list_services): list the bus
4599         driver
4600
4601         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4602
4603         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4604         (method_info_get_n_args): new function
4605
4606 2005-02-12  Havoc Pennington  <hp@redhat.com>
4607
4608         * bus/driver.c (bus_driver_handle_introspect): add introspection
4609         for bus driver
4610
4611 2005-02-12  Havoc Pennington  <hp@redhat.com>
4612
4613         * bus/driver.c: put the signature of each bus driver method in the
4614         table of handlers and check it on incoming calls; this isn't
4615         really useful, but going to add introspect support in a minute.
4616
4617 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4618
4619         * mono/Connection.cs: The unpredictability of finalizers in mono
4620         prevents us from deterministically disconnecting the filters from
4621         the Service class's finalizer, so move tracking of filters and
4622         matches here.  Add API for that.
4623
4624         * mono/Service.cs: Remove the code, add code which calls the
4625         methods now on the Connection class.
4626
4627 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4628
4629         * python/dbus.py (class Sender): added to support dbus signals better
4630         (Bus::add_signal_receiver): added expand_args parameter which defaults
4631         to True.  When expand args is True the signal handler will pass the 
4632         message arguments as parameters to the signal handler.  If False
4633         revert to previous behavior where the signal handler must get the
4634         argument list from the message.  This is to help port applications
4635         like HAL that have a tendancy to send variable length argument lists.
4636         self._match_rule_to_receivers is now a dict of dicts.
4637         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4638         removing it from a list
4639         (Bus::_signal_func): change signal handlers so that interface,
4640         signal_name, service, path and message are packed into a Sender
4641         object and that is passed to the handler.  If expand_args is True
4642         extract the args list from the message and append it to the parameter
4643         list
4644         
4645         * python/dbus_bindings.pyx.in (class Signature): added to support 
4646         signiature types
4647         (MessageIter::__init__): changed iteration limit to match D-BUS
4648         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4649         STRUCT and VARIENT type support
4650         (MessageIter::python_value_to_dbus_sig): made recursive to support
4651         recursive types
4652         (MessageIter::append*): added Signature, dict, tuple 
4653         support
4654
4655         * python/examples/example-client.py: added examples of getting tuples
4656         and dicts
4657
4658         * python/examples/example-service.py: added examples of sending tuples
4659         and dicts
4660
4661         * python/examples/example-signal-recipient.py: Fixed to handle new
4662         signal callback format
4663
4664 2005-02-10  Havoc Pennington  <hp@redhat.com>
4665
4666         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4667         (call dbus_g_proxy_add_signal)
4668
4669         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4670         escape the hostname
4671         (_dbus_server_new_for_domain_socket): escape the path
4672
4673         * dbus/dbus-address.c (dbus_address_escape_value): new
4674         (dbus_address_unescape_value): new
4675         (dbus_parse_address): unescape values
4676
4677         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4678
4679         * doc/dbus-specification.xml: explain how to escape values in
4680         addresses
4681
4682 2005-02-10  Havoc Pennington  <hp@redhat.com>
4683
4684         * dbus/dbus-message-factory.c (generate_special): modify test to
4685         avoid using a non-basic dict key
4686
4687         * dbus/dbus-marshal-validate-util.c: add test for the below
4688
4689         * doc/dbus-specification.xml: require that dict keys are a basic
4690         type
4691
4692         * dbus/dbus-marshal-validate.c
4693         (_dbus_validate_signature_with_reason): require that dict key is a
4694         basic type
4695
4696 2005-02-10  Havoc Pennington  <hp@redhat.com>
4697
4698         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4699         change to be _and_unlock instead of _unlocked
4700
4701         * dbus/dbus-connection.c
4702         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4703         have no_update so we can find this bug quickly in future
4704
4705 2005-02-10  Havoc Pennington  <hp@redhat.com>
4706
4707         * dbus/dbus-message-util.c (verify_test_message): tests for string
4708         array
4709
4710         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4711         support for arrays of string/signature/path
4712
4713 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4714
4715         * dbus/dbus-connection.c
4716         (_dbus_connection_queue_received_message_link,
4717         _dbus_connection_message_sent): Add the path to
4718         the verbose output.
4719         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4720         _dbus_connection_send_preallocated_unlocked(), updated the
4721         dispatch status, and unlocks.  Fixes a bug where certain
4722         situations (like a broken pipe) could cause a Disconnect message
4723         to not be sent, tricking the bus into thinking a service was still
4724         there when the process had quit.
4725         (_dbus_connection_send_preallocated): Call
4726         _dbus_connection_send_preallocated_and_unlock().
4727         (_dbus_connection_send_and_unlock): Added.  Calls
4728         _dbus_connection_send_preallocated_and_unlock().
4729         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4730         (dbus_connection_send_with_reply): Update the dispatch status and
4731         unlock.
4732
4733         * mono/Service.cs (~Service): Added.  Removes the filter so that
4734         we don't get unmanaged code calling back into a GCed delegate.
4735         (RemoveFilter); Added.
4736
4737 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4738
4739         * dbus/dbus-message.c (dbus_message_iter_open_container):
4740         - Removed check for iterator type being an array because
4741         get_arg_type does not work with writer iterators
4742         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4743
4744 2005-02-07  Havoc Pennington  <hp@redhat.com>
4745
4746         * doc/dbus-specification.xml: some more language cleanups; add
4747         stuff about how to deal with invalid protocol and extension
4748         points; add _ to allowed chars in auth commands; add EXTENSION_
4749         auth command prefix
4750
4751 2005-02-06  Havoc Pennington  <hp@redhat.com>
4752
4753         * s/expected/required/ in a couple places for clarity
4754
4755 2005-02-07  Colin Walters  <walters@verbum.org>
4756
4757         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4758         sender or proposed_recipient.
4759
4760 2005-02-06  Havoc Pennington  <hp@redhat.com>
4761
4762         * dbus/dbus-message-factory.c (generate_special): more tests
4763
4764         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4765         array length that exceeds the maximum
4766
4767 2005-02-05  Havoc Pennington  <hp@redhat.com>
4768
4769         * dbus/dbus-message-factory.c (generate_special): more test cases,
4770         increasing coverage
4771
4772         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4773         reason why a signature was invalid
4774
4775         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4776         skip the length of the string before we look at it in validation
4777
4778         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4779         equal_substring
4780
4781         * dbus/dbus-message.c (_dbus_message_loader_new): default
4782         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4783
4784 2005-02-05  Havoc Pennington  <hp@redhat.com>
4785
4786         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4787         if the signature of a variant was empty
4788         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4789         struct with no element type)
4790
4791         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4792         mangled messages to break things
4793
4794 2005-02-04  Havoc Pennington  <hp@redhat.com>
4795
4796         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4797         g_quark_try_string() so it actually can return 0
4798         (dbus_g_proxy_connect_signal): ditto
4799
4800 2005-02-04  Havoc Pennington  <hp@redhat.com>
4801
4802         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4803         bogus warning
4804         (tristring_from_message): assert cleanly on null path/interface
4805         (should not be possible though I decided later)
4806         (dbus_g_proxy_dispose): move proxy manager unregistration here
4807         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4808         g_return_if_fail() checks
4809
4810 2005-02-04  Havoc Pennington  <hp@redhat.com>
4811
4812         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4813
4814         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4815         (with some minor changes)
4816
4817         * doc/dbus-specification.xml: add deprecated attribute to
4818         introspection format
4819
4820 2005-01-31  Havoc Pennington  <hp@redhat.com>
4821
4822         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4823         think it's sort of right
4824
4825 2005-01-30  Havoc Pennington  <hp@redhat.com>
4826
4827         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4828
4829 2005-01-30  Havoc Pennington  <hp@redhat.com>
4830
4831         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4832
4833         * autogen.sh: change to autotools 1.9
4834
4835         * glib/dbus-gproxy.c: completely change how signals work
4836         (dbus_g_proxy_add_signal): new function to specify signature of a
4837         signal
4838         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4839         and g_warning if the incoming message has the wrong signature.
4840
4841 2005-01-30  Havoc Pennington  <hp@redhat.com>
4842
4843         * tools/dbus-names-model.c (have_names_notify): fix this
4844
4845         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4846         up the string array handling a bit 
4847
4848 2005-01-30  Havoc Pennington  <hp@redhat.com>
4849
4850         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4851         (dbus_g_pending_call_cancel): new function
4852
4853         * dbus/dbus-glib.h: move GType decls for connection/message here;
4854         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4855         here, just kind of rationalizing how we handle all that
4856
4857         * tools/dbus-names-model.c: new file for a tree model listing the
4858         services on a bus
4859
4860         * tools/dbus-tree-view.c (model_new): use proper typing on the
4861         model rows
4862
4863 2005-01-30  Havoc Pennington  <hp@redhat.com>
4864
4865         * glib/dbus-gmain.c: add a custom GSource back that just checks
4866         whether the message queue has anything in it; otherwise, there are 
4867         cases where we won't see messages in the queue since there was no 
4868         IO visible to the glib main loop
4869
4870         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4871         increase default message timeout to 25 seconds
4872
4873 2005-01-30  Havoc Pennington  <hp@redhat.com>
4874
4875         * test/glib/test-profile.c (no_bus_stop_server): remove the
4876         warning about the g_warning that I just fixed
4877
4878         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4879         custom source, seems to be a lot easier to understand and work
4880         better.
4881
4882 2005-01-30  Havoc Pennington  <hp@redhat.com>
4883
4884         I think this main loop thing is conceptually broken, but here are 
4885         some band aids. I'll maybe rewrite it in a minute.
4886         
4887         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4888         custom GSource, so don't pass it in; confusing
4889         (gsource_server_finalize, gsource_connection_finalize): add
4890         finalize handlers that remove all the watches.  
4891
4892 2005-01-30  Havoc Pennington  <hp@redhat.com>
4893
4894         * glib/dbus-gobject.c (introspect_properties): fix the XML
4895         generated
4896
4897         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4898         which effectively detects the use of freed messages
4899
4900         * glib/dbus-gobject.c (handle_introspect): modify and return the
4901         reply message instead of the incoming message
4902
4903         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4904         gee, maybe it should SEND THE XML instead of just making a string
4905         and freeing it again ;-)
4906
4907         * tools/dbus-print-message.c (print_message): improve printing of
4908         messages
4909
4910         * configure.in: add debug-glib.service to the output
4911
4912 2005-01-30  Havoc Pennington  <hp@redhat.com>
4913
4914         dbus-viewer introspected and displayed the bus driver
4915         
4916         * dbus/dbus-object-tree.c 
4917         (object_tree_test_iteration): add tests for a handler registered on "/"
4918
4919         * dbus/dbus-object-tree.c
4920         (_dbus_decompose_path): fix to handle path "/" properly
4921         (run_decompose_tests): add tests for path decomposition
4922         
4923         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4924         properly
4925
4926         * glib/dbus-gobject.c (handle_introspect): fix quotes
4927
4928         * test/glib/run-test.sh: support launching the bus, then running
4929         dbus-viewer
4930
4931         * test/glib/test-service-glib.c (main): put in a trivial gobject
4932         subclass and register it on the connection
4933
4934         * bus/driver.c (bus_driver_handle_introspect): implement
4935         introspection of the bus driver service
4936
4937         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4938         identifiers, doctype decl
4939
4940         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4941         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4942         returning the service unchanged.
4943         (bus_driver_handle_message): remove old check for reply_serial in
4944         method calls, now the message type deals with that
4945         (bus_driver_handle_message): handle NULL interface
4946
4947         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4948
4949         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4950         -1 for len
4951
4952         * tools/dbus-viewer.c: add support for introspecting a service on
4953         a bus
4954
4955         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4956         (dbus_g_pending_call_unref): add
4957
4958 2005-01-29  Havoc Pennington  <hp@redhat.com>
4959
4960         * tools/dbus-tree-view.c: add support for displaying properties.
4961         (run dbus-viewer with an introspect xml file as arg, then resize
4962         the window so the tree elements show up, not sure what that is)
4963
4964         * glib/dbus-gobject.c (handle_introspect): return
4965         org.freedesktop.Properties and org.freedesktop.Introspectable
4966         interfaces when we are introspected.
4967
4968         * doc/dbus-specification.xml: allow empty interface name when 
4969         Get/Set a property
4970
4971 2005-01-29  Havoc Pennington  <hp@redhat.com>
4972
4973         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4974         though it uses glib, it could be extended for any binding in
4975         principle
4976
4977         * glib/dbus-gobject.c (gobject_message_function): change to the
4978         new way properties work
4979
4980         * dbus/dbus-protocol.h: add the new interfaces
4981
4982         * doc/dbus-specification.xml: document the introspection format,
4983         Introspectable interface, and add an org.freedesktop.Properties
4984         interface.
4985
4986         * glib/dbus-gparser.c: add support for a <property> element
4987
4988         * glib/dbus-gidl.c: add PropertyInfo
4989
4990         * glib/dbus-gobject.c (handle_introspect): put the outermost
4991         <node> outside the signal and property descriptions.
4992         (introspect_properties): export properties as <property> rather
4993         than as method calls
4994
4995 2005-01-28  Havoc Pennington  <hp@redhat.com>
4996
4997         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4998         related to authentication protocol
4999
5000 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5001
5002         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5003                 - BUS_ACTIVATION -> BUS_STARTER
5004                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5005                 - class MessageIter (__init__): Added recursion checking 
5006                 so we throw a nice error instead of just disconnecting from the
5007                 bus.
5008                 (get): Added arg_type parameter for recursion.
5009                 Removed the nil type
5010                 Added signiture type placeholder (not implemented)
5011                 Added struct type placeholder (not implemented)
5012                 Added varient type placeholder (not implemented)
5013                 Commented out dict type for now     
5014                 (get_element_type): renamed from get_array_type
5015                 (get_*): changed to use the dbus_message_iter_get_basic API
5016                 (get_*_array): removed in favor of recursive get_array method
5017                 (get_array): new recursive method which calls get to marshal
5018                 the elements of the array
5019                 (value_to_dbus_sig): New method returns the corrasponding
5020                 dbus signiture to a python value
5021                 (append): Comment out dict handling for now
5022                 Handle lists with the new recursive API
5023                 Comment out None handling for now
5024                 (append_nil): removed
5025                 (append_*): changed to use dbus_message_iter_append_basic API
5026                 (append_*_array): removed in favor of recursive append_array 
5027                 method
5028                 (__str__): Make it easier to print out recursive iterators
5029                 for debugging
5030                 - class Message (__str__): moved type inspection to the
5031                 MessageIter class' __str__ method
5032                 (get_iter): Added an append parameter wich defaults to False
5033                 If True use the new API's to create an append iterator
5034
5035         * python/dbus.py: Update to use new bindings API
5036                 - TYPE_ACTIVATION -> TYPE_STARTER
5037                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5038                 - class ActivationBus -> class StarterBus
5039                 - class RemoteObject (__call__): get an append iterator
5040                 - (_dispatch_dbus_method_call): get an append iterator
5041                 - class Object (emit_signal): get an append iterator
5042
5043         * python/examples/: Fixed up the examples to work with the new API
5044                 
5045 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5046
5047         * configure.in: Bump version up to 0.30.
5048
5049         * HACKING: Add a release item to bump the version number up after 
5050         a release.
5051
5052 2005-01-28  Havoc Pennington  <hp@redhat.com>
5053
5054         * doc/dbus-specification.xml: update to describe 16-bit types and
5055         dict entries
5056
5057         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5058         assertion
5059
5060         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5061         type
5062
5063         * dbus/dbus-marshal-recursive.c: implement
5064
5065 2005-01-27  Havoc Pennington  <hp@redhat.com>
5066
5067         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5068
5069         * configure.in: find the right type for 16 and 32 bit ints as well
5070         as 64
5071
5072         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5073         the 16-bit types so people don't have to stuff them in 32-bit or
5074         byte arrays.
5075
5076 2005-01-27  Havoc Pennington  <hp@redhat.com>
5077
5078         * dbus/dbus-message.c: byteswap the message if you init an
5079         iterator to read/write from it
5080         
5081         * dbus/dbus-marshal-byteswap.c: new file implementing 
5082         _dbus_marshal_byteswap()
5083
5084         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5085
5086 2005-01-26  Havoc Pennington  <hp@redhat.com>
5087         
5088         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5089         build, apparently - nobody noticed?)
5090         
5091 2005-01-26  Havoc Pennington  <hp@redhat.com>
5092
5093         * dbus/dbus-marshal-recursive.h: remove todo comment
5094
5095 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5096
5097         * Land the mono binding changes to conform to the new APIs.
5098
5099         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5100         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5101
5102         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5103         type code as a string.
5104         (InitAppending): Rename dbus_message_append_iter_init() to
5105         dbus_message_iter_init_append().
5106
5107         * mono/BusDriver.cs: Rename ServiceEventHandler to
5108         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5109         Rename ServiceOwnerChanged to NameOwnerChanged.
5110
5111         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5112         underlying C call.
5113
5114         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5115
5116         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5117         dbus_bus_acquire_service() to dbus_bus_request_name().
5118
5119         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5120         of Type.UnderlyingSystemType to get the correct element type for
5121         the array.
5122         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5123         dbus_message_get_{element|arg}_type() instead of
5124         dbus_message_iter_init_array_iterator().
5125         (Append): Replace dbus_message_iter_append_array() with
5126         dbus_message_iter_open_container() and
5127         dbus_message_iter_close_container().
5128
5129         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5130         types have been removed.
5131         
5132         * mono/DBusType/*.cs: Replace calls of
5133         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5134         but specify the type in the DllImport extern declaration.  Ditto
5135         for dbus_message_iter_append_[type]() ->
5136         dbus_message_iter_append_basic().
5137
5138         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5139         NameOwnerChangedHandler.
5140
5141 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5142
5143         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5144                 - get_base_service -> get_unique_name
5145                 - bus_get_base_service -> bus_get_unique_name
5146                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5147                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5148                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5149                 - bus_activate_service -> bus_start_service_by_name
5150                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5151                 - bus_acquire_service -> bus_request_name
5152                 - dbus_bus_acquire_service -> dbus_bus_request_name
5153                 - bus_service_exists -> bus_name_has_owner
5154                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5155
5156         * python/dbus.py: Rename of methods
5157                 - activate_service -> start_service_by_name
5158                 - bus_acquire_service -> bus_request_name
5159                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5160                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5161
5162         
5163 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5164
5165         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5166         signature for the method that can't be found.
5167
5168         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5169         the message has any arguments, we need to call
5170         _dbus_type_reader_get_current_type(), not
5171         _dbus_type_reader_has_next().
5172
5173 2005-01-24  Havoc Pennington  <hp@redhat.com>
5174
5175         * dbus/dbus-message-factory.c: more testing of message validation
5176
5177         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5178         header
5179
5180 2005-01-23  Havoc Pennington  <hp@redhat.com>
5181
5182         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5183         get this all working, not many tests in the framework yet though
5184
5185 2005-01-22  Havoc Pennington  <hp@redhat.com>
5186
5187         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5188         tutorial, based on work from David Wheeler.
5189
5190 2005-01-21  Havoc Pennington  <hp@redhat.com>
5191
5192         * dbus/dbus-bus.c: add more return_if_fail checks
5193
5194         * dbus/dbus-message.c (load_message): have the "no validation"
5195         mode (have to edit the code to toggle the mode for now though)
5196
5197         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5198         skips all validation; I want to use this at least for benchmark
5199         baseline, I'm not sure if it should be a publicly-available switch.
5200
5201 2005-01-21  Havoc Pennington  <hp@redhat.com>
5202
5203         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5204         toplevel doxygen group as the low-level API stuff
5205
5206         * dbus/dbus.h: note that libdbus is the low-level API
5207
5208 2005-01-20  Havoc Pennington  <hp@redhat.com>
5209
5210         * update-dbus-docs.sh: script to update docs on the web site, only
5211         works for me though. neener.
5212
5213 2005-01-20  Havoc Pennington  <hp@redhat.com>
5214
5215         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5216         code can reveal bugs in it
5217
5218 2005-01-20  Havoc Pennington  <hp@redhat.com>
5219
5220         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5221         select() version, patches from Tor Lillqvist
5222
5223 2005-01-20  Havoc Pennington  <hp@redhat.com>
5224
5225         * doc/dbus-tutorial.xml: replace > with &gt;
5226
5227         * bus/services.c (bus_registry_acquire_service): validate the name
5228         and return a better error if it's no good.
5229
5230         * doc/dbus-specification.xml: note NO_AUTO_START change
5231
5232         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5233         from AUTO_START, we're toggling the default
5234
5235         * bus/dispatch.c: adapt the tests to change of auto-start default
5236
5237 2005-01-18  Havoc Pennington  <hp@redhat.com>
5238
5239         * rename dbus-daemon-1 to dbus-daemon throughout
5240
5241 2005-01-18  Havoc Pennington  <hp@redhat.com>
5242
5243         * Throughout, grand renaming to strip out the use of "service",
5244         just say "name" instead (or "bus name" when ambiguous).  Did not
5245         change the internal code of the message bus itself, only the
5246         programmer-facing API and messages.
5247         
5248         * doc/dbus-specification.xml: further update the message bus section
5249         
5250         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5251         in error case
5252
5253 2005-01-17  Havoc Pennington  <hp@redhat.com>
5254
5255         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5256         ever
5257
5258         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5259         "invalid name character" not only non-ASCII
5260
5261         * doc/dbus-specification.xml: further update spec, message bus 
5262         parts are still out-of-date but the marshaling etc. stuff is now
5263         accurate-ish
5264
5265 2005-01-17  Havoc Pennington  <hp@redhat.com>
5266
5267         * doc/dbus-specification.xml: partially update spec
5268
5269 2005-01-17  Havoc Pennington  <hp@redhat.com>
5270
5271         * Throughout, align variant bodies according to the contained
5272         type, rather than always to 8. Should save a fair bit of space in
5273         message headers.
5274         
5275         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5276         fix handling of case where p == end
5277
5278         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5279
5280 2005-01-17  Havoc Pennington  <hp@redhat.com>
5281
5282         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5283
5284         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5285         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5286         are marshaling/unmarshaling a boolean.
5287
5288 2005-01-16  Havoc Pennington  <hp@redhat.com>
5289
5290         This is about it on what can be disabled/deleted from libdbus
5291         easily, back below 150K anyhow. Deeper cuts are more work than 
5292         just turning the code off as I've done here.
5293         
5294         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5295         signed int convenience funcs
5296
5297         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5298         verbose mode
5299
5300         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5301         things out of libdbus
5302
5303         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5304         
5305         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5306         tests-enabled-only, though it should probably be deleted)
5307
5308         * dbus/dbus-message-util.c: same stuff
5309
5310         * dbus/dbus-auth-util.c: same stuff
5311
5312 2005-01-16  Havoc Pennington  <hp@redhat.com>
5313
5314         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5315
5316         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5317         way for stripping down dbus-userdb.c stuff included in libdbus.
5318         Rename _dbus_parse_uid for consistency.
5319
5320 2005-01-16  Havoc Pennington  <hp@redhat.com>
5321
5322         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5323         name the assertion failed in
5324
5325         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5326         (_dbus_return_val_if_fail): assert that the name of the function
5327         containing the check doesn't start with '_', since we only want to 
5328         use checks on public functions
5329         
5330         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5331         checks to assertions
5332
5333         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5334         change checks to asserts for private function
5335
5336         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5337         to asserts for private function
5338
5339         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5340         broken assertion that was breaking make check
5341         (_dbus_type_reader_array_is_empty): remove this rather than fix
5342         it, was only used in assertions
5343
5344 2005-01-16  Havoc Pennington  <hp@redhat.com>
5345
5346         * test/unused-code-gc.py: hacky script to find code that's used
5347         only by the bus (not libdbus) or used only by tests or not used at
5348         all. It has some false alarms, but looks like we can clean up a
5349         lot of size from libdbus.
5350
5351         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5352         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5353         
5354 2005-01-16  Havoc Pennington  <hp@redhat.com>
5355
5356         * Add and fix docs according to Doxygen warnings throughout
5357         source.
5358         
5359         * dbus/dbus-marshal-recursive.c
5360         (_dbus_type_reader_array_is_empty): change this to just call
5361         array_reader_get_array_len() and make it static
5362
5363         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5364         from get_array_type
5365         (dbus_message_iter_init_append): rename from append_iter_init
5366
5367         * dbus/dbus-marshal-recursive.c
5368         (_dbus_type_reader_get_element_type): rename from
5369         _dbus_type_reader_get_array_type
5370
5371 2005-01-15  Havoc Pennington  <hp@redhat.com>
5372
5373         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5374
5375         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5376         when DBUS_DISABLE_ASSERT
5377         (_dbus_marshal_set_basic): be sure we align for the string length
5378
5379         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5380         this look faster
5381
5382         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5383         inline macro version
5384         (_dbus_string_set_byte): provide inline macro version
5385
5386 2005-01-15  Havoc Pennington  <hp@redhat.com>
5387
5388         * Land the new message args API and type system.
5389
5390         This patch is huge, but the public API change is not 
5391         really large. The set of D-BUS types has changed somewhat, 
5392         and the arg "getters" are more geared toward language bindings;
5393         they don't make a copy, etc.
5394
5395         There are also some known issues. See these emails for details
5396         on this huge patch:
5397         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5398         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5399         
5400         * dbus/dbus-marshal-*: all the new stuff
5401
5402         * dbus/dbus-message.c: basically rewritten
5403
5404         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5405         freed blocks to be all non-nul bytes so using freed memory is less
5406         likely to work right
5407
5408         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5409         DBUS_FAIL_MALLOC=N environment variable, so you can do
5410         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5411         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5412         thorough.
5413
5414         * qt/message.cpp: port to the new message args API
5415         (operator<<): use str.utf8() rather than str.unicode()
5416         (pretty sure this is right from the Qt docs?)
5417
5418         * glib/dbus-gvalue.c: port to the new message args API
5419
5420         * bus/dispatch.c, bus/driver.c: port to the new message args API
5421
5422         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5423         "locked" flag to TRUE and align_offset to 0; I guess we never
5424         looked at these anyhow, but seems cleaner.
5425
5426         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5427         move allocation padding macro to this header; use it to implement
5428         (_DBUS_STRING_STATIC): ability to declare a static string.
5429
5430         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5431         change to return TRUE if the interface is not set.
5432
5433         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5434         to dbus-marshal-validate.[hc]
5435
5436         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5437         dbus-internals.c
5438
5439         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5440         to dbus-marshal-*.[hc]
5441
5442         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5443         function here from dbus-marshal.c
5444
5445 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5446
5447         * NEWS: Update for 0.23.
5448
5449         * configure.in: Release 0.23.
5450
5451 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5452
5453         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5454         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5455         behind.
5456
5457         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5458         uninstall"
5459
5460         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5461         is an enum, get the enum's underlying type.  Another mono
5462         1.1.3 fix.
5463
5464 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5465
5466         Patch from Sjoerd Simons <sjoerd@luon.net>
5467
5468         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5469         DESTDIR.  It breaks stuff.
5470
5471 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5472
5473         Patch from Tambet Ingo <tambet@ximian.com>
5474
5475         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5476         calling type.GetElementType().  The code previously depended on
5477         broken Mono behavior, which was fixed in Mono 1.1.3.
5478
5479         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5480         Activator.CreateInstance() so that the class's constructor is
5481         called with the right parameters.
5482
5483 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5484
5485         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5486
5487         * dbus/dbus-connection.c
5488         (_dbus_connection_queue_received_message_link): Call
5489         _dbus_connection_remove_timeout() instead of the _locked()
5490         variant, since it's always called from
5491         _dbus_connection_handle_watch(), which handles the locking.
5492         Removed the _locked() variant since it's no longer used.
5493
5494 2005-01-03  Havoc Pennington  <hp@redhat.com>
5495
5496         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5497         return
5498         
5499 2004-12-26  Havoc Pennington  <hp@redhat.com>
5500
5501         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5502
5503 2005-01-03  Havoc Pennington  <hp@redhat.com>
5504
5505         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5506         floating point
5507
5508         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5509
5510 2005-01-02  Havoc Pennington  <hp@redhat.com>
5511
5512         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5513
5514 2005-01-01  Havoc Pennington  <hp@redhat.com>
5515
5516         * configure.in: add -Wfloat-equal
5517
5518 2005-01-01  Havoc Pennington  <hp@redhat.com>
5519
5520         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5521         for a variety of reasons '==' doesn't do this.
5522
5523 2004-12-31  Havoc Pennington  <hp@redhat.com>
5524
5525         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5526         I keep wishing I had
5527
5528 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5529
5530         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5531
5532 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5533
5534         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5535         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5536         dbus-protocol.h.  Because they are defines and not enums they are not
5537         autogenerated.
5538
5539 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5540
5541         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5542         dbus_bus_activate_service
5543
5544         * python/dbus.py (Bus.activate_service): activate a service on the
5545         bus.
5546
5547 2004-12-24  Havoc Pennington  <hp@redhat.com>
5548
5549         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5550         file format has also changed and I haven't adapted to that yet
5551         
5552         * Makefile.am: load .gcno files from latest gcc
5553
5554 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5555         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5556
5557         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5558         lowlevel binding
5559
5560         * python/dbus.py (get_unix_user): Added binding to 
5561         call dbus_bindings.bus_get_unix_user
5562
5563         * python/extract.py: Modified the proto_pat regex to
5564         handle unsigned long
5565
5566 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5567
5568         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5569         better POSIX compliance.
5570
5571 2004-12-19  Havoc Pennington  <hp@redhat.com>
5572
5573         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5574         (_dbus_string_insert_8_aligned): new functions
5575
5576         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5577
5578 2004-12-18  Havoc Pennington  <hp@redhat.com>
5579
5580         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5581         macro
5582
5583         * dbus/dbus-message.c: fix a comment, and add a still-unused
5584         not-implemented function
5585
5586         * dbus/dbus-marshal.h: fix comment
5587
5588         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5589
5590 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5591
5592         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5593         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5594         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5595         Type.UnderlyingSystemType to get the actual system type
5596         underneath.  This code previously depended on the broken Mono
5597         behavior, which was fixed in 1.1.3.
5598
5599 2004-11-27  Havoc Pennington  <hp@redhat.com>
5600
5601         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5602         are disabled
5603         (_dbus_string_get_const_data): inline when asserts are disabled
5604
5605         * dbus/dbus-message.c: record the _dbus_current_generation of
5606         creation so we can complain if dbus_shutdown() is used improperly.
5607         Do this only if checks are enabled.
5608
5609         * dbus/dbus-connection.c: ditto
5610         
5611 2004-11-26  Havoc Pennington  <hp@redhat.com>
5612
5613         * test/glib/test-profile.c: add with_bus mode to profile echoes
5614         that go through the bus.
5615
5616         * test/glib/run-test.sh: add ability to run test-profile
5617
5618         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5619         config file reload.
5620
5621 2004-11-26  Havoc Pennington  <hp@redhat.com>
5622
5623         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5624         thing was implemented
5625
5626 2004-11-26  Havoc Pennington  <hp@redhat.com>
5627
5628         * test/glib/test-profile.c: tweak a bit, add support for some
5629         made-up minimal malloc overhead with plain sockets, since in 
5630         real life some sort of buffers are unavoidable thus we could 
5631         count them in the theoretical best case
5632
5633 2004-11-26  Havoc Pennington  <hp@redhat.com>
5634
5635         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5636         where I was trying to cache one too many messages
5637
5638 2004-11-26  Havoc Pennington  <hp@redhat.com>
5639
5640         * dbus/dbus-message.c: reimplement message cache as an array which 
5641         makes the cache about twice as fast and saves maybe 1.5% overall
5642
5643 2004-11-26  Havoc Pennington  <hp@redhat.com>
5644
5645         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5646         message cache lock here
5647
5648 2004-11-26  Havoc Pennington  <hp@redhat.com>
5649
5650         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5651         the "char byte_order" next to each other to save 4 bytes
5652         (dbus_message_new_empty_header): reduce preallocation, since the
5653         message cache should achieve a similar effect
5654         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5655         message cache that keeps a few DBusMessage around in a pool,
5656         another 8% speedup or so.
5657
5658         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5659
5660 2004-11-25  Havoc Pennington  <hp@redhat.com>
5661
5662         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5663         to write, without reading or blocking, try it before the poll()
5664         and skip the poll() if nothing remains to write. This is about a
5665         3% speedup in the echo client/server
5666
5667 2004-11-25  Havoc Pennington  <hp@redhat.com>
5668
5669         The primary change here is to always write() once before adding
5670         the write watch, which gives us about a 10% performance increase.
5671         
5672         * dbus/dbus-transport-unix.c: a number of modifications to cope
5673         with removing messages_pending
5674         (check_write_watch): properly handle
5675         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5676         messages_pending stuff
5677         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5678         AUTHENTICATED cases
5679         (unix_handle_watch): after writing, see if the write watch can be
5680         removed
5681         (unix_do_iteration): assert that write_watch/read_watch are
5682         non-NULL rather than testing that they aren't, since they 
5683         aren't allowed to be NULL. check_write_watch() at the end so 
5684         we add the watch if we did not finish writing (e.g. got EAGAIN)
5685
5686         * dbus/dbus-transport-protected.h: remove messages_pending call,
5687         since it resulted in too much inefficient watch adding/removing; 
5688         instead we now require that the transport user does an iteration 
5689         after queueing outgoing messages, and after trying the first
5690         write() we add a write watch if we got EAGAIN or exceeded our 
5691         max bytes to write per iteration setting
5692
5693         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5694         function
5695
5696         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5697         freed and then accessed, valgrind flagged this bug, fix it
5698
5699         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5700         as the last valid field plus 1, where really it is equal to the
5701         last valid field. Corrects some message corruption issues.
5702
5703         * dbus/dbus-mainloop.c: verbosity changes
5704
5705         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5706         instead of aborting in one of the test codepaths
5707
5708         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5709         caused not printing the pid ever again if a verbose was missing
5710         the newline at the end
5711         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5712
5713         * dbus/dbus-connection.c: verbosity changes; 
5714         (dbus_connection_has_messages_to_send): new function
5715         (_dbus_connection_message_sent): no longer call transport->messages_pending
5716         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5717         try to write() immediately, so we can avoid the write watch. This
5718         is the core purpose of this patchset
5719         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5720         dump the outgoing message queue, so nobody will get confused
5721         trying to send them or thinking stuff is pending to be sent
5722
5723         * bus/test.c: verbosity changes
5724
5725         * bus/driver.c: verbosity/assertion changes
5726
5727         * bus/dispatch.c: a bunch of little tweaks to get it working again
5728         because this patchset changes when/where you need to block.
5729
5730 2004-11-23  Havoc Pennington  <hp@redhat.com>
5731
5732         * test/glib/test-profile.c: modify to accept a plain_sockets
5733         argument in which case it will bench plain sockets instead of
5734         libdbus, for comparison purposes.
5735
5736 2004-11-22  Havoc Pennington  <hp@redhat.com>
5737
5738         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5739         threads for more time, so sysprof can get a grip on it.
5740
5741         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5742         pointless variable
5743
5744 2004-11-13  Havoc Pennington  <hp@redhat.com>
5745
5746         * test/glib/test-profile.c: fix this thing up a bit
5747
5748         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5749         preallocation sizes by a fair bit; not sure if this will be an
5750         overall performance win or not, but it does reduce reallocs.
5751
5752         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5753         the test hack that forced constant realloc if asserts are
5754         disabled, so we can profile sanely. Sprinkle in some
5755         _DBUS_UNLIKELY() which are probably pointless, but before I
5756         noticed the real performance problem I put them in.
5757         (_dbus_string_validate_utf8): micro-optimize this thing a little
5758         bit, though callgrind says it didn't help; then special-case
5759         ascii, which did help a lot; then be sure we detect nul bytes as
5760         invalid, which is a bugfix.
5761         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5762         superstition; use memset to nul the padding instead of a manual
5763         loop.
5764         (_dbus_string_get_length): inline this as a
5765         macro; it showed up in the profile because it's used for loop
5766         tests and so forth
5767
5768 2004-11-10  Colin Walters  <walters@verbum.org>
5769
5770         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5771         for extra paranoia.
5772
5773 2004-11-09  Colin Walters  <walters@verbum.org>
5774
5775         * dbus/dbus-string.c (_dbus_string_get_length): New
5776         function, writes DBusString to C buffer.
5777
5778         * dbus/dbus-string.h: Prototype it.
5779
5780         * dbus/dbus-message.c (dbus_message_type_to_string): New
5781         function, converts message type into C string.
5782
5783         * dbus/dbus-message.h: Prototype it.
5784
5785         * bus/selinux.c (bus_selinux_check): Take source pid,
5786         target pid, and audit data.  Pass audit data to
5787         avc_has_perm.
5788         (log_audit_callback): New function, appends extra
5789         audit information.
5790         (bus_selinux_allows_acquire_service): Also take
5791         service name, add it to audit data.
5792         (bus_selinux_allows_send): Also take message
5793         type, interface, method member, error name,
5794         and destination, and add them to audit data.
5795         (log_cb): Initialize func_audit.
5796         
5797         * bus/selinux.h (bus_selinux_allows_acquire_service)
5798         (bus_selinux_allows_send): Update prototypes 
5799
5800         * bus/services.c (bus_registry_acquire_service): Pass
5801         service name to bus_selinux_allows_acquire_service.
5802
5803         * bus/bus.c (bus_context_check_security_policy): Pass
5804         additional audit data.  Move assignment of dest
5805         to its own line.
5806
5807 2004-11-07  Colin Walters  <walters@verbum.org>
5808
5809         * dbus/dbus-transport-unix.c (do_authentication): Always
5810         initialize auth_completed.
5811         
5812 2004-11-07  Colin Walters  <walters@verbum.org>
5813
5814         * bus/bus.c (load_config): Break into three
5815         separate functions: process_config_first_time_only,
5816         process_config_every_time, and process_config_postinit.
5817         (process_config_every_time): Move call of
5818         bus_registry_set_service_context_table into
5819         process_config_postinit.
5820         (process_config_postinit): New function, does
5821         any processing that needs to happen late
5822         in initialization (and also on reload).
5823         (bus_context_new): Instead of calling load_config,
5824         open config parser here and call process_config_first_time_only
5825         and process_config_every_time directly.  Later, after
5826         we have forked but before changing UID,
5827         invoke bus_selinux_full_init, and then call
5828         process_config_postinit.
5829         (bus_context_reload_config): As in bus_context_new,
5830         load parse file inside here, and call process_config_every_time
5831         and process_config_postinit.
5832
5833         * bus/services.h, bus/services.c
5834         (bus_registry_set_service_context_table): Rename
5835         from bus_registry_set_sid_table.  Take string hash from config
5836         parser, and convert them here into SIDs.
5837
5838         * bus/config-parser.c (struct BusConfigParser): Have
5839         config parser only store a mapping of service->context
5840         string.
5841         (merge_service_context_hash): New function.
5842         (merge_included): Merge context string hashes instead
5843         of using bus_selinux_id_table_union.
5844         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5845         simply create a new string hash.
5846         (bus_config_parser_unref): Unref it.
5847         (start_selinux_child): Simply insert strings into hash,
5848         don't call bus_selinux_id_table_copy_over.
5849
5850         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5851         (bus_selinux_id_table_copy_over): Delete.
5852
5853 2004-11-03  Colin Walters  <walters@verbum.org>
5854
5855         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5856         variables.
5857         
5858 2004-11-03  Colin Walters  <walters@verbum.org>
5859
5860         * bus/test-main.c (test_pre_hook): Fix test logic,
5861         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5862
5863 2004-11-02  Colin Walters  <walters@redhat.com>
5864
5865         * bus/selinux.c (bus_selinux_init): Split into two functions,
5866         bus_selinux_pre_init and bus_selinux_post_init.
5867         (bus_selinux_pre_init): Just determine whether SELinux is
5868         enabled.
5869         (bus_selinux_post_init): Do everything else.
5870
5871         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5872         config file, and bus_selinux_post_init after.  This ensures that
5873         we don't lose the policyreload notification thread that
5874         bus_selinux_init created before forking previously.
5875         
5876         * bus/test-main.c (test_pre_hook): Update for split.
5877
5878 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5879
5880         Patch from Johan Fischer <linux@fischaz.com>
5881         
5882         * mono/doc/Makefile.am (install-data-local): Added directory
5883         install for DESTDIR
5884
5885 2004-10-29  Colin Walters  <walters@redhat.com>
5886
5887         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5888         parameter for fd to write pid to.       
5889
5890         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5891         
5892         * bus/bus.c (bus_context_new): Pass print_pid_fd
5893         to _dbus_become_daemon (bug #1720)
5894
5895 2004-10-29  Colin Walters  <walters@redhat.com>
5896
5897         Patch from Ed Catmur <ed@catmur.co.uk>
5898
5899         * mono/doc/Makefile.am (install-data-local): Handle
5900         DESTDIR.
5901
5902 2004-10-29  Colin Walters  <walters@redhat.com>
5903
5904         * bus/.cvsignore, qt/.cvsignore: Update.
5905
5906 2004-10-29  Colin Walters  <walters@redhat.com>
5907
5908         Patch from Kristof Vansant <de_lupus@pandora.be>
5909
5910         * configure.in: Detect Slackware.
5911         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5912         * bus/rc.messagebus.in: New file.
5913
5914 2004-10-29  Colin Walters  <walters@redhat.com>
5915
5916         * tools/dbus-monitor.c (filter_func): Return
5917         DBUS_HANDLER_RESULT_HANDLED in filter function
5918         for now.  See:
5919         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5920
5921 2004-10-29  Colin Walters  <walters@redhat.com>
5922
5923         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5924
5925         * bus/services.c (bus_registry_acquire_service): 
5926         Correctly retrieve service name from DBusString
5927         for printing.
5928
5929 2004-10-29  Colin Walters  <walters@redhat.com>
5930
5931         * dbus/dbus-glib.h: Update documentation to not
5932         refer to internal APIs.
5933
5934 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5935
5936         * mono/Arguments.cs (GetDBusTypeConstructor):
5937         type.UnderlyingSystemType will return "System.Byte" if you do it
5938         on "byte[]", which is not what we want.  So check the type.IsArray
5939         property and use System.Array instead.
5940
5941 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5942
5943         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5944         the DBusUserInfo structure since this is passed into the function.
5945         This would cause a double free when the function that allocated
5946         the structure would try to free it when an error occured.
5947
5948         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5949         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5950         for service activation to avoid 32bit/64bit parallel install issues
5951
5952 2004-10-21  Colin Walters  <walters@verbum.org>
5953
5954         * AUTHORS: Fix my email address, the @gnu.org one
5955         has been bouncing for some time.  Also add J5.
5956         
5957 2004-10-21  Colin Walters  <walters@verbum.org>
5958
5959         * dbus/dbus-transport-unix.c (do_authentication): Return
5960         authentication status to callers.
5961         (unix_handle_watch): If we completed authentication this round,
5962         don't do another read.  Instead wait until the next iteration,
5963         after we've read any pending data in the auth buffer.
5964         (unix_do_iteration): Ditto.
5965         (unix_handle_watch): Updated for new do_authentication prototype.
5966
5967 2004-10-18  Colin Walters  <walters@verbum.org>
5968
5969         * bus/selinux.c (bus_selinux_enabled): Handle
5970         --disable-selinux case.
5971         
5972 2004-10-18  Colin Walters  <walters@verbum.org>
5973
5974         * bus/selinux.h: Add bus_selinux_enabled.
5975         
5976         * bus/selinux.c (bus_selinux_enabled): Implement it.
5977         
5978         * bus/config-parser.c (struct include): Add
5979         if_selinux_enabled member.
5980         (start_busconfig_child): Parse if_selinux_enabled
5981         attribute for include.
5982         (bus_config_parser_content): Handle it.
5983
5984         * bus/session.conf.in, bus/system.conf.in: Add
5985         inclusion of context mapping to default config files;
5986         conditional on SELinux being enabled.
5987         
5988         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5989         
5990         * test/data/invalid-config-files/badselinux-1.conf, 
5991         test/data/invalid-config-files/badselinux-2.conf:
5992         Test files for bad syntax.
5993         
5994 2004-10-17  Colin Walters  <walters@verbum.org>
5995
5996         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5997         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5998         format specifier mismatches.
5999
6000 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6001
6002         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6003         format string.
6004
6005         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6006         pointer (bug #1540, Leonardo Boiko).
6007
6008 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6009
6010         * mono/BusDriver.cs: Changed BusDriver struct to remove
6011         the ServiceCreated and ServiceDeleted events and replace them
6012         with the new ServiceOwnerChanged event.
6013
6014         * mono/example/BusListener.cs: Added a new example program,
6015         which listens for and reports any ServiceOwnerChanged events
6016         on the bus driver.
6017
6018         * mono/example/Makefile.am (DESTDIR): Build changes for the
6019         new BusListener.cs example.
6020
6021 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6022
6023         * bus/signals.c (bus_match_rule_parse): validate the components of
6024         match rules (bug #1439).
6025
6026         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6027
6028 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6029
6030         * doc/dbus-specification.xml: document ServiceOwnerChanged
6031         signal.
6032         
6033         * bus/driver.c, bus/driver.h, bus/services.c: Use
6034         ServiceOwnerChanged signal instead of ServiceCreated and
6035         ServiceDeleted.
6036         
6037         * bus/dispatch.c: update testcase for the new signal.
6038
6039 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6040
6041         Patch from Nat Friedman <nat@novell.com>
6042
6043         * mono/Makefile.am: A number of small build fixes to allow "make
6044         distcheck" to succeed.
6045
6046         * mono/example/Makefile.am: "make distcheck" fixes.
6047
6048         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6049         key in @srcdir@.
6050
6051         * test/Makefile.am: "make distcheck" fixes.
6052
6053 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6054
6055         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6056
6057         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6058
6059         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6060         messages after the first one (bug #1389).
6061         
6062         * bus/dispatch.c (check_double_hello_message): add a test case for
6063         the double hello message bug.
6064         (check_existent_service_activation): fix check of spawning error.
6065         
6066 2004-09-16  David Zeuthen  <david@fubar.dk>
6067
6068         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6069
6070 2004-09-12  David Zeuthen  <david@fubar.dk>
6071
6072         Patch from Kay Sievers <kay.sievers@vrfy.org>
6073
6074         * bus/bus.c (bus_context_new):
6075         * bus/bus.h:
6076         * bus/main.c (usage)
6077         (main):
6078         Add commandline option --nofork to override configuration file
6079         setting.
6080
6081 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6082
6083         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6084         compilers don't like it (bug #974).
6085
6086 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6087
6088         * qt/connection.*: Applied patch by Jérôme Lodewyck
6089         <lodewyck@clipper.ens.fr> to integrate an existing
6090         connection into the Qt eventloop
6091
6092 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6093
6094         * mono/BusDriver.cs: Added.  This is a class for interacting with
6095         the org.freedesktop.DBus service.
6096
6097         * mono/Message.cs: Added a mechanism to expose the message that is
6098         currently being dispatched via the static Message.Current
6099         property.  Added Message.Sender and Message.Destination
6100         properties.
6101
6102         * mono/Handler.cs: Expose the dispatched message via
6103         Message.Current when handling method calls.
6104
6105         * mono/Service.cs: Expose the dispatched message via
6106         Message.Current when handling signal emissions.
6107         
6108         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6109         Connection.BaseService property.
6110
6111 2004-08-28  Havoc Pennington  <hp@redhat.com>
6112
6113         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6114
6115         More fixes from Steve Grubb
6116         
6117         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6118         (_dbus_listen_tcp_socket): fix fd leak
6119
6120         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6121         EINTR to a bit lower in the code
6122
6123 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6124
6125         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6126         TRUE if we are inquiring about the existence of the built-in
6127         org.freedesktop.DBus service.
6128
6129 2004-08-25  John Palmieri  <johnp@redhat.com>
6130         * bus/config-parser.c:
6131         (struct PolicyType): Add POLICY_CONSOLE
6132         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6133         (start_busconfig_child): Sets up console element when
6134         <policy at_console=""> is encountered in a policy file
6135         (append_rule_from_element): Convert console elements to console
6136         rules.
6137
6138         * bus/policy.c: 
6139         (bus_policy_create_client_policy): Add console rules to the client
6140         policy based on if the client is at the console
6141         (bus_policy_append_console_rule): New function for adding a
6142         console rule to a policy
6143         (bus_policy_merge): Handle console rule merging
6144
6145         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6146         where we check for console user files
6147         
6148         * dbus/dbus-sysdeps.c:
6149         (_dbus_file_exists): New function which checks if the given
6150         file exists
6151         (_dbus_user_at_console): New function which does the system
6152         specific process of checking if the user is at the console
6153
6154         * dbus/dbus-userdb.c:
6155         (_dbus_is_console_user): New function converts a UID to user name
6156         and then calls the system specific _dbus_user_at_console to 
6157         see if the user is at the console and therefor a console user
6158
6159 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6160
6161         * bus/config-parser.c (set_limit):
6162         * bus/dbus-daemon-1.1.in:
6163         * test/data/valid-config-files/many-rules.conf: set the
6164         max_match_rules_per_connection limt from the config file. 
6165
6166         * doc/busconfig.dtd: update the DTD.
6167
6168         * bus/driver.c: remove some unused variables.
6169
6170 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6171
6172         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6173         it's been replaced by dbus_g_bus_get
6174
6175 2004-08-23  Colin Walters  <walters@redhat.com>
6176
6177         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6178
6179         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6180
6181         * bus/selinux.c: Create a thread for policy reload notification.
6182         (bus_selinux_get_policy_root): Implement.
6183
6184         * bus/config-parser.c (start_busconfig_child)
6185         (bus_config_parser_content): Support SELinux-root relative
6186         inclusion.
6187
6188         * configure.in <HAVE_SELINUX>: Add -lpthread.
6189         
6190         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6191         (test_post_hook): Move memory checking into here.
6192         (test_pre_hook, test_post_hook): Move SELinux checks in
6193         here, but conditional on a DBUS_TEST_SELINUX environment
6194         variable.  Unfortunately we can't run the SELinux checks
6195         as a normal user, since they won't have any permissions
6196         for /selinux.  So this will have to be tested manually
6197         for now, until we have virtualization for most of
6198         libselinux.
6199         
6200 2004-08-23  Havoc Pennington  <hp@redhat.com>
6201
6202         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6203         drop supplementary groups, suggested by Steve Grubb
6204
6205 2004-08-20  Colin Walters  <walters@redhat.com>
6206
6207         * bus/config-parser.c (start_busconfig_child): Remove some unused
6208         variables.
6209         
6210         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6211         warning.
6212
6213 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6214
6215         * configure.in: If --enable-mono is passed in, if we can't find
6216         mono error out.
6217
6218         * mono/Makefile.am: Use /gacutil to install assemblies into the
6219         GAC and not /root.
6220
6221 2004-08-12  Havoc Pennington  <hp@redhat.com>
6222
6223         * NEWS: update for 0.22
6224
6225         * configure.in: release 0.22
6226
6227 2004-08-11  Colin Walters  <walters@redhat.com>
6228
6229         * tools/dbus-send.c (main, usage): Add --reply-timeout
6230         argument.
6231
6232 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6233
6234         * bus/bus.c (process_config_first_time_only): get rid of an unused
6235         DBusError that was causing a memoy leak (bug #989).
6236
6237         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6238         fix compilation on Solaris/Forte C (bug #974)
6239
6240         * bus/main.c (main): plug two minuscule memleaks.
6241
6242 2004-08-10  Havoc Pennington  <hp@redhat.com>
6243
6244         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6245
6246 2004-08-09  Havoc Pennington  <hp@redhat.com>
6247
6248         * COPYING: switch to Academic Free License version 2.1 instead of
6249         2.0, to resolve complaints about patent termination clause.
6250
6251 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6252
6253         * README: added documentation for the --enable-python 
6254         configure switch.
6255
6256 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6257
6258         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6259         _unref in the SELinux support.
6260
6261         * doc/busconfig.dtd: update DTD for SELinux support.
6262
6263         * bus/config-loader-libxml.c: fix error handler and parser
6264         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6265
6266         * configure.in: remove the warning about libxml2.
6267
6268         * dbus/dbus-bus.c: silence doxygen warning.
6269
6270 2004-07-31  Colin Walters  <walters@redhat.com>
6271
6272         * configure.in: Move #error in SELinux check to its own line.
6273
6274 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6275
6276         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6277         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6278         dbus_error_set.
6279
6280         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6281         broken by the change in the _SET_OOM macros.
6282
6283 2004-07-31  Colin Walters  <walters@redhat.com>
6284
6285         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6286         BUS_SET_OOM.
6287
6288 2004-07-31  Colin Walters  <walters@redhat.com>
6289
6290         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6291         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6292         AC_MSG_CHECKING.
6293
6294 2004-07-24  Havoc Pennington  <hp@redhat.com>
6295
6296         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6297
6298         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6299         functionality
6300
6301         * configure.in: add --enable-selinux
6302         
6303         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6304
6305         * bus/main.c (main): initialize and shut down selinux
6306
6307         * bus/connection.c: store SELinux ID on each connection, to avoid 
6308         repeated getting of the string context and converting it into 
6309         an ID
6310
6311         * bus/bus.c (bus_context_get_policy): new accessor, though it
6312         isn't used
6313         (bus_context_check_security_policy): check whether the security
6314         context of sender connection can send to the security context of
6315         recipient connection
6316
6317         * bus/config-parser.c: add parsing for <selinux> and <associate>
6318         
6319         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6320         implement dbus_connection_get_unix_fd()
6321
6322         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6323         function, used by the selinux stuff
6324         
6325 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6326
6327         * bus/config-loader-libxml.c: complete the implementation of
6328         libxml backend for config file loader. Doesn't work with full OOM
6329         test yet. 
6330         
6331         * configure.in: change error when selecting libxml into a warning.
6332         
6333         * test/data/invalid-config-files: add two non-well-formed XML
6334         files. 
6335         
6336         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6337         
6338         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6339         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6340         be necessary to read all the buffer. (bug #894)
6341
6342         * bus/activation.c (bus_activation_activate_service): fix a
6343         potential assertion failure (bug #896). Small optimization in the
6344         case of auto-activation messages.
6345
6346         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6347         add test case for byte-through-vararg bug (#901). patch by Kimmo
6348         Hämäläinen. 
6349
6350 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6351
6352         * python/dbus.py:
6353         * python/dbus_bindings.pyx.in:
6354         Add dbus.init_gthreads (), allow emit_signal to pass
6355         arguments to the signal.
6356         
6357 2004-07-24  Havoc Pennington  <hp@redhat.com>
6358
6359         * AUTHORS: add some people, not really comprehensively, let me
6360         know if I missed you
6361
6362 2004-07-24  Havoc Pennington  <hp@redhat.com>
6363
6364         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6365         Owen
6366
6367         * test/Makefile.am (DIST_SUBDIRS): here also
6368
6369 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6370
6371         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6372         breaking build on Solaris, reported by Farhad Saberi on the ML.
6373
6374         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6375         va_arg invocation to account for integer promotion in the case of
6376         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6377
6378         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6379         _dbus_list_get_first_link, not _dbus_list_get_first.
6380
6381         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6382
6383         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6384         handler functions so that the asserts in _dbus_object_subtree_unref
6385         do not fail.
6386
6387         * dbus/dbus-transport-unix.c (do_reading):
6388         _dbus_transport_queue_messages return value is of type
6389         dbus_bool_t, not DBusDispatchStatus.
6390         
6391 2004-07-19  David Zeuthen  <david@fubar.dk>
6392
6393         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6394
6395         * bus/dispatch.c:
6396         (check_get_connection_unix_user): Debug says GetProperty; but the
6397         method is called GetConnectionUnixUser
6398         (check_get_connection_unix_process_id): New function
6399         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6400         also call check_get_connection_unix_process_id()
6401         
6402         * bus/driver.c:
6403         (bus_driver_handle_get_connection_unix_process_id): New function,
6404         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6405         interface
6406         
6407         * dbus/dbus-auth.c:
6408         (handle_server_data_external_mech): Set pid from the credentials
6409         obtained from the socket
6410         
6411         * dbus/dbus-connection.c:
6412         (dbus_connection_get_unix_process_id): New function
6413         
6414         * dbus/dbus-connection.h: 
6415         Add prototype for dbus_connection_get_unix_process_id
6416         
6417         * dbus/dbus-transport.c:
6418         (_dbus_transport_get_unix_process_id): New function
6419         
6420         * dbus/dbus-transport.h:
6421         Add prototype for _dbus_transport_get_unix_process_id
6422         
6423 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6424
6425         * dbus/dbus-message.c: Message counter fix, patch by Christian
6426         Hammond <chipx86@gnupdate.org>
6427
6428 2004-07-18  Seth Nickell  <seth@gnome.org>
6429
6430         * python/dbus.py:
6431         * python/dbus_bindings.pyx.in:
6432         * python/tests/test-client.py:
6433
6434         Add dbus.ByteArray and dbus_bindings.ByteArray
6435         types so that byte streams can be passed back.
6436
6437         Give jdahlin the heaps of credit that are so
6438         rightfully his.
6439         
6440 2004-07-12  Seth Nickell  <seth@gnome.org>
6441
6442         * python/dbus.py:
6443
6444         Add message argument to the default object_method_handler
6445         function.
6446         
6447         * python/dbus_bindings.pyx.in:
6448
6449         Automatically return NIL when passed an empty list
6450         (we can't pass back a list since lists are typed
6451         and we don't have any idea what type the the client
6452         intended the list to be... :-( )
6453         
6454 2004-07-10  Seth Nickell  <seth@gnome.org>
6455
6456         * python/examples/Makefile.am:
6457
6458         Fix distcheck breakage caused by new examples.
6459
6460 2004-07-10  Seth Nickell  <seth@gnome.org>
6461
6462         * python/dbus.py:
6463
6464         Add "message" argument to service-side dbus.Object
6465         methods. This will break existing services written
6466         using the python bindings, but will allow extraction
6467         of all the message information (e.g. who its from).
6468
6469         Add improved "object oriented" signal handling/emission.
6470         
6471         * python/examples/example-service.py:
6472
6473         Nix this example.
6474         
6475         * python/examples/example-signal-emitter.py:
6476         * python/examples/example-signal-recipient.py:
6477
6478         Two new examples that show how to emit and receive
6479         signals using the new APIs.
6480         
6481         * python/examples/example-signals.py:
6482         * python/examples/gconf-proxy-service.py:
6483         * python/examples/gconf-proxy-service2.py:
6484
6485         Add "message" argument to service methods.
6486
6487 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6488
6489         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6490         * dbus/bus.c (dbus_bus_get_unix_user)
6491         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6492         method of org.freedesktop.DBus interface.
6493
6494         * bus/dispatch.c: test case
6495
6496 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6497
6498         * python/Makefile.am: switched include directory from glib/ to dbus/
6499         since dbus-glib.h moved
6500  
6501 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6502
6503         * configure.in: prevent building the gcj stuff and libxml loader
6504         since they are broken.
6505
6506 2004-06-20  Havoc Pennington  <hp@redhat.com>
6507
6508         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6509         codes from the dbus error names
6510         
6511         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6512         as dbus/dbus-glib.h and that breakage is now visible due to 
6513         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6514         
6515         * glib/dbus-glib.h: s/gproxy/g_proxy/
6516
6517         * dbus/dbus-shared.h: new header to hold stuff shared with
6518         binding APIs
6519         
6520         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6521         than dbus-errors.h
6522
6523         * glib/dbus-glib.h (dbus_set_g_error): move to
6524         dbus-glib-lowlevel.h
6525
6526         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6527         of stuff to enable this
6528
6529         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6530
6531         * a bunch of other changes with the same basic "separate glib 
6532         bindings from dbus.h" theme
6533         
6534 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6535
6536         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6537
6538         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6539
6540 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6541
6542         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6543         the reply value of the ServiceExists message.
6544
6545 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6546
6547         * python/dbus_bindings.pyx.in: No longer need to parse path
6548         elements and pass them as arrays of strings.  The C API now
6549         accepts plain path strings.
6550         (_build_parsed_path): removed 
6551
6552 2004-06-07  Havoc Pennington  <hp@redhat.com>
6553
6554         * doc/TODO: remove auto-activation item since it's done; sort
6555         items by importance/milestone
6556
6557 2004-06-07  Havoc Pennington  <hp@redhat.com>
6558
6559         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6560         random signature when using REQUIRED_FIELDS (this hack won't work
6561         in the long term)
6562
6563         * dbus/dbus-message.c: change the signature to be a header field,
6564         instead of message->signature special-case string. Incremental
6565         step forward. Then we can fix up code to send the signature in the
6566         message, then fix up code to validate said signature, then fix up
6567         code to not put the typecodes inline, etc.
6568         (load_one_message): don't make up the signature after the fact
6569         (decode_header_data): require signature field for the known
6570         message types
6571
6572         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6573
6574         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6575
6576 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6577
6578         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6579
6580         * mono/Handler.cs: Updated to follow new path argument for
6581         (un-)registering objects.
6582
6583         * mono/example/Makefile.am:
6584         * mono/Makefile.am:
6585         * configure.in: Bumped required version for mono and use new -pkg
6586         syntax for deps
6587
6588 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6589
6590         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6591         registration functions take the path argument as char* instead of
6592         char**.
6593
6594         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6595         split off the path decompostion part of
6596         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6597         warnings. 
6598
6599         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6600         
6601 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6602  
6603         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6604         machine approach.  A state is implemented as a function that
6605         handles incoming events as specified for that state.
6606         
6607         * doc/dbus-specification.xml: Update auth protocol state machine
6608         specification to match implementation.  Remove some leftover
6609         base64 examples.
6610
6611 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6612
6613         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6614         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6615         quiet doxygen.
6616
6617         * Doxyfile.in: remove deprecated options.
6618
6619         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6620         glib/test-thread.h, glib/test-thread-client.c,
6621         glib/test-thread-server.c, glib/test-profile.c,
6622         glib/test-dbus-glib.c: remove these unused files.
6623
6624 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6625
6626         * dbus/dbus-object-tree.c
6627         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6628         non-fallback handlers (bug #684).
6629         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6630         (find_subtree_recurse): report wether the returned subtree is an
6631         exact match or a "fallback" match higher up in the tree.
6632         (object_tree_test_iteration): update test case.
6633
6634 2004-06-01  Seth Nickell  <seth@gnome.org>
6635
6636         * python/dbus_bindings.pyx.in:
6637         * python/tests/test-client.py:
6638
6639         Round off basic type support. Add dicts (yay!), and 
6640         remaining array types.
6641
6642         Make MessageIter more general so it works for dicts too.
6643
6644         Mark all loop variables as C integers.
6645         
6646 2004-05-31  Havoc Pennington  <hp@redhat.com>
6647
6648         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6649         "in" before "out"
6650
6651         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6652
6653         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6654         option that runs the tests, and start filling in some code
6655         including for starters just dumping the interfaces to stdout
6656
6657         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6658
6659         * test/data/valid-introspection-files/lots-of-types.xml: test of
6660         an example introspection file
6661
6662         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6663         "node" (I think...)
6664
6665 2004-05-31  Seth Nickell  <seth@gnome.org>
6666
6667         * python/dbus_bindings.pyx.in:
6668         * python/tests/test-client.py:
6669
6670         Test Suite: 1
6671         Python Bindings: 0
6672
6673         Fix string array memory trashing bug... oops...
6674
6675 2004-05-30  Seth Nickell  <seth@gnome.org>
6676
6677         * python/dbus.py:
6678
6679         Add a nicer-but-less-flexible alternate API for handling 
6680         calls to virtual objects in dbus.ObjectTree.
6681
6682         Screw up the argument order to the dbus.Object constructor
6683         for consistency with dbus.ObjectTree (and to make dbus_methods
6684         optional for future extension)
6685         
6686         * python/examples/Makefile.am:
6687         * python/examples/gconf-proxy-service.py:
6688         * python/examples/gconf-proxy-service2.py:
6689
6690         Alternate implementation of gconf-proxy-service using the
6691         nicer dbus.ObjectTree API.
6692         
6693         * python/examples/example-service.py:
6694         * python/tests/test-server.py
6695
6696         Reverse the argument order to deal with dbus.Object constructor
6697         changes.
6698         
6699 2004-05-30  Seth Nickell  <seth@gnome.org>
6700
6701         * python/examples/example-client.py:
6702         * python/examples/example-service.py:
6703
6704         Take it back. Lists seem to work but they're broken
6705         in the test suite. Make the base examples use
6706         lists (works fine).
6707
6708 2004-05-30  Seth Nickell  <seth@gnome.org>
6709
6710         * python/dbus_bindings.pyx.in:
6711         * python/tests/test-client.py:
6712
6713         Add some more tests and fix errors that crop up.
6714         Unfortunately, currently it seems like marshalling
6715         and unmarshalling of lists is completely broken :-(
6716
6717 2004-05-30  Seth Nickell  <seth@gnome.org>
6718
6719         * python/dbus_bindings.pyx.in:
6720
6721         Add support for ObjectPath type.
6722
6723         * python/dbus.py:
6724
6725         Refactor message handling code to a common function.
6726         
6727         * python/tests/test-client.py:
6728         * python/tests/test-server.py:
6729
6730         Add tests that check to make sure values of all types
6731         can be echoed from a service w/o mangling.
6732         
6733 2004-05-29  Seth Nickell  <seth@gnome.org>
6734
6735         * python/dbus.py:
6736
6737         Add ObjectTree class which allows implementation
6738         of trees of "virtual" objects. Basically the python
6739         wrapper for "register_fallback".
6740         
6741         * python/examples/Makefile.am
6742         * python/examples/gconf-proxy-client.py:
6743         * python/examples/gconf-proxy-service.py:
6744
6745         Implement a simple GConf proxy service that supports
6746         get/set on string and int GConf keys using the ObjectTree.
6747         
6748 2004-05-29  Seth Nickell  <seth@gnome.org>
6749
6750         * python/dbus.py:
6751         * python/examples/example-client.py:
6752         * python/examples/example-service.py:
6753         * python/examples/list-system-services.py:
6754
6755         Add SessionBus, SystemBus and ActivationBus classes
6756         so you don't need to know the special little BUS_TYPE
6757         flag.
6758         
6759 2004-05-29  Havoc Pennington  <hp@redhat.com>
6760
6761         * bus/config-parser.c (process_test_valid_subdir): temporarily
6762         stop testing config parser OOM handling, since expat has issues
6763         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6764
6765         * bus/dbus-daemon-1.1.in: change requested_reply to
6766         send_requested_reply/receive_requested_reply so we can send the
6767         replies, not just receive them.
6768
6769         * bus/config-parser.c: parse the new
6770         send_requested_reply/receive_requested_reply
6771
6772         * bus/policy.c (bus_client_policy_check_can_send): add
6773         requested_reply argument and use it
6774
6775         * bus/bus.c (bus_context_check_security_policy): pass through
6776         requested_reply status to message send check
6777
6778         * bus/system.conf.in: adapt to requested_reply change
6779         
6780 2004-05-28  Havoc Pennington  <hp@redhat.com>
6781
6782         * test/glib/test-service-glib.c (main): remove unused variable
6783
6784         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6785
6786         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6787         from the enum, no longer in use.
6788
6789         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6790         works right.
6791
6792         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6793         whether error_name passed in is a valid error name.
6794
6795 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6796
6797         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6798         OBJECT_PATH and OBJECT_PATH_ARRAY
6799
6800 2004-05-28  Seth Nickell  <seth@gnome.org>
6801
6802         * python/examples/Makefile.am:
6803
6804         Forget to add Makefile.am. Do not pass go.
6805
6806 2004-05-28  Michael Meeks  <michael@ximian.com>
6807
6808         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6809         fix no int64 case.
6810
6811         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6812
6813         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6814         (_dbus_message_iter_get_basic_type_array): impl.
6815         drastically simplify ~all relevant _get methods to use these.
6816         (_dbus_message_iter_append_basic_array),
6817         (dbus_message_iter_append_basic): impl
6818         drastically simplify ~all relevant _append methods to use these.
6819
6820         * dbus/dbus-message-builder.c (parse_basic_type) 
6821         (parse_basic_array, lookup_basic_type): impl.
6822         (_dbus_message_data_load): prune scads of duplicate /
6823         cut & paste coding.
6824
6825         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6826         (_dbus_demarshal_basic_type): implement,
6827         (demarshal_and_validate_len/arg): beef up debug.
6828         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6829
6830 2004-05-27  Seth Nickell  <seth@gnome.org>
6831
6832         * configure.in:
6833         * python/Makefile.am:
6834
6835         Include the example python apps in the tarball.
6836         
6837         * python/examples/list-system-services.py
6838
6839         Add a python new example that fetches the list of services
6840         from the system bus.
6841         
6842 2004-05-27  Seth Nickell  <seth@gnome.org>
6843
6844         * python/dbus.py:
6845         * python/dbus_bindings.pyx.in:
6846
6847         Fix failure to notify that a signal was not handled,
6848         resulted in hung functions.
6849         
6850 2004-05-25  Colin Walters  <walters@redhat.com>
6851
6852         * tools/dbus-monitor.c (main): Monitor all types of messages.
6853
6854 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6855
6856         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6857         which unregisters the object path and disposes the handler.
6858
6859 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6860  
6861         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6862          
6863         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6864         operands to && so we call dbus_message_iter_next () for the last
6865         argument also.
6866
6867 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6868
6869         * dbus/dbus-object-tree.c
6870         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6871         children even if the requested path isn't registered.
6872         (object_tree_test_iteration): test object_tree_list_registered.
6873
6874         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6875         it to 0.
6876         
6877 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6878
6879         * doc/TODO: Remove resolved items.
6880
6881         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6882         field.
6883         
6884         * bus/connection.c (bus_connections_expect_reply): Enforce the
6885         per-connection limit on pending replies.
6886         
6887         Patch from Jon Trowbridge <trow@ximian.com>:
6888  
6889         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6890         up a watch that triggers a config reload when one end of the pipe
6891         becomes readable.
6892         (signal_handler): Instead of doing the config reload in our SIGHUP
6893         handler, just write to the reload pipe and let the associated
6894         watch handle the reload when control returns to the main loop.
6895  
6896         * bus/driver.c (bus_driver_handle_reload_config): Added.
6897         Implements a ReloadConfig method for requesting a configuration
6898         file reload via the bus driver.
6899  
6900 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6901
6902         * HACKING: Updated release instructions concerning the wiki page.
6903
6904 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6905
6906         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6907         filter against auth->allowed_mechs; we only add allowed mechs in
6908         record_mechanisms().
6909  
6910         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6911         ALLOWED_MECHS to auth-script format so we can set the list of
6912         allowed mechanisms.
6913  
6914         * data/auth/client-out-of-mechanisms.auth-script: New test to
6915         check client disconnects when it is out of mechanisms to try.
6916  
6917         * dbus/dbus-auth.c (process_command): Remove check for lines
6918         longer that 1 MB; we only buffer up maximum 16 kB.
6919  
6920         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6921         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6922         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6923         assume there might be unused bytes.
6924  
6925         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6926         client-out-of-mechs, it is handled in process_reject(). Move check
6927         for max failures to send_rejected(), as it's a server-only thing.
6928
6929         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6930         send_auth(), send_data(), send_rejected(), send_error(),
6931         send_ok(), send_begin() and send_cancel().
6932
6933 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6934
6935         Remove base64 encoding, replace with hex encoding. Original patch
6936         from trow@ximian.com, added error handling.
6937
6938         * dbus/dbus-string.c (_dbus_string_base64_encode)
6939         (_dbus_string_base64_decode): Remove.
6940         (_dbus_string_hex_decode): Add end_return argument so we can
6941         distinguish between OOM and invalid hex encoding.
6942         (_dbus_string_test): Remove base64 tests and add test case for
6943         invalid hex.
6944
6945         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6946         Replace base64 with hex.
6947
6948         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6949         for invalid hex encoded data in auth protocol.
6950
6951 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6952
6953         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6954         leak.
6955
6956 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6957
6958         * mono/dbus-sharp.dll.config.in: Added for GAC
6959         * mono/dbus-sharp.snk: Added for GAC
6960         * mono/Assembly.cs.in: Added for GAC
6961         * mono/Makefile.am: Changes for GAC installation        
6962         * configure.in: Added refs for dbus-sharp.dll.config.in and
6963         Assembly.cs.in. More fixes for mono testing
6964         * mono/example/Makefile.am: Changed var to CSC
6965         * Makefile.am: Changed flag name to DBUS_USE_CSC
6966
6967 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6968
6969         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6970         * mono/doc/*: Added documentation framework
6971         * configure.in: Added monodoc check
6972         * README: Added description of mono configure flags
6973
6974 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6975
6976         * doc/dbus-specification.xml: Added a "Required" column to the 
6977         header fields table and changed the "zero or more" verbage in
6978         the above paragraph to read "The header must contain the required 
6979         named header fields and zero or more of the optional named header 
6980         fields".
6981         * test/data/invalid-messages/*.message: Added the required PATH 
6982         named header field to the tests so that they don't fail on 
6983         'Missing path field'
6984
6985 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6986
6987         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6988         the stack by implicitly defining variable and parameter types and
6989         removing the hack of defining C pointers as python objects and later
6990         casting them.
6991
6992 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6993
6994         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6995
6996 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6997
6998         * mono/DBusType/Dict.cs: Handle empty dicts
6999         * mono/DBusType/Array.cs: Handle empty arrays
7000         * mono/Arguments.cs: Handle empty arguments
7001
7002 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7003
7004         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7005         field
7006
7007 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7008
7009         * test/data/valid-messages/standard-*.message: Update message
7010         test scripts to new header field names.
7011
7012 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7013
7014         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7015         overflow to times_we_did_each_thing array which would chop off the
7016         first character of the failure_dir string. Increased the size of
7017         the array to 7 to reflect the number of random mutation functions
7018         we have.
7019
7020 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7021
7022         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7023         unix_server->watch here, it is unreffed in disconnect.
7024         (_dbus_server_new_for_tcp_socket): convert NULL host to
7025         "localhost" here so we don't append NULL to address.
7026         
7027         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7028         various addresses, including tcp with no explicit host.
7029
7030 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7031
7032         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7033         fix incorrect setting of .name_offset in the HeaderField (it was
7034         off by two bytes, positioned right after the name and typecode)
7035
7036         * bus/bus.c (bus_context_new, bus_context_unref): test before
7037         calling dbus_server_free_data_slot and _dbus_user_database_unref
7038         in case of an error.
7039
7040         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7041         by libdbus-gtool.
7042
7043 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7044
7045         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7046         _dbus_poll() instead of select().
7047
7048 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7049
7050         * bus/main.c (signal_handler): Reload the configuration files
7051         on SIGHUP.
7052         (main): Set up our SIGHUP handler.
7053
7054         * bus/bus.c (struct BusContext): Store the config file, user and
7055         fork flag in the BusContext.
7056         (process_config_first_time_only): Added.  Contains the code
7057         (previously in bus_context_new) for setting up the BusContext from
7058         the BusConfigParser that should only be run the first time the
7059         config files are read.
7060         (process_config_every_time): Added.  Contains the code (previously
7061         in bus_context_new) for setting up the BusContext from the
7062         BusConfigParser that should be run every time the config files are
7063         read.
7064         (load_config): Added.  Builds a BusConfigParser from the config
7065         files and passes the resulting structure off to
7066         process_config_first_time_only (assuming this is the first time)
7067         and process_config_every_time.
7068         (bus_context_new): All of the config-related code has been moved
7069         to process_config_first_time_only and process_config_every_time.
7070         Now this function just does the non-config-related initializations
7071         and calls load_config.
7072         (bus_context_reload_config): Added.
7073
7074 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7075
7076         * bus/driver.c (bus_driver_handle_get_service_owner):
7077         implement a GetServiceOwner method.
7078         * doc/dbus-specification.xml: document it.
7079         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7080         
7081         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7082         implement, using the bus GetServiceOwner method.
7083
7084         * test/glib/test-dbus-glib.c:
7085         use dbus_gproxy_new_for_service_owner so that we can receive the
7086         signal. 
7087
7088 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7089
7090         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7091         dbus/dbus-message.c, dbus/dbus-protocol.h
7092         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7093
7094         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7095         dbus/dbus-message.c, dbus/dbus-protocol.h
7096         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7097
7098         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7099         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7100         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7101
7102         * doc/dbus-specification.xml (Header Fields Table):
7103         s/SERVICE/DESTINATION
7104         s/SENDER_SERVICE/SENDER
7105
7106
7107 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7108
7109         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7110         a few seconds.
7111
7112 2004-04-13  Michael Meeks  <michael@ximian.com>
7113
7114         * glib/dbus-gobject.c (handle_introspect): split out
7115         (introspect_properties): this.
7116         (handle_introspect): implement this.
7117
7118         * test/glib/Makefile.am: use the absolute path so the bus
7119         daemon's chdir ("/") doesn't kill us dead.
7120
7121         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7122
7123 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7124
7125         * bus/config-parser.c (struct BusConfigParser): Added
7126         included_files field.
7127         (seen_include): Added.  Checks whether or not a file has already
7128         been included by any parent BusConfigParser.
7129         (bus_config_parser_new): Copy the parent's included_files.
7130         (include_file): Track which files have been included, and fail on
7131         circular inclusions.
7132         (process_test_valid_subdir): Changed printf to report if we are
7133         testing valid or invalid conf files.
7134         (all_are_equiv): Changed printf to be a bit clearer about
7135         what we are actually doing.
7136         (bus_config_parser_test): Test invalid configuration files.
7137
7138 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7139
7140         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7141         argument.  If non-null, the newly-constructed BusConfigParser will
7142         be initialized with the parent's BusLimits instead of the default
7143         values.
7144         (include_file): When including a config file, pass in
7145         the current parser as the parent and then copy the BusLimits
7146         from the included BusConfigParser pack to the current parser.
7147         (process_test_valid_subdir): Renamed from process_test_subdir.
7148         (process_test_equiv_subdir): Added.  Walks through a directory,
7149         descending into each subdirectory and loading the config files
7150         it finds there.  If any subdirectory contains two config files
7151         that don't produce identical BusConfigParser structs, fail.
7152         For now, the BusConfigParser's BusPolicies are not compared.
7153         (bus_config_parser_test): Call both process_test_valid_subdir and
7154         process_test_equiv_subdir.
7155
7156         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7157         argument and pass it along to the call to bus_config_parser_new.
7158         Also made a few small changes to allow this code to compile.
7159
7160         * bus/config-loader-expat.c (bus_config_load): Take a parent
7161         argument and pass it along to the call to bus_config_parser_new.
7162
7163         * bus/bus.c (bus_context_new): Load the config file
7164         with a NULL parent argument.
7165
7166 2004-03-29  Michael Meeks  <michael@ximian.com>
7167
7168         * glib/dbus-gobject.c (introspect_properties): split
7169         out, fix mangled 'while' flow control.
7170         (introspect_signals): implement.
7171         (handle_introspect): update.
7172
7173 2004-03-29  Michael Meeks  <michael@ximian.com>
7174
7175         * glib/dbus-gobject.c (set_object_property): split out / 
7176         re-work, use the property type, and not the message type(!)
7177         (get_object_property): ditto.
7178
7179         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7180         (dbus_gvalue_marshal): make this code re-usable, needed
7181         for signals too, also on both proxy and server side.
7182         Re-write for more efficiency / readability.
7183
7184 2004-03-29  Michael Meeks  <michael@ximian.com>
7185
7186         * dbus/dbus-message.c
7187         (dbus_message_new_error_printf): impl.
7188
7189         * dbus/dbus-connection.c
7190         (dbus_connection_unregister_object_path): fix warning.
7191
7192         * configure.in: fix no-mono-installed situation.
7193
7194 2004-03-27  Havoc Pennington  <hp@redhat.com>
7195
7196         Patch from Timo Teräs:
7197         
7198         * tools/dbus-send.c (main): if --print-reply, assume type is
7199         method call; support boolean type args
7200         
7201         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7202         bunch of memleak and logic bugs
7203         
7204 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7205
7206         * mono/Arguments.cs:
7207         * mono/Introspector.cs:
7208         * mono/Handler.cs:
7209         * mono/InterfaceProxy.cs:
7210         * mono/Message.cs
7211         * mono/ProxyBuilder.cs:
7212         * mono/Service.cs:
7213         Added InterfaceProxy class to avoid building proxies for every
7214         object.
7215
7216         * dbus-message.h:
7217         * dbus-message.c (dbus_message_append_args_valist)
7218         (dbus_message_iter_get_object_path)
7219         (dbus_message_iter_get_object_path_array)
7220         (dbus_message_iter_append_object_path)
7221         (dbus_message_iter_append_object_path_array):
7222         Added object_path iter functions to handle OBJECT_PATH arguments
7223         
7224 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7225
7226         First checkin of mono bindings.
7227         * configure.in:
7228         * Makefile.am:
7229         Build stuff for the bindings
7230         * dbus-sharp.pc.in: Added for pkgconfig
7231         
7232 2004-03-21  Havoc Pennington  <hp@redhat.com>
7233
7234         * test/test-service.c (main): remove debug spew
7235
7236 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7237
7238         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7239         arrays
7240
7241         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7242         (dbus_message_iter_init_array_iterator)
7243         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7244         indicate whether the iterator is empty
7245
7246         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7247         warnings
7248
7249 2004-03-19  Havoc Pennington  <hp@redhat.com>
7250
7251         * NEWS: 0.21 updates
7252
7253         * configure.in: 0.21
7254
7255         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7256         
7257         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7258         you don't need pyrex to make dist
7259
7260         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7261         sources; run moc
7262         
7263 2004-03-18  Richard Hult  <richard@imendio.com>
7264
7265         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7266         (dbus_message_set_auto_activation): Add doxygen docs.
7267
7268 2004-03-16  Richard Hult  <richard@imendio.com>
7269
7270         * bus/activation.c: (bus_activation_service_created),
7271         (bus_activation_send_pending_auto_activation_messages),
7272         (bus_activation_activate_service):
7273         * bus/activation.h:
7274         * bus/dispatch.c: (bus_dispatch),
7275         (check_nonexistent_service_auto_activation),
7276         (check_service_auto_activated),
7277         (check_segfault_service_auto_activation),
7278         (check_existent_service_auto_activation), (bus_dispatch_test):
7279         * bus/driver.c: (bus_driver_handle_activate_service):
7280         * bus/services.c: (bus_registry_acquire_service):
7281         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7282         (dbus_message_get_auto_activation):
7283         * dbus/dbus-message.h:
7284         * dbus/dbus-protocol.h: Implement auto-activation.
7285         
7286         * doc/dbus-specification.xml: Add auto-activation to the spec.
7287
7288 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7289
7290         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7291         fix a bug with CUSTOM types.
7292
7293         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7294         a unit test for this bug (used to fail).
7295
7296 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7297
7298         * bus/activation.c:
7299         (babysitter_watch_callback): notify all pending activations waiting for
7300           the same exec that the activation failed.
7301         (bus_activation_activate_service): shortcut the activation if we 
7302           already waiting for the same executable to start up.
7303
7304 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7305
7306         * bus/activation.c: 
7307         - Added service file reloading. 
7308           Each service files directory is kept in an hash table in 
7309           BusActivation and each BusActivationEntry knows what .service-file it
7310           was read from. So when you try to activate a service the bus will 
7311           check if it's been updated, removed or if new .service-files has 
7312           been installed.
7313         - Test code at the bottom for the service file reloading.
7314         * bus/test-main.c: (main):
7315         * bus/test.h:
7316         - added service reloading test.
7317         * dbus/dbus-sysdeps.c: 
7318         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7319
7320 2004-03-08  Michael Meeks  <michael@ximian.com>
7321
7322         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7323         bail immediately if disconnected, to avoid busy loop.
7324
7325         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7326         cleanup cut/paste/inefficiency.
7327
7328 2004-03-01  David Zeuthen  <david@fubar.dk>
7329
7330         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7331         bug where args were used twice. This bug resulted in a segfault
7332         on a Debian/PPC system when starting the messagebus daemon. Include
7333         dbus-sysdeps.h for DBUS_VA_COPY
7334
7335         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7336
7337         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7338         appropriate va_copy implementation. From GLib
7339         
7340 2004-02-24  Joe Shaw  <joe@ximian.com>
7341
7342         * bus/services.c (bus_registry_acquire_service): We need to pass
7343         in the service name to dbus_set_error() to prevent a crash.
7344
7345 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7346
7347         * AUTHORS: Reveal my True identity.
7348
7349 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7350
7351         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7352         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7353
7354 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7355
7356         * doc/TODO: Added not about better error check of configuration files.
7357
7358 2003-12-02  Richard Hult  <richard@imendio.com>
7359
7360         * Update AFL version to 2.0 throughout the source files to reflect
7361         the update that was done a while ago.
7362
7363 2003-12-02  Richard Hult  <richard@imendio.com>
7364
7365         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7366         wrote_dict_key to FALSE on the iter that the dict is appended to,
7367         just like when appending other types. Fixes a bug where a dict
7368         couldn't be put inside a dict.
7369         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7370         (message_iter_test, _dbus_message_test): Add test case for dict
7371         inside dict.
7372
7373 2003-12-01  David Zeuthen  <david@fubar.dk>
7374
7375         * python/dbus.py: Add the actual message when calling the reciever
7376         of a signal such that parameters can be inspected. Add the method
7377         remove_signal_receiver
7378         
7379 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7380
7381         * bus/*.[ch]:
7382         * dbus/*.[ch]:
7383         * glib/*.[ch]: Made ref functions return the pointer
7384
7385 2003-11-25  Zack Rusin  <zack@kde.org>
7386
7387         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7388
7389         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7390         wrappers,
7391
7392         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7393         the Integrator and to better fit with the server,
7394
7395 2003-11-24  Zack Rusin  <zack@kde.org>
7396
7397         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7398         the integrator handles it now
7399
7400         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7401         since QTimer wasn't really meant to be used the way DBusTimeout is
7402
7403 2003-11-24  Zack Rusin  <zack@kde.org>
7404
7405         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7406         Integrator class which integrates D-BUS with the Qt event loop,
7407
7408         * qt/connection.h, qt/connection.cpp: Move all the code which
7409         was dealing with D-BUS integration to the Integrator class,
7410         and start using Integrator,
7411
7412 2003-11-23  Zack Rusin  <zack@kde.org>
7413
7414         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7415         wrapper
7416
7417         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7418         switching namespaces to DBusQt, reworking the class,
7419
7420         * Makefile.cvs: switching dependencies so that it matches KDE 
7421         schematics,
7422         
7423         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7424         the library
7425
7426 2003-11-19  Havoc Pennington  <hp@redhat.com>
7427
7428         * NEWS: update
7429
7430         * configure.in: bump version to 0.20
7431
7432         * configure.in (have_qt): add yet another place to look for qt
7433         (someone hand trolltech a .pc file...)
7434
7435 2003-11-01  Havoc Pennington  <hp@redhat.com>
7436
7437         * doc/dbus-specification.xml: add state machine docs on the auth
7438         protocol; just a first draft, I'm sure it's wrong.      
7439
7440 2003-10-28  David Zeuthen  <david@fubar.dk>
7441
7442         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7443         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7444         
7445 2003-10-28  Havoc Pennington  <hp@redhat.com>
7446
7447         * dbus/dbus-message.c (get_next_field): delete unused function
7448
7449 2003-10-28  Havoc Pennington  <hp@redhat.com>
7450
7451         * bus/expirelist.c (do_expiration_with_current_time): detect
7452         failure of the expire_func due to OOM
7453
7454         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7455
7456         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7457         NoReply error that's now created by the bus when the service exits
7458
7459 2003-10-28  Havoc Pennington  <hp@redhat.com>
7460
7461         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7462         tests for set_path, set_interface, set_member, etc.
7463
7464         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7465
7466         * dbus/dbus-message.c (set_string_field): always just delete and
7467         re-append the field; accept NULL for deletion
7468         (re_align_fields_recurse): reimplement
7469         
7470 2003-10-26  Havoc Pennington  <hp@redhat.com>
7471
7472         * dbus/dbus-connection.c: fix docs to properly describe the
7473         disconnected message
7474         (_dbus_connection_notify_disconnected): remove this function; 
7475         we can't synchronously add the disconnected message, we have to 
7476         do it after we've queued any remaining real messages
7477         (_dbus_connection_get_dispatch_status_unlocked): queue the
7478         disconnect message only if the transport has finished queueing all
7479         its real messages and is disconnected.
7480         (dbus_connection_disconnect): update the dispatch status here
7481
7482 2003-10-22  Havoc Pennington  <hp@redhat.com>
7483
7484         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7485
7486         * bus/connection.c (bus_transaction_send_from_driver): set the
7487         destination to the connection's base service
7488
7489 2003-10-20  Havoc Pennington  <hp@redhat.com>
7490
7491         hmm, make check is currently not passing.
7492         
7493         * doc/dbus-specification.xml: add requirement that custom type
7494         names follow the same rules as interface names.
7495
7496         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7497         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7498         'map'
7499
7500         * doc/dbus-specification.xml: update type codes to match
7501         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7502         CUSTOM. Add type OBJECT_PATH to the spec.
7503
7504 2003-10-17  Havoc Pennington  <hp@redhat.com>
7505
7506         * bus/driver.c (create_unique_client_name): use "." as separator
7507         in base service names instead of '-'
7508
7509         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7510         byte at the end of the string
7511
7512         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7513         optimization macros since string validation seems to be a slow
7514         point.
7515         
7516         * doc/dbus-specification.xml: restrict valid
7517         service/interface/member/error names. Add test suite code for the
7518         name validation.
7519
7520         * dbus/dbus-string.c: limit service/interface/member/error names 
7521         to [0-9][A-Z][a-z]_
7522
7523         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7524         format arg to verbose spew
7525
7526         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7527         memory, return instead of g_error
7528
7529         * test/test-service.c (path_message_func): support emitting a
7530         signal on request
7531
7532         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7533         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7534         assuming the activation bus was the session bus so that services
7535         started manually will still register.
7536         (init_connections_unlocked): fix so that in OOM situation we get
7537         the same semantics when retrying the function
7538         
7539         * test/test-service.c (main): change to use path registration, to
7540         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7541         than DBUS_BUS_SESSION
7542
7543 2003-10-16  Havoc Pennington  <hp@redhat.com>
7544
7545         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7546
7547         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7548         coverage of the tests
7549         (coverage-report.txt): don't move the .da and .bbg files around
7550
7551 2003-10-16  Havoc Pennington  <hp@redhat.com>
7552
7553         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7554         to put there
7555
7556 2003-10-16  Havoc Pennington  <hp@redhat.com>
7557
7558         * bus/connection.c (bus_pending_reply_expired): either cancel or
7559         execute, not both
7560         (bus_connections_check_reply): use unlink, not remove_link, as we
7561         don't want to free the link; fixes double free mess
7562
7563         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7564         where no reply was received
7565
7566         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7567         fix a refcount leak
7568
7569         * bus/signals.c (match_rule_matches): add special cases for the
7570         bus driver, so you can match on sender/destination for it.
7571
7572         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7573         DBUS_PRINT_BACKTRACE is set
7574
7575         * dbus/dbus-internals.c: add pid to assertion failure messages
7576
7577         * dbus/dbus-connection.c: add message type code to the debug spew
7578
7579         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7580         sender=foo not service=foo
7581
7582         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7583         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7584         DBUS_ACTIVATION_ADDRESS instead
7585
7586         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7587         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7588
7589         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7590         context struct
7591
7592         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7593         (dbus_message_iter_get_object_path_array): new function (half
7594         finished, disabled for the moment)
7595         
7596         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7597         DBUS_MESSAGE_TYPE_ERROR
7598
7599         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7600         avoid redirecting stderr to /dev/null
7601         (babysit): close stdin if not doing the "exit_with_session" thing
7602
7603         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7604         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7605         stdout/stdin, so things don't get confused
7606         
7607         * bus/system.conf.in: fix to allow replies, I modified .conf
7608         instead of .conf.in again.
7609
7610 2003-10-14  David Zeuthen  <david@fubar.dk>
7611
7612         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7613         argtype to arg_type when raising unknown arg type exception.
7614         Changed type list to reflect the changes in dbus-protocol.h so 
7615         the bindings actually work.
7616
7617 2003-10-14  Havoc Pennington  <hp@redhat.com>
7618
7619         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7620         to have a bug keeping it from outputting the .da files sometimes
7621         (string_get_string): don't append garbage nul bytes to the string.
7622
7623 2003-10-15  Seth Nickell  <seth@gnome.org>
7624
7625         * python/Makefile.am:
7626
7627         Include dbus_h_wrapper.h in the dist tarball.
7628
7629 2003-10-14  Havoc Pennington  <hp@redhat.com>
7630
7631         * bus/bus.c (bus_context_check_security_policy): revamp this to
7632         work more sanely with new policy-based requested reply setup
7633
7634         * bus/connection.c (bus_transaction_send_from_driver): set bus
7635         driver messages as no reply
7636
7637         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7638         requested_reply attribute on allow/deny rules
7639
7640         * bus/system.conf: add <allow requested_reply="true"/>
7641
7642         * bus/driver.c (bus_driver_handle_message): fix check for replies
7643         sent to the bus driver, which was backward. How did this ever work
7644         at all though? I think I'm missing something.
7645
7646         * dbus/dbus-message.c (decode_header_data): require error and
7647         method return messages to have a reply serial field to be valid
7648         (_dbus_message_loader_queue_messages): break up this function;
7649         validate that reply serial and plain serial are nonzero; 
7650         clean up the OOM/error handling.
7651         (get_uint_field): don't return -1 from this
7652         (dbus_message_create_header): fix signed/unsigned bug
7653
7654         * bus/connection.c (bus_connections_expect_reply): save serial of
7655         the incoming message, not reply serial
7656
7657 2003-10-14  Havoc Pennington  <hp@redhat.com>
7658
7659         * bus/connection.c: implement pending reply tracking using
7660         BusExpireList
7661
7662         * bus/bus.c (bus_context_check_security_policy): verify that a
7663         reply is pending in order to allow a reply to be sent. Deny 
7664         messages of unknown type.
7665
7666         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7667
7668         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7669         (bus_context_get_reply_timeout): new
7670
7671 2003-10-13  Seth Nickell  <seth@gnome.org>
7672
7673         * python/Makefile.am:
7674
7675         Pass "make distcheck": remove a couple files from DIST_FILES
7676         that weren't included in the final version.
7677
7678 2003-10-12  Havoc Pennington  <hp@pobox.com>
7679
7680         Added test code that 1) starts an actual bus daemon and 2) uses
7681         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7682         more testing possible, but this is the basic framework.
7683         
7684         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7685         empty proxy lists from the proxy list hash
7686
7687         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7688         couple of return_if_fail checks
7689
7690         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7691         to allocate, so everything is cleared to NULL as it should be.
7692
7693         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7694         source as data to dbus_connection_set_timeout_functions() as the 
7695         timeout functions expected
7696
7697         * test/glib/run-test.sh: add a little script to start up a message
7698         bus and run tests using it
7699
7700         * tools/dbus-launch.1: updates
7701
7702         * tools/dbus-launch.c (main): add --config-file option
7703
7704         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7705         that could never be reached.
7706
7707         * dbus/dbus-message.c (dbus_message_new_method_return) 
7708         (dbus_message_new_error, dbus_message_new_signal): set the
7709         no-reply-expected flag on all these. Redundant, but may
7710         as well be consistent.
7711
7712 2003-10-11  Havoc Pennington  <hp@pobox.com>
7713
7714         * test/decode-gcov.c (function_solve_graph): make broken block
7715         graph a nonfatal error since it seems to be broken. Need to debug
7716         this.
7717
7718         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7719         can't just check type > INVALID < LAST anymore
7720
7721         * dbus/dbus-message.c (dbus_message_get_signature): new function
7722         (dbus_message_has_signature): new function
7723         (struct DBusMessage): add signature field (right now it isn't sent
7724         over the wire, just generated on the fly)
7725         (dbus_message_copy): copy the signature, and init strings to
7726         proper length to avoid some reallocs
7727         (dbus_message_iter_init_array_iterator): return void, since it
7728         can't fail
7729         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7730         (_dbus_message_loader_queue_messages): add silly temporary hack to
7731         fill in message->signature on load
7732
7733         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7734         characters, so they are relatively human-readable.
7735
7736 2003-10-11  Havoc Pennington  <hp@pobox.com>
7737
7738         * dbus/dbus-message.c (_dbus_message_test): add more test
7739         coverage, but #if 0 for now since they uncover a bug 
7740         not fixed yet; I think in re_align_field_recurse()
7741         (re_align_field_recurse): add FIXME about broken assertion
7742
7743         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7744
7745         * bus/connection.c: share a couple code bits with expirelist.c
7746
7747         * bus/expirelist.h, bus/expirelist.c: implement a generic
7748         expire-items-after-N-seconds facility, was going to share between
7749         expiring connections and replies, decided not to use for expiring
7750         connections for now.
7751
7752         * COPYING: include AFL 2.0 (still need to change all the file headers)
7753
7754 2003-10-09  Havoc Pennington  <hp@redhat.com>
7755
7756         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7757         gcc 3.3. Not that we do anything about it yet.
7758
7759         * bus/signals.c (bus_match_rule_parse): impose max length on the
7760         match rule text
7761
7762         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7763
7764 2003-10-09  Havoc Pennington  <hp@redhat.com>
7765
7766         Make matching rules theoretically work (add parser).
7767         
7768         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7769         the case where destination is explicitly specified as bus driver
7770         and someone else is eavesdropping.
7771         
7772         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7773         definition of eavesdropping and assertion
7774
7775         * tools/dbus-send.c (main): use dbus_message_type_from_string
7776
7777         * bus/signals.c (bus_match_rule_parse): implement
7778
7779         * dbus/dbus-message.c (dbus_message_type_from_string): new
7780
7781         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7782
7783 2003-10-02  Havoc Pennington  <hp@pobox.com>
7784
7785         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7786         dbus_gproxy_oneway_call
7787
7788         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7789         (dbus_server_setup_with_g_main): fix to allow calling them more
7790         than once on the same args
7791         (dbus_bus_get_with_g_main): new function
7792
7793 2003-10-02  Havoc Pennington  <hp@redhat.com>
7794
7795         * doc/dbus-tutorial.xml: write some stuff
7796
7797 2003-09-29  Havoc Pennington  <hp@pobox.com>
7798
7799         * configure.in: split checks for Doxygen from XML docs, check for
7800         xmlto
7801
7802         * doc/Makefile.am: XML-ify all the docs, and add a blank
7803         dbus-tutorial.xml
7804
7805 2003-09-29  Havoc Pennington  <hp@pobox.com>
7806
7807         * Merge dbus-object-names branch. To see the entire patch 
7808         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7809         it's huuuuge though.
7810         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7811         
7812 2003-09-28  Havoc Pennington  <hp@pobox.com>
7813
7814         * HACKING: update to reflect new server
7815
7816 2003-09-26  Seth Nickell  <seth@gnome.org>
7817
7818         * python/dbus.py:
7819         * python/examples/example-signals.py:
7820
7821         Start implementing some notions of signals. The API
7822         is really terrible, but they sort of work (with the
7823         exception of being able to filter by service, and to
7824         transmit signals *as* a particular service). Need to
7825         figure out how to make messages come from the service
7826         we registered :-(
7827         
7828         * python/dbus_bindings.pyx.in:
7829
7830         Removed duplicate message_handler callbacks.
7831         
7832 2003-09-25  Havoc Pennington  <hp@redhat.com>
7833
7834         * bus/session.conf.in: fix my mess
7835
7836 2003-09-25  Havoc Pennington  <hp@pobox.com>
7837
7838         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7839
7840 2003-09-25  Seth Nickell  <seth@gnome.org>
7841
7842         * python/examples/example-service.py:
7843
7844         Johan notices complete wrong code in example-service, but
7845         completely wrong in a way that works exactly the same (!).
7846         Johan is confused, how could this possibly work? Example
7847         code fails to serve purpose of making things clear.
7848         Seth fixes.
7849
7850 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7851
7852         * doc/dbus-specification.sgml: don't require header fields
7853         to be 4-byte aligned and specify that fields should be
7854         distinguished from padding by the fact that zero is not
7855         a valid field name.
7856         
7857         * doc/TODO: remove re-alignment item and add item to doc
7858         the OBJECT_PATH type.
7859         
7860         * dbus/dbus-message.c:
7861         (HeaderField): rename the original member to value_offset
7862         and introduce a name_offset member to keep track of where
7863         the field actually begins.
7864         (adjust_field_offsets): remove.
7865         (append_int_field), (append_uint_field),
7866         (append_string_field): don't align the start of the header
7867         field to a 4-byte boundary.
7868         (get_next_field): impl finding the next marhsalled field
7869         after a given field.
7870         (re_align_field_recurse): impl re-aligning a number of
7871         already marshalled fields.
7872         (delete_field): impl deleting a field of any type and
7873         re-aligning any following fields.
7874         (delete_int_or_uint_field), (delete_string_field): remove.
7875         (set_int_field), (set_uint_field): no need to re-check
7876         that we have the correct type for the field.
7877         (set_string_field): ditto and impl re-aligning any
7878         following fields.
7879         (decode_header_data): update to take into account that
7880         the fields aren't 4-byte aligned any more and the new
7881         way to distinguish padding from header fields. Also,
7882         don't exit when there is too much header padding.
7883         (process_test_subdir): print the directory.
7884         (_dbus_message_test): add test to make sure a following
7885         field is re-aligned correctly after field deletion.
7886         
7887         * dbus/dbus-string.[ch]:
7888         (_dbus_string_insert_bytes): rename from insert_byte and
7889         allow the insert of multiple bytes.
7890         (_dbus_string_test): test inserting multiple bytes.
7891
7892         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7893         warning note to docs about having to re-align any
7894         marshalled values following the string.
7895         
7896         * dbus/dbus-message-builder.c:
7897         (append_string_field), (_dbus_message_data_load):
7898         don't align the header field.
7899         
7900         * dbus/dbus-auth.c: (process_test_subdir): print the
7901         directory.
7902         
7903         * test/break-loader.c: (randomly_add_one_byte): upd. for
7904         insert_byte change.
7905         
7906         * test/data/invalid-messages/bad-header-field-alignment.message:
7907         new test case.
7908         
7909         * test/data/valid-messages/unknown-header-field.message: shove
7910         a dict in the unknown field.
7911
7912 2003-09-25  Seth Nickell  <seth@gnome.org>
7913
7914         * python/dbus.py:
7915         * python/dbus_bindings.pyx.in:
7916
7917         Handle return values.
7918         
7919         * python/examples/example-client.py:
7920         * python/examples/example-service.py:
7921
7922         Pass back return values from the service to the client.
7923         
7924 2003-09-24  Seth Nickell  <seth@gnome.org>
7925
7926         * python/dbus.py:
7927
7928         Connect Object methods (when you are sharing an object) up... pass
7929         in a list of methods to be shared. Sharing all the methods just
7930         worked out too weird. You can now create nice Services over the
7931         DBus in Python. :-)
7932         
7933         * python/dbus_bindings.pyx.in:
7934
7935         Keep references to user_data tuples passed into C functions so 
7936         Python doesn't garbage collect on us.
7937
7938         Implement MethodReturn and Error subclasses of Message for creating
7939         DBusMessage's of those types.
7940         
7941         * python/examples/example-client.py:
7942         * python/examples/example-service.py:
7943
7944         Simple example code showing both how create DBus services and objects,
7945         and how to use them.
7946
7947 2003-09-23  Havoc Pennington  <hp@pobox.com>
7948
7949         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7950
7951 2003-09-23  Havoc Pennington  <hp@redhat.com>
7952
7953         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7954         (dbus_gproxy_disconnect_signal): implement
7955         (dbus_gproxy_manager_remove_signal_match): implement
7956         (dbus_gproxy_manager_add_signal_match): implement
7957         (dbus_gproxy_oneway_call): implement
7958
7959 2003-09-23  Havoc Pennington  <hp@pobox.com>
7960
7961         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7962         subclass. This means dropping the transparent thread safety of the
7963         proxy; you now need a separate proxy per-thread, or your own
7964         locking on the proxy. Probably right anyway.
7965         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7966
7967 2003-09-22  Havoc Pennington  <hp@redhat.com>
7968
7969         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7970
7971 2003-09-21  Seth Nickell  <seth@gnome.org>
7972
7973         First checkin of the Python bindings.
7974         
7975         * python/.cvsignore:
7976         * python/Makefile.am:
7977         * python/dbus_bindings.pyx.in:
7978         * python/dbus_h_wrapper.h:
7979
7980         Pieces for Pyrex to operate on, building a dbus_bindings.so
7981         python module for low-level access to the DBus APIs.
7982         
7983         * python/dbus.py:
7984
7985         High-level Python module for accessing DBus objects.
7986
7987         * configure.in:
7988         * Makefile.am:
7989
7990         Build stuff for the python bindings.
7991
7992         * acinclude.m4:
7993
7994         Extra macro needed for finding the Python C header files.
7995
7996 2003-09-21  Havoc Pennington  <hp@pobox.com>
7997
7998         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7999         implementing the proxy manager, didn't get very far.
8000
8001         * dbus/dbus-bus.c (dbus_bus_add_match): new
8002         (dbus_bus_remove_match): new
8003
8004         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8005         path_name argument; adjust the other not-yet-implemented 
8006         gproxy constructors to be what I think they should be.
8007
8008 2003-09-21  Havoc Pennington  <hp@pobox.com>
8009
8010         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8011         by default for message bus connections.
8012
8013         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8014         exit_on_disconnect flag is set and we process the disconnected
8015         signal.
8016         (dbus_connection_set_exit_on_disconnect): new function
8017
8018 2003-09-21  Havoc Pennington  <hp@pobox.com>
8019
8020         Get matching rules mostly working in the bus; only actually
8021         parsing the rule text remains. However, the client side of
8022         "signal connections" hasn't been started, this patch is only the
8023         bus side.
8024         
8025         * dbus/dispatch.c: fix for the matching rules changes
8026         
8027         * bus/driver.c (bus_driver_handle_remove_match)
8028         (bus_driver_handle_add_match): send an ack reply from these
8029         method calls
8030
8031         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8032         arguments, reported by Seth Nickell
8033
8034         * bus/config-parser.c (append_rule_from_element): support
8035         eavesdrop=true|false attribute on policies so match rules 
8036         can be prevented from snooping on the system bus.
8037
8038         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8039         and "destination" in attribute names; fix some docs bugs; 
8040         add eavesdrop=true|false attribute
8041
8042         * bus/driver.c (bus_driver_handle_add_match)
8043         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8044         messages
8045
8046         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8047         rid of broadcast service concept, signals are just always broadcast
8048
8049         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8050         mostly implement matching rules stuff (currently only exposed as signal
8051         connections)
8052
8053 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8054
8055         * doc/dbus-specification.sgml: Change the header field name
8056         to be an enum and update the rest of the spec to reference
8057         the fields using the conventinal name.
8058
8059         * dbus/dbus-protocol.h: update to reflect the spec.
8060
8061         * doc/TODO: add item to remove the 4 byte alignment requirement.
8062         
8063         * dbus/dbus-message.c: Remove the code to generalise the
8064         header/body length and serial number header fields as named
8065         header fields so we can reference field names using the 
8066         protocol values.
8067         (append_int_field), (append_uint_field), (append_string_field):
8068         Append the field name as a byte rather than four chars.
8069         (delete_int_or_uint_field), (delete_string_field): reflect the
8070         fact that the field name and typecode now occupy 4 bytes instead
8071         of 8.
8072         (decode_string_field), (decode_header_data): update to reflect
8073         protocol changes and move the field specific encoding from
8074         decode_string_field() back into decode_header_data().
8075         
8076         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8077         Add utility to aid debugging.
8078         
8079         * dbus/dbus-message-builder.c:
8080         (append_string_field), (_dbus_message_data_load): Update to
8081         reflect protocol changes; Change the FIELD_NAME directive
8082         to HEADER_FIELD and allow it to take the field's conventional
8083         name rather than the actual value.
8084         
8085         * test/data/*/*.message: Update to use HEADER_FIELD instead
8086         of FIELD_NAME; Always align the header on an 8 byte boundary
8087         *before* updating the header length.
8088
8089 2003-09-15  Havoc Pennington  <hp@pobox.com>
8090
8091         * dbus/dbus-pending-call.c: add the get/set object data
8092         boilerplate as for DBusConnection, etc. Use generic object data
8093         for the notify callback.
8094
8095         * glib/dbus-gparser.c (parse_node): parse child nodes
8096
8097         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8098         
8099         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8100         contain functions shared between the convenience lib and the
8101         installed lib
8102
8103         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8104         -export-symbols-regex to the GLib library
8105
8106         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8107         fix the locking in here, and add a default handler for
8108         Introspect() that just returns sub-nodes.
8109
8110 2003-09-14  Havoc Pennington  <hp@pobox.com>
8111
8112         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8113         rather than gfoo consistent
8114
8115         * glib/dbus-gproxy.h: delete for now, move contents to
8116         dbus-glib.h, because the include files don't work right since we
8117         aren't in the dbus/ subdir.
8118         
8119         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8120         (dbus_gproxy_end_call): finish
8121         (dbus_gproxy_begin_call): finish
8122
8123         * glib/dbus-gmain.c (dbus_set_g_error): new
8124
8125         * glib/dbus-gobject.c (handle_introspect): include information
8126         about child nodes in the introspection
8127
8128         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8129         function to help in implementation of introspection
8130
8131         * dbus/dbus-object-tree.c
8132         (_dbus_object_tree_list_registered_and_unlock): new function
8133
8134 2003-09-12  Havoc Pennington  <hp@pobox.com>
8135
8136         * glib/dbus-gidl.h: add common base class for all the foo_info
8137         types
8138
8139         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8140         similar to kdcop
8141
8142         * test/Makefile.am: try test srcdir -ef . in addition to test
8143         srcdir = ., one of them should work (yeah lame)
8144         
8145         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8146         library
8147         
8148         * glib/dbus-gparser.h: make description_load routines return
8149         NodeInfo* not Parser*
8150
8151         * Makefile.am (SUBDIRS): build test dir after all library dirs
8152
8153         * configure.in: add GTK+ detection
8154
8155 2003-09-07  Havoc Pennington  <hp@pobox.com>
8156
8157         * Make Doxygen contented.
8158
8159 2003-09-07  Havoc Pennington  <hp@pobox.com>
8160
8161         * doc/dbus-specification.sgml: more updates
8162
8163 2003-09-06  Havoc Pennington  <hp@pobox.com>
8164
8165         * doc/dbus-specification.sgml: partial updates
8166
8167         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8168         zillionth time; hopefully I edited the right file this time.
8169
8170         * bus/config-parser.c (append_rule_from_element): support
8171         send_type, send_path, receive_type, receive_path
8172
8173         * bus/policy.c: add message type and path to the list of things
8174         that can be "firewalled"
8175
8176 2003-09-06  Havoc Pennington  <hp@pobox.com>
8177
8178         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8179         (dbus_connection_register_object_path): make this not handle
8180         messages to paths below the given path
8181
8182 2003-09-03  Havoc Pennington  <hp@pobox.com>
8183
8184         * test/glib/Makefile.am: add this with random glib-linked test
8185         programs
8186
8187         * glib/Makefile.am: remove the random test programs from here,
8188         leave only the unit tests
8189
8190         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8191         uscore/javacaps conversion, and fix     
8192         (get_object_property, set_object_property): change to .NET
8193         convention for mapping props to methods, set_FooBar/get_FooBar, 
8194         since one language has such a convention we may as well copy it. 
8195         Plus real methods in either getFooBar or get_foo_bar style won't 
8196         collide with this convention.
8197
8198 2003-09-01  Havoc Pennington  <hp@pobox.com>
8199
8200         * glib/dbus-gparser.c: implement
8201
8202         * glib/dbus-gobject.c: start implementing skeletons support
8203
8204         * configure.in: when disabling checks/assert, also define
8205         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8206
8207 2003-09-01  Havoc Pennington  <hp@pobox.com>
8208
8209         * glib/Makefile.am: rearrange a bunch of files and get "make
8210         check" framework set up
8211
8212 2003-08-31  Havoc Pennington  <hp@pobox.com>
8213
8214         * fix build with --disable-tests
8215
8216 2003-08-30  Havoc Pennington  <hp@pobox.com>
8217
8218         * dbus/dbus-connection.c: purge DBusMessageHandler
8219
8220         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8221         use callbacks everywhere
8222
8223 2003-08-30  Havoc Pennington  <hp@pobox.com>
8224
8225         * test/data/valid-config-files/system.d/test.conf: change to 
8226         root for the user so warnings don't get printed
8227
8228         * dbus/dbus-message.c: add dbus_message_get_path,
8229         dbus_message_set_path
8230         
8231         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8232         dispatching to a path
8233
8234         * dbus/dbus-string.c (_dbus_string_validate_path): add
8235
8236         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8237         (_dbus_marshal_object_path): implement
8238
8239         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8240         to contain the path to the target object
8241         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8242         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8243
8244 2003-08-30  Havoc Pennington  <hp@pobox.com>
8245
8246         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8247
8248 2003-08-29  Havoc Pennington  <hp@pobox.com>
8249
8250         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8251         registered
8252         (struct DBusObjectSubtree): shrink this
8253         a lot, since we may have a lot of them
8254         (_dbus_object_tree_free_all_unlocked): implement
8255         (_dbus_object_tree_dispatch_and_unlock): implement
8256
8257 2003-08-29  Havoc Pennington  <hp@pobox.com>
8258
8259         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8260
8261 2003-08-28  Havoc Pennington  <hp@pobox.com>
8262
8263         purge DBusObjectID
8264         
8265         * dbus/dbus-connection.c: port to no ObjectID, create a
8266         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8267
8268         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8269         everything except UnregisterFunction and MessageFunction
8270         
8271         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8272         add DBUS_TYPE_OBJECT_PATH
8273         
8274         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8275         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8276         path-based object IDs
8277
8278 2003-08-25  Havoc Pennington  <hp@pobox.com>
8279
8280         Just noticed that dbus_message_test is hosed, I wonder when I
8281         broke that. I thought make check was passing earlier...
8282         
8283         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8284         container tree, will replace most of dbus-object-registry
8285
8286         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8287         screwup
8288
8289 2003-08-19  Havoc Pennington  <hp@pobox.com>
8290
8291         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8292         (dbus_message_is_error): fix this function
8293
8294         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8295         match
8296
8297         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8298         reflect clarified man page
8299         (bus_client_policy_check_can_send): ditto
8300         
8301         * bus/session.conf.in: fixup
8302
8303         * bus/system.conf.in: fixup
8304
8305 2003-08-18  Havoc Pennington  <hp@redhat.com>
8306
8307         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8308
8309         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8310         dumb bug created earlier (wrong order of args to
8311         decode_header_data())
8312         
8313         * tools/dbus-send.c: port
8314
8315         * tools/dbus-print-message.c (print_message): port
8316
8317         * test/data/*messages: port all messages over
8318         
8319         * dbus/dbus-message-builder.c: support including 
8320         message type
8321         
8322         * bus/driver.c: port over
8323         
8324         * bus/dispatch.c: port over to new stuff
8325
8326         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8327         rename disconnect signal to "Disconnected"
8328
8329 2003-08-17  Havoc Pennington  <hp@pobox.com>
8330
8331         This doesn't compile yet, but syncing up so I can hack on it from
8332         work. What are branches for if not broken code? ;-)
8333         
8334         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8335         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8336         DBUS_HEADER_FIELD_ERROR_NAME
8337         
8338         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8339         for the interface+member pairs
8340         (string_hash): change to use g_str_hash algorithm
8341         (find_direct_function, find_string_function): refactor these to
8342         share most code.
8343         
8344         * dbus/dbus-message.c: port all of this over to support 
8345         interface/member fields instead of name field
8346
8347         * dbus/dbus-object-registry.c: port over
8348         
8349         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8350         from _dbus_string_validate_name
8351
8352         * bus/dbus-daemon-1.1: change file format for the 
8353         <deny>/<allow> stuff to match new message naming scheme
8354
8355         * bus/policy.c: port over
8356
8357         * bus/config-parser.c: parse new format
8358         
8359 2003-08-16  Havoc Pennington  <hp@pobox.com>
8360
8361         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8362         broken assertion
8363
8364         * glib/dbus-gproxy.c: some hacking
8365
8366 2003-08-15  Havoc Pennington  <hp@redhat.com>
8367
8368         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8369
8370         * dbus/dbus-connection.c
8371         (dbus_connection_send_with_reply_and_block): factor out internals;
8372         change to convert any error replies to DBusError instead of 
8373         returning them as a message
8374
8375 2003-08-15  Havoc Pennington  <hp@pobox.com>
8376
8377         * dbus/dbus-connection.c, 
8378         dbus/dbus-pending-call.c: Finish the pending call stuff
8379
8380 2003-08-14  Havoc Pennington  <hp@redhat.com>
8381
8382         * dbus/dbus-pending-call.c: start on new object that will replace
8383         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8384         replies
8385
8386         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8387         with remote interfaces
8388
8389         * dbus/dbus-gidl.c: do the boring boilerplate in here
8390         
8391 2003-08-12  Havoc Pennington  <hp@pobox.com>
8392
8393         * bus/dispatch.c (bus_dispatch): make this return proper 
8394         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8395
8396         * dbus/dbus-errors.c (dbus_set_error): use
8397         _dbus_string_append_printf_valist
8398
8399         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8400         (_dbus_string_append_printf): new
8401
8402         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8403         UNKNOWN_METHOD
8404
8405         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8406         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8407         message is unhandled.
8408
8409 2003-08-11  Havoc Pennington  <hp@pobox.com>
8410
8411         * bus/test.c (client_disconnect_handler): change to return
8412         HANDLED (would have been REMOVE_MESSAGE)
8413
8414         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8415         HANDLED/NOT_YET_HANDLED instead of
8416         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8417         should be used.
8418
8419 2003-08-10  Havoc Pennington  <hp@pobox.com>
8420
8421         * tools/dbus-send.c (main): add --type argument, for now
8422         supporting only method_call and signal types.
8423
8424         * tools/dbus-print-message.c: print message type
8425
8426         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8427         init connection->objects
8428
8429         * doc/dbus-specification.sgml: fix sgml
8430
8431         * bus/*.c: port over to object-instance API changes
8432
8433         * test/test-service.c: ditto
8434         
8435         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8436         name, we will have to fix up the rest of the code to also handle
8437         this
8438         (dbus_message_new): generic message-creation call
8439         (set_string_field): allow appending name field
8440
8441 2003-08-06  Havoc Pennington  <hp@pobox.com>
8442
8443         * dbus/dbus-object-registry.c: implement signal connection 
8444         and dispatch
8445
8446         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8447
8448         * dbus/dbus-internals.c (_dbus_memdup): new function
8449
8450 2003-08-02  Havoc Pennington  <hp@pobox.com>
8451
8452         * dbus/dbus-message.c (dbus_message_get_no_reply)
8453         (dbus_message_set_no_reply): add these and remove
8454         set_is_error/get_is_error
8455
8456         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8457         remove the ERROR flag, since there's now an ERROR type
8458
8459 2003-08-01  Havoc Pennington  <hp@pobox.com>
8460
8461         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8462         implement
8463
8464         * dbus/dbus-message.c (dbus_message_get_type): new function
8465
8466         * doc/dbus-specification.sgml: add "type" byte to messages
8467
8468 2003-08-01  Havoc Pennington  <hp@pobox.com>
8469
8470         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8471         a message type enum to distinguish kinds of message
8472         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8473         that need not be replied to
8474
8475 2003-08-01  Havoc Pennington  <hp@pobox.com>
8476
8477         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8478         (unpack_8_octets): fix no-64-bit-int bug
8479
8480         * dbus/dbus-object-registry.c (validate_id): validate the 
8481         connection ID bits, not just the instance ID.
8482
8483         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8484         the connection-global 33 bits of the object ID
8485
8486         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8487         object ID in the new way
8488
8489         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8490         define server/client/instance bits.
8491
8492 2003-07-30  Havoc Pennington  <hp@pobox.com>
8493
8494         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8495         build
8496
8497 2003-07-13  Havoc Pennington  <hp@pobox.com>
8498
8499         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8500         fields to DBusObjectVTable and DBusObjectInfo
8501
8502 2003-07-12  Havoc Pennington  <hp@pobox.com>
8503
8504         * dbus/dbus-object-registry.c: implement unit test,
8505         fix bugs discovered in process
8506
8507         * dbus/dbus-connection.c: remove handler_table and
8508         register_handler(), add DBusObjectRegistry usage
8509
8510         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8511         (dbus_object_id_set_null): new functions
8512
8513 2003-07-08  Havoc Pennington  <hp@pobox.com>
8514
8515         * dbus/dbus-object.c: implement some of this
8516
8517         * dbus/dbus-object-registry.c
8518         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8519         param
8520         (_dbus_object_registry_new): handle OOM
8521
8522 2003-07-08  Havoc Pennington  <hp@pobox.com>
8523
8524         * dbus/dbus-object.h: sketch out an API for registering objects
8525         with a connection, that allows us to use as little as 24 bytes
8526         per object and lets application code represent an object in 
8527         any conceivable way.
8528
8529         * dbus/dbus-object-registry.c: implement the hard bits of the
8530         DBusConnection aspect of object API. Not yet wired up.
8531         
8532 2003-07-06  Havoc Pennington  <hp@pobox.com>
8533
8534         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8535         (_dbus_marshal_object_id): new
8536         (_dbus_demarshal_object_id): new
8537         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8538         consolidate identical switch cases. Don't conditionalize handling
8539         of DBUS_TYPE_UINT64, need to handle the type always.
8540         (_dbus_marshal_validate_arg): consolidate identical cases, and
8541         handle DBUS_TYPE_OBJECT_ID
8542
8543         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8544
8545         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8546
8547 2003-09-28  Havoc Pennington  <hp@pobox.com>
8548
8549         * real 0.13 release
8550
8551 2003-09-28  Havoc Pennington  <hp@pobox.com>
8552
8553         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8554         to work with Debian db2html
8555
8556 2003-09-28  Havoc Pennington  <hp@pobox.com>
8557
8558         * configure.in: 0.13
8559
8560         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8561         stylesheet-images for benefit of Debian
8562         
8563         Change back to using filesystem-linked sockets for the system
8564         bus, so only root can create the default system bus address.
8565         
8566         * bus/system.conf.in: change to use
8567         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8568
8569         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8570         from here.
8571
8572         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8573         here, and AC_DEFINE DBUS_SYSTEM_PATH
8574
8575 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8576
8577         * doc/TODO:
8578         * doc/busconfig.dtd:
8579         Add busconfig DTD.
8580         
8581 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8582
8583         * doc/dbus-specification.sgml:
8584         Add activation reply values.
8585         
8586 2003-08-05  Havoc Pennington  <hp@redhat.com>
8587
8588         * configure.in: 0.12
8589
8590 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8591
8592         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8593         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8594         (add_watch), (remove_watch), (create_source):
8595         Refcount fds, fixes some reentrancy issues.
8596         
8597 2003-07-30  Havoc Pennington  <hp@redhat.com>
8598
8599         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8600         bus address to be abstract if we have abstract sockets
8601
8602         * NEWS: update
8603
8604 2003-07-28  Havoc Pennington  <hp@redhat.com>
8605
8606         * bus/messagebus.in: fix to avoid processname/servicename 
8607         confusion, from Michael Kearey
8608         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8609         
8610 2003-07-23  Havoc Pennington  <hp@pobox.com>
8611
8612         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8613         fix from Andy Hanton to remove broken "+1"
8614
8615 2003-07-16  Havoc Pennington  <hp@pobox.com>
8616
8617         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8618         babysitter process, as suggested by Thomas Leonard, so 
8619         an "eval `dbus-launch --exit-with-session`" will actually 
8620         return
8621
8622 2003-07-16  Havoc Pennington  <hp@pobox.com>
8623
8624         * configure.in: print out EXPANDED_* variables in the summary at
8625         the end; clean up the code that computes EXPANDED_ variables and
8626         get the ones using exec_prefix right. Should make things work
8627         when you build without --prefix
8628
8629 2003-06-29  Havoc Pennington  <hp@pobox.com>
8630
8631         * mono/Test.cs (class Test): fire up a main loop and run it
8632
8633         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8634         done once, the app has to do it
8635
8636 2003-06-26  Havoc Pennington  <hp@pobox.com>
8637
8638         * mono/Connection.cs: set up connection with the glib main loop
8639
8640 2003-07-01  Havoc Pennington  <hp@redhat.com>
8641
8642         * doc/dbus-specification.sgml: clarify the format of a type code,
8643         change suggested by Jim Blandy
8644
8645 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8646
8647         * doc/Makefile.am:
8648         * tools/Makefile.am: Don't assume srcdir == builddir.
8649
8650         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8651         the allocated block.
8652         (_dbus_memory_test): New function.
8653         * dbus/dbus-test.h: Add _dbus_memory_test ().
8654         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8655
8656         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8657         of %c%c%c%c.
8658         (dbus_message_new): Remove obsolete @todo.
8659
8660         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8661         (_dbus_marshal_set_uint64): Fix comment.
8662
8663         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8664         hardcode FIELD_REPLY_SERIAL.
8665
8666         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8667         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8668
8669         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8670         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8671
8672 2003-06-24  Havoc Pennington  <hp@pobox.com>
8673
8674         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8675
8676 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8677
8678         * configure.in:
8679         * gcj/.cvsignore:
8680         * gcj/Hello.java:
8681         * gcj/Makefile.am:
8682         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8683         * gcj/org/.cvsignore:
8684         * gcj/org/Makefile.am:
8685         * gcj/org/freedesktop/.cvsignore:
8686         * gcj/org/freedesktop/Makefile.am:
8687         * gcj/org/freedesktop/dbus/.cvsignore:
8688         * gcj/org/freedesktop/dbus/Makefile.am:
8689         * gcj/org/freedesktop/dbus/Message.java: (Message),
8690         (Message.Message):
8691         * gcj/org/freedesktop/dbus/natMessage.cc:
8692         Fix the build system.
8693
8694 2003-06-22  Havoc Pennington  <hp@pobox.com>
8695
8696         * mono/Connection.cs: add more bindings
8697
8698         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8699         more than once.
8700
8701 2003-06-22  Havoc Pennington  <hp@pobox.com>
8702
8703         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8704         Start wrapping more stuff.
8705
8706 2003-06-22  Havoc Pennington  <hp@pobox.com>
8707
8708         * mono/Message.cs: implement Message.Wrap() that ensures we only
8709         have a single C# wrapper per DBusMessage, assuming it works which
8710         it probably doesn't.
8711
8712         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8713         (dbus_message_free_data_slot): new
8714         (dbus_message_set_data): new
8715         (dbus_message_get_data): new
8716
8717 2003-06-22  Havoc Pennington  <hp@pobox.com>
8718
8719         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8720         (_dbus_data_slot_allocator_alloc): rework these to keep a
8721         reference count on each slot and automatically manage a global
8722         slot ID variable passed in by address
8723
8724         * bus/bus.c: convert to new dataslot API
8725
8726         * dbus/dbus-bus.c: convert to new dataslot API
8727
8728         * dbus/dbus-connection.c: convert to new dataslot API
8729
8730         * dbus/dbus-server.c: convert to new dataslot API
8731
8732         * glib/dbus-gmain.c: ditto
8733
8734         * bus/test.c: ditto
8735
8736         * bus/connection.c: ditto
8737
8738 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8739
8740         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8741         after the gcj checks so that the correct configuration tags
8742         will be added to libtool.
8743
8744         * dbus-glib-1.pc.in: No need to specify any includes since
8745         dbus-1.pc.in has those.
8746
8747 2003-06-22  Havoc Pennington  <hp@pobox.com>
8748
8749         * mono/*, gcj/*, configure.in, Makefile.am:
8750         Check in makefiles and subdirs for mono and gcj bindings.
8751         Neither binding actually exists, just trying to get through
8752         all the build and other boring bits.
8753
8754 2003-06-21  Philip Blundell  <philb@gnu.org>
8755
8756         * tools/dbus-monitor.1: Updated.
8757
8758         * tools/dbus-send.1: Likewise.
8759
8760 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8761
8762         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8763         for hangup and error after checking read so we won't discard
8764         pending data if both hangup and read are set.
8765
8766 2003-06-19  Philip Blundell  <philb@gnu.org>
8767
8768         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8769
8770         * tools/dbus-send.c: Accept both --system and --session.
8771
8772         * tools/dbus-monitor.c: Same here.
8773
8774 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8775
8776         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8777         from C++ (Patch by Miloslav Trmac).
8778
8779 2003-06-15  Joe Shaw  <joe@assbarn.com>
8780
8781         * configure.in: Check for socklen_t.
8782
8783         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8784
8785         * test/test-segfault.c: Add #include <sys/time.h>
8786
8787         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8788         dbus-launch needs it.
8789
8790 2003-06-09  Havoc Pennington  <hp@redhat.com>
8791
8792         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8793         SUN_LEN, it breaks abstract socket usage
8794
8795         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8796         starts of lines.
8797
8798 2003-06-04  Havoc Pennington  <hp@pobox.com>
8799
8800         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8801         using unix:abstract=/foo, and when listening in a tmpdir
8802         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8803
8804         * dbus/dbus-transport.c (_dbus_transport_open): support
8805         unix:abstract=/foo
8806
8807         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8808         support abstract sockets
8809
8810         * dbus/dbus-transport-unix.c
8811         (_dbus_transport_new_for_domain_socket): support abstract sockets
8812
8813         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8814         toggle as an argument, implement abstract namespace support
8815         (_dbus_listen_unix_socket): ditto
8816
8817         * configure.in: add --enable-abstract-sockets and implement
8818         a configure check for autodetection of the right value.
8819
8820 2003-06-01  Havoc Pennington  <hp@pobox.com>
8821
8822         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8823         in /tmp (though on Linux this will end up being useless,
8824         when we add abstract namespace support)
8825
8826         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8827         subst'ing it
8828
8829 2003-05-28  Colin Walters  <walters@verbum.org>
8830
8831         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8832
8833 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8834
8835         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8836
8837 2003-05-17  Colin Walters  <walters@gnu.org>
8838
8839         * tools/dbus-send.c: Don't exit with an error code if --help was
8840         passed.  Default to using the session bus instead of the system
8841         one.
8842
8843         * tools/dbus-launch.c: Ditto.
8844
8845         * tools/dbus-monitor.c: Ditto.
8846
8847         * tools/dbus-send.1: Update with new arguments.
8848
8849         * tools/dbus-launch.c: Emit code to export variables.  New
8850         arguments -s and -c to specify shell syntax, and a bit of code to
8851         autodetect syntax.  Also, allow specifying a program to run.
8852
8853         * tools/dbus-launch.1: Update with new arguments.
8854
8855         * tools/dbus-send.1: Ditto.
8856
8857         * tools/dbus-monitor.1: Ditto.
8858
8859 2003-05-17  Havoc Pennington  <hp@pobox.com>
8860
8861         * bus/config-parser.c (merge_included): merge in policies from
8862         child configuration file.
8863
8864         * bus/policy.c (bus_policy_merge): function to merge two policies
8865         together
8866
8867 2003-05-16  Havoc Pennington  <hp@redhat.com>
8868
8869         * dbus/dbus-connection.c: disable verbose lock spew
8870
8871         * tools/dbus-send.c: add --print-reply command line option
8872
8873         * tools/dbus-print-message.h (print_message): new util function
8874         shared by dbus-send and dbus-monitor
8875
8876         * tools/dbus-monitor.c (handler_func): exit on disconnect
8877
8878         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8879         disconnected, don't try to use the read_watch
8880
8881         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8882         so we can find this bug more easily
8883
8884 2003-05-16  Havoc Pennington  <hp@redhat.com>
8885
8886         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8887         NULL as DBusHashTable is annoyingly likely to do.
8888
8889 2003-05-16  Colin Walters  <walters@verbum.org>
8890
8891         * tools/dbus-monitor.c: Add --session argument and usage()
8892         function.
8893
8894         * tools/dbus-monitor.1: Update with new --session arg.
8895
8896         * bus/Makefile.am (install-data-hook): Create
8897         $(libdir)/dbus-1.0/services so that the session bus is happy.
8898
8899 2003-05-15  Havoc Pennington  <hp@redhat.com>
8900
8901         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8902         on non-x86. ifdef's are evil.
8903
8904 2003-05-15  Havoc Pennington  <hp@redhat.com>
8905
8906         * configure.in: 0.11
8907
8908         * NEWS: update
8909
8910         * bus/Makefile.am (initddir): apparently we are supposed to put
8911         init scripts in /etc/rc.d/init.d not /etc/init.d
8912
8913         * bus/Makefile.am: remove the "you must --enable-tests to make
8914         check" as it broke distcheck
8915
8916         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8917
8918 2003-05-13  James Willcox  <jwillcox@gnome.org>
8919
8920         * configure.in:
8921         * bus/activation.c: (bus_activation_service_created),
8922         (bus_activation_activate_service):
8923         * bus/driver.c: (bus_driver_send_service_deleted),
8924         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8925         (bus_driver_send_service_acquired),
8926         (bus_driver_send_welcome_message),
8927         (bus_driver_handle_list_services):
8928         * bus/session.conf.in:
8929         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8930         (dbus_bus_service_exists), (dbus_bus_activate_service):
8931         * dbus/dbus-bus.h:
8932
8933         Add some convenience API which lets you activate a service, and did a
8934         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8935         and dbus_message_get_args()
8936
8937 2003-05-11  Havoc Pennington  <hp@pobox.com>
8938
8939         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8940         calling _dbus_marshal_validate_arg() for every byte in a byte
8941         array, etc.
8942
8943         * dbus/dbus-message-handler.c: use atomic reference counting to
8944         reduce number of locks slightly; the global lock in here sucks
8945
8946         * dbus/dbus-connection.c
8947         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8948         update_dispatch_status that can be called with lock held; then use
8949         in a couple places to reduce locking/unlocking
8950         (dbus_connection_send): hold the lock over the whole function
8951         instead of acquiring it twice.
8952
8953         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8954
8955         * bus/connection.c (bus_connections_setup_connection): fix access
8956         to already-freed memory.
8957
8958         * dbus/dbus-connection.c: keep a little cache of linked list
8959         nodes, to avoid using the global linked list alloc lock in the
8960         normal send-message case. Instead we just use the connection lock
8961         that we already have to take.
8962
8963         * dbus/dbus-list.c (_dbus_list_find_last): new function
8964
8965         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8966         change to use a struct for the atomic type; fix docs,
8967         they return value before increment, not after increment.
8968
8969         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8970         (_dbus_string_append_8_aligned): new functions to try to
8971         microoptimize this operation.
8972         (reallocate_for_length): break this out of set_length(), to
8973         improve profile info, and also so we can consider inlining the
8974         set_length() part.
8975
8976         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8977         strings with some preallocation, cuts down on our calls to realloc
8978         a fair bit. Though if we can get the "move entire string to empty
8979         string" optimization below to kick in here, it would be better.
8980
8981         * dbus/dbus-string.c (_dbus_string_move): just call
8982         _dbus_string_move_len
8983         (_dbus_string_move_len): add a special case for moving
8984         an entire string into an empty string; we can just
8985         swap the string data instead of doing any reallocs.
8986         (_dbus_string_init_preallocated): new function
8987
8988 2003-05-11  Havoc Pennington  <hp@pobox.com>
8989
8990         Write a "test-profile" that does echo client-server with threads;
8991         profile reveals lock contention, memcpy/realloc of buffers, and
8992         UTF-8 validation as hot spots. 20% of lock contention eliminated
8993         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8994         contention is global mempool locks for GList and DBusList.
8995
8996         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8997         x86 implementation
8998
8999         * dbus/dbus-connection.c (struct DBusConnection): use
9000         dbus_atomic_t for the reference count
9001
9002         * dbus/dbus-message.c (struct DBusMessage): declare
9003         dbus_atomic_t values as volatile
9004
9005         * configure.in: code to detect ability to use atomic integer
9006         operations in assembly, from GLib patch
9007
9008         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9009         time, tired of it being wrong in threads and forked processes
9010
9011         * glib/test-profile.c: a little program to bounce messages back
9012         and forth between threads and eat CPU
9013
9014         * dbus/dbus-connection.c: add debug spew macros for debugging
9015         thread locks; include config.h at top; fix deadlock in
9016         dbus_connection_flush()
9017
9018 2003-05-08  Havoc Pennington  <hp@pobox.com>
9019
9020         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9021         data from getting written, and there wasn't a good reason to
9022         use _exit really.
9023
9024         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9025         dbus_verbose lines in test coverage
9026         (main): add list of functions sorted by # of untested blocks
9027         to the coverage report
9028
9029         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9030
9031         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9032
9033         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9034         extend test coverage
9035
9036         * test/data/auth/cancel.auth-script: test canceling an
9037         authentication
9038
9039         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9040         aren't used. in CVS history if we end up needing them.
9041
9042 2003-05-04  Havoc Pennington  <hp@pobox.com>
9043
9044         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9045         unit test
9046
9047         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9048         function, which assumed length was in # of strings, not bytes
9049
9050         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9051         missing coverage
9052
9053         * dbus/dbus-connection.c
9054         (_dbus_connection_queue_received_message): disable function for
9055         now, we are only using it in test mode
9056
9057         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9058         remove a mistaken FIXME
9059
9060 2003-05-04  Havoc Pennington  <hp@pobox.com>
9061
9062         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9063         unlock mutex on successful return, patch from Anders Gustafsson
9064
9065 2003-05-04  Havoc Pennington  <hp@pobox.com>
9066
9067         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9068         Anders Gustafsson
9069
9070 2003-05-04  Havoc Pennington  <hp@pobox.com>
9071
9072         * tools/dbus-launch.c: implement
9073
9074         * bus/main.c (main), bus/bus.c (bus_context_new):
9075         implement --print-pid and --fork
9076
9077 2003-05-03  Havoc Pennington  <hp@redhat.com>
9078
9079         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9080         the address had no value, and add to test suite. Fix and
9081         regression test from Miloslav Trmac
9082
9083 2003-05-03  Havoc Pennington  <hp@pobox.com>
9084
9085         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9086         watch is invalid when handled
9087
9088         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9089         dbus-launch utility to launch the bus from a shell script.  Didn't
9090         actually implement dbus-launch yet, it's just a placeholder still.
9091
9092 2003-05-03  Havoc Pennington  <hp@pobox.com>
9093
9094         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9095         daemon; also documents daemon config file, so replaces
9096         doc/config-file.txt. Corrected some stuff from config-file.txt in
9097         the process of moving it.
9098
9099 2003-05-03  Havoc Pennington  <hp@pobox.com>
9100
9101         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9102         add some man pages
9103
9104 2003-05-03  Colin Walters  <walters@verbum.org>
9105
9106         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9107         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9108
9109         * Makefile.am: Update to use new .pc versioning scheme.
9110
9111 2003-05-02  Havoc Pennington  <hp@redhat.com>
9112
9113         * bus/system.conf.in: allow send/receive to/from message bus
9114         service
9115
9116 2003-04-30  Havoc Pennington  <hp@redhat.com>
9117
9118         * configure.in: print a note when building with unit tests and
9119         without assertions
9120
9121 2003-04-30  Havoc Pennington  <hp@redhat.com>
9122
9123         * Makefile.am: add a check-local that complains if you didn't
9124         configure with --enable-tests
9125
9126 2003-04-29  Havoc Pennington  <hp@redhat.com>
9127
9128         * glib/dbus-gmain.c: docs cleanups
9129
9130         * dbus/dbus-types.h: add docs on int64 types
9131
9132         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9133         public API docs section
9134
9135 2003-04-29  Havoc Pennington  <hp@redhat.com>
9136
9137         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9138         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9139         parallel install API version, not with the D-BUS package version.
9140
9141         * HACKING: move some of README over here
9142
9143         * README: updates, and document API/ABI policy
9144
9145         * configure.in: reindentation
9146
9147 2003-04-29  Havoc Pennington  <hp@redhat.com>
9148
9149         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9150         to use this library" to be sure people have the right
9151         expectations.
9152
9153 2003-04-28  Havoc Pennington  <hp@redhat.com>
9154
9155         * configure.in: add --enable-docs which by default is auto yes if
9156         doxygen and db2html found, no otherwise; but can be forced on/off
9157
9158         * doc/Makefile.am: conditionalize whether to build docs on
9159         --enable-docs
9160
9161 2003-04-28  Havoc Pennington  <hp@redhat.com>
9162
9163         * configure.in: 0.10
9164
9165         * NEWS: update
9166
9167         * bus/system.conf.in: add <includedir>system.d</includedir>
9168
9169         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9170         username was provided but not uid
9171
9172         * bus/config-parser.c (struct BusConfigParser): keep track of
9173         whether the parser is toplevel or was included; change some
9174         of the error handling if it's included.
9175
9176 2003-04-27  Havoc Pennington  <hp@pobox.com>
9177
9178         Unbreak my code...
9179
9180         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9181         report correct status if we finish processing authentication
9182         inside this function.
9183
9184         * bus/activation.c (try_send_activation_failure): use
9185         bus_transaction_send_error_reply
9186
9187         * bus/connection.c (bus_connection_get_groups): return an error
9188         explaining the problem
9189
9190         * bus/bus.c (bus_context_check_security_policy): implement
9191         restriction here that inactive connections can only send the
9192         hello message. Also, allow bus driver to send anything to
9193         any recipient.
9194
9195         * bus/connection.c (bus_connection_complete): create the
9196         BusClientPolicy here instead of on-demand.
9197         (bus_connection_get_policy): don't return an error
9198
9199         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9200         sender field in message being replied to
9201
9202         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9203         causing it to return FALSE always
9204
9205         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9206         we checked sender rather than destination
9207
9208 2003-04-25  Havoc Pennington  <hp@redhat.com>
9209
9210         test suite is slightly hosed at the moment, will fix soon
9211
9212         * bus/connection.c (bus_connections_expire_incomplete): fix to
9213         properly disable the timeout when required
9214         (bus_connection_set_name): check whether we can remove incomplete
9215         connections timeout after we complete each connection.
9216
9217         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9218         probably still broken.
9219
9220         * bus/services.c (bus_registry_acquire_service): implement max
9221         number of services owned, and honor allow/deny rules on which
9222         services a connection can own.
9223
9224         * bus/connection.c (bus_connection_get_policy): report errors here
9225
9226         * bus/activation.c: implement limit on number of pending
9227         activations
9228
9229 2003-04-25  Havoc Pennington  <hp@redhat.com>
9230
9231         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9232         where we used >= 0 instead of != DBUS_UID_UNSET.
9233
9234 2003-04-25  Havoc Pennington  <hp@redhat.com>
9235
9236         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9237         were toggled without add/remove, fix from Anders Gustafsson
9238
9239 2003-04-24  Havoc Pennington  <hp@redhat.com>
9240
9241         * test/data/valid-config-files/basic.conf: add <limit> tags to
9242         this test
9243
9244         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9245         <limit> tag in configuration file.
9246
9247 2003-04-24  Havoc Pennington  <hp@redhat.com>
9248
9249         * bus/dispatch.c: somehow missed some name_is
9250
9251         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9252         (_dbus_timeout_set_interval): new
9253
9254         * bus/connection.c (bus_connections_setup_connection): record time
9255         when each connection is first set up, and expire them after the
9256         auth timeout passes.
9257
9258 2003-04-24  Havoc Pennington  <hp@redhat.com>
9259
9260         * dbus/dbus-message.c (dbus_message_name_is): rename
9261         (dbus_message_service_is): rename
9262         (dbus_message_sender_is): rename
9263         (dbus_message_get_service): rename
9264
9265 2003-04-24  Havoc Pennington  <hp@redhat.com>
9266
9267         * configure.in: add --enable-checks
9268
9269         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9270
9271         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9272         to use thread locks.
9273         (_dbus_connection_handler_destroyed_locked): move some private
9274         functions into proper docs group
9275
9276         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9277         _dbus_return_val_if_fail
9278
9279         Throughout: use dbus_return_if_fail
9280
9281 2003-04-23  James Willcox  <jwillcox@gnome.org>
9282
9283         * glib/dbus-glib.h:
9284         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9285         (dbus_connection_setup_with_g_main),
9286         (dbus_server_setup_with_g_main):
9287         * glib/test-dbus-glib.c: (main):
9288         * glib/test-thread-client.c: (main):
9289         * glib/test-thread-server.c: (new_connection_callback), (main):
9290         * tools/dbus-monitor.c: (main):
9291
9292         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9293         and dbus_server_setup_with_g_main().
9294
9295 2003-04-20  Havoc Pennington  <hp@pobox.com>
9296
9297         * doc/dbus-specification.sgml: document the restrictions on
9298         message and service names
9299
9300 2003-04-22  Havoc Pennington  <hp@redhat.com>
9301
9302         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9303         support, and do some code cleanups to share more code and
9304         speed up array marshal/demarshal.
9305
9306         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9307
9308         * configure.in: generate dbus-arch-deps.h
9309
9310         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9311         64-bit typecodes
9312
9313 2003-04-22  Havoc Pennington  <hp@redhat.com>
9314
9315         * test/data/valid-messages/opposite-endian.message: fix test
9316         to use proper type for rply field
9317
9318         * test/data/invalid-messages: add tests for below validation
9319
9320         * dbus/dbus-message.c (decode_header_data): validate field types,
9321         and validate that named fields are valid names
9322         (decode_name_field): consider messages in the
9323         org.freedesktop.Local. namespace to be invalid.
9324
9325         * dbus/dbus-string.c (_dbus_string_validate_name): new
9326
9327 2003-04-19  Havoc Pennington  <hp@pobox.com>
9328
9329         * bus/driver.c (bus_driver_handle_hello): check limits and
9330         return an error if they are exceeded.
9331
9332         * bus/connection.c: maintain separate lists of active and inactive
9333         connections, and a count of each. Maintain count of completed
9334         connections per user. Implement code to check connection limits.
9335
9336         * dbus/dbus-list.c (_dbus_list_unlink): export
9337
9338         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9339         number of bytes in the message queue for a connection
9340
9341 2003-04-18  Havoc Pennington  <hp@pobox.com>
9342
9343         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9344
9345         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9346         memleaks
9347
9348         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9349         on realloc be sure to update the pointer in the keyring
9350
9351         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9352         offset to avoid writing to unallocated memory
9353
9354         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9355         try the next mechanism, so we properly handle OOM
9356
9357         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9358         on OOM.
9359         (_dbus_keyring_new): fix OOM bug
9360         (_dbus_keyring_new_homedir): always set error; impose a maximum
9361         number of keys we'll load from the file, mostly to speed up the
9362         test suite and make its OOM checks more useful, but also for
9363         general sanity.
9364
9365         * dbus/dbus-auth.c (process_error_server): reject authentication
9366         if we get an error from the client
9367         (process_cancel): on cancel, send REJECTED, per the spec
9368         (process_error_client): send CANCEL if we get an error from the
9369         server.
9370
9371 2003-04-18  Havoc Pennington  <hp@pobox.com>
9372
9373         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9374         debug spew
9375
9376         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9377         handling problem
9378
9379         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9380         about DBUS_TEST_HOMEDIR once
9381
9382         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9383         the environment
9384
9385         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9386         config file so we test the right thing
9387
9388         Throughout: assorted docs improvements
9389
9390 2003-04-18  Havoc Pennington  <hp@pobox.com>
9391
9392         * glib/dbus-gmain.c: adapt to watch changes
9393
9394         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9395
9396         * dbus/dbus-server.h: remove dbus_server_handle_watch
9397
9398         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9399
9400         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9401         like DBusTimeout, so we don't need dbus_connection_handle_watch
9402         etc.
9403
9404 2003-04-17  Havoc Pennington  <hp@redhat.com>
9405
9406         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9407         database usage so it all goes via the DBusUserDatabase cache.
9408
9409 2003-04-17  Havoc Pennington  <hp@redhat.com>
9410
9411         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9412         there was an OOM watch we skipped, we always return TRUE so we
9413         iterate again to have a look at it again. Fixes test suite hang.
9414         Code rearrangement also lets us lose some memset and only iterate
9415         over callbacks once.
9416
9417         * bus/driver.c (bus_driver_handle_message): sense of test for
9418         reply was backward
9419
9420 2003-04-16  Havoc Pennington  <hp@pobox.com>
9421
9422         * doc/dbus-specification.sgml: make spec say serials are unsigned
9423
9424         * dbus/dbus-message.h: change message serials to unsigned
9425
9426         * dbus/dbus-connection.c: adapt to message serials being unsigned
9427
9428 2003-04-15  Havoc Pennington  <hp@pobox.com>
9429
9430         * bus/bus.c: create and keep around a shared DBusUserDatabase
9431         object.
9432
9433         * bus/connection.c (bus_connection_get_groups): don't cache
9434         groups for user in the connection object, since user database
9435         object now does that.
9436
9437 2003-04-16  Havoc Pennington  <hp@redhat.com>
9438
9439         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9440         list of size counters
9441         (_dbus_message_loader_putback_message_link): put back a popped link
9442
9443         * dbus/dbus-connection.c
9444         (dbus_connection_set_max_live_messages_size): rename
9445         max_received_size
9446         (dbus_connection_get_outgoing_size): get size of outgoing
9447         queue
9448         (_dbus_connection_set_connection_counter): remove this cruft
9449
9450 2003-04-14  Havoc Pennington  <hp@redhat.com>
9451
9452         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9453         caching, but at some point we might want to be able to use a
9454         different database.
9455
9456         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9457         SHA1 conf file to test the sha1 auth mechanism, since the regular
9458         test always uses EXTERNAL when available.
9459
9460         * configure.in,
9461         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9462         add conf file that requires use of sha1 auth
9463
9464 2003-04-13  Havoc Pennington  <hp@pobox.com>
9465
9466         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9467         from Philip Blundell to send messages and monitor them.
9468
9469 2003-04-13  Havoc Pennington  <hp@pobox.com>
9470
9471         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9472         callbacks
9473
9474         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9475         users
9476
9477         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9478         fix to only recover unused bytes if we're already authenticated
9479         (_dbus_transport_get_is_authenticated): fix to still mark us
9480         authenticated if there are unused bytes.
9481
9482         * bus/dispatch.c: implement security policy checking
9483
9484         * bus/connection.c (bus_transaction_send_from_driver): new
9485
9486         * bus/bus.c (bus_context_check_security_policy): new
9487
9488         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9489         now we just set the DBusError and it gets converted to an error
9490         reply.
9491
9492         * bus/connection.c (allow_user_function): enable code using actual
9493         data from the config file
9494
9495         * bus/policy.c (list_allows_user): handle wildcard rules for
9496         user/group connection perms
9497
9498 2003-04-13  Havoc Pennington  <hp@pobox.com>
9499
9500         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9501
9502         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9503
9504         * bus/policy.c (bus_policy_append_mandatory_rule)
9505         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9506         (bus_policy_append_group_rule): new functions
9507
9508 2003-04-12  Havoc Pennington  <hp@pobox.com>
9509
9510         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9511
9512         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9513         the pid/gid/uid, just for paranoia.
9514
9515         * test/break-loader.c (randomly_do_n_things): find a byte
9516         containing a type code, and randomly change it to a different
9517         type code.
9518
9519 2003-04-12  Havoc Pennington  <hp@pobox.com>
9520
9521         * bus/policy.h: change BusPolicy to be the thing from the config
9522         file, and rename old BusPolicy to BusClientPolicy
9523
9524         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9525         match change in how policy works
9526
9527         * dbus/dbus-internals.h: mark assert_not_reached as
9528         __attribute((noreturn))__
9529
9530 2003-04-11  Havoc Pennington  <hp@redhat.com>
9531
9532         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9533         the broadcast service. Use boolean return for ServiceExists.
9534
9535 2003-04-11  Havoc Pennington  <hp@redhat.com>
9536
9537         * configure.in: add another directory to look for qt in.
9538
9539 2003-04-11  Havoc Pennington  <hp@redhat.com>
9540
9541         * AUTHORS: add Colin Walters
9542
9543 2003-04-11  Havoc Pennington  <hp@redhat.com>
9544
9545         * NEWS: update
9546
9547         * configure.in: 0.9
9548
9549 2003-04-11  Havoc Pennington  <hp@redhat.com>
9550
9551         * bus/messagebus.in: remove pid file when stopping the
9552         message bus, since the bus won't have privileges to remove it
9553         itself.
9554
9555 2003-04-11  Havoc Pennington  <hp@redhat.com>
9556
9557         * bus/bus.c (bus_context_new): move credentials change after
9558         creating pidfile
9559
9560 2003-04-11  Havoc Pennington  <hp@pobox.com>
9561
9562         * test/decode-gcov.c: add "below average functions" to the
9563         coverage report, and change how some of the code works.
9564
9565         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9566         not in the coverage stats.
9567
9568         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9569         couple places so running the test suite doesn't result in megaspam.
9570
9571 2003-04-11  Havoc Pennington  <hp@pobox.com>
9572
9573         * bus/dispatch.c (check_existent_service_activation): accept a no
9574         memory error in a place we didn't before
9575
9576         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9577         in case the first one failed," since the test suite is less
9578         broken now.
9579
9580 2003-04-10  Havoc Pennington  <hp@pobox.com>
9581
9582         * bus/dispatch.c (check_segfault_service_activation): add test
9583         for launching an executable that just crashes.
9584
9585         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9586         don't leave a million cores. We'll see how portable this is.
9587
9588 2003-04-10  Havoc Pennington  <hp@pobox.com>
9589
9590         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9591         the possible parent failures before we fork, so that we don't
9592         fail to create a babysitter after creating the child.
9593
9594         * bus/activation.c (bus_activation_activate_service): kill child
9595         if we don't successfully complete the activation.
9596
9597 2003-04-10  Havoc Pennington  <hp@redhat.com>
9598
9599         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9600         the connection if it's disconnected
9601
9602         * bus/activation.c (bus_activation_service_created): use new
9603         transaction features to roll back removal of pending activation if
9604         we don't successfully create the service after all. Don't remove
9605         pending activation if the function fails.
9606
9607         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9608         (_dbus_list_insert_after_link): new code to facilitate
9609         services.c fixes
9610
9611         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9612         new functionality, so we can preallocate the ability to insert
9613         into a hash table.
9614
9615         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9616         allowing us to put custom hooks in a transaction to be used for
9617         cancelling said transaction
9618
9619         * doc/dbus-specification.sgml: add some discussion of secondary
9620         service owners, and disallow zero-length service names
9621
9622         * bus/services.c (bus_registry_acquire_service): new function,
9623         splits out part of bus_driver_handle_acquire_service() and fixes
9624         a bug where we didn't remove the service doing the acquiring
9625         from the secondary queue if we failed to remove the current owner
9626         from the front of the queue.
9627
9628 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9629
9630         * doc/dbus-specification.sgml:
9631         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9632
9633 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9634
9635         * bus/.cvsignore:
9636         * glib/.cvsignore:
9637         * test/.cvsignore:
9638         Added files to cvsignore
9639
9640         * dbus/dbus-message.h:
9641         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9642         Make get_named() take two out argument and return a boolean.
9643         (dbus_message_iter_get_args_valist):
9644         Update usage of get_named().
9645         (dbus_message_iter_append_byte):
9646         Fix typo
9647         (dbus_message_iter_append_named)
9648         Fix typo
9649         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9650         More tests.
9651
9652 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9653
9654         * dbus/dbus-marshal.[ch]:
9655         Add array_type_pos argument to _dbus_marshal_validate_arg.
9656         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9657
9658         * dbus/dbus-message.[ch]:
9659         Multi-dimensional arrays have full type specification in the
9660         outermost array. Iter code re-arranged to handle this.
9661         Added some more iter tests.
9662
9663         * doc/dbus-specification.sgml:
9664         Add me to authors.
9665         Remove old FIXME.
9666         Update new array encoding description.
9667         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9668
9669         * test/data/invalid-messages/array-with-mixed-types.message:
9670         * test/data/valid-messages/array-of-array-of-uint32.message:
9671         Change to the new array format.
9672
9673         * test/data/invalid-messages/too-short-dict.message:
9674         Fix bug in test.
9675
9676         * test/data/valid-messages/recursive-types.message:
9677         Fix up and extend test.
9678
9679 2003-04-10  Havoc Pennington  <hp@pobox.com>
9680
9681         * bus/dispatch.c: lots of fixes
9682
9683         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9684         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9685         that was crack, broke the test service.
9686
9687         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9688         handling to avoid piling up errors if we get a failure on the
9689         first address.
9690
9691         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9692         pid in assertion failures.
9693
9694         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9695         to some fixed size of file descriptor array. Don't return TRUE
9696         anytime a timeout exists, that led to lots of busy loop silliness
9697         in the tests.
9698
9699 2003-04-09  Havoc Pennington  <hp@redhat.com>
9700
9701         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9702         I'd checked this in earlier but hadn't.
9703
9704 2003-04-09  Havoc Pennington  <hp@redhat.com>
9705
9706         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9707         the activation test (man this is getting old!)
9708
9709 2003-04-09  Havoc Pennington  <hp@redhat.com>
9710
9711         * test/test-utils.c: use dispatch status function to fix this up
9712
9713         * bus/connection.c (connection_watch_callback): don't dispatch
9714         from here
9715         (connection_timeout_callback): don't dispatch from here
9716         (bus_connections_setup_connection): set the dispatch status function
9717         (bus_connection_disconnected): unset it
9718
9719         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9720         used to add a connection to be dispatched
9721         (_dbus_loop_iterate): do the dispatching at the end of each
9722         iteration
9723
9724         * dbus/dbus-connection.c
9725         (dbus_connection_set_dispatch_status_function): new function
9726         allowing us to fix up main loop usage
9727         (_dbus_connection_last_unref): free all the various function
9728         user data
9729         (dbus_connection_dispatch): call the DispatchStatusFunction
9730         whenever this function returns
9731         (dbus_connection_handle_watch): call DispatchStatusFunction
9732         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9733         (reply_handler_timeout): call DispatchStatusFunction
9734         (dbus_connection_flush): call DispatchStatusFunction
9735
9736 2003-04-09  Havoc Pennington  <hp@redhat.com>
9737
9738         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9739         a memory leak
9740
9741         * bus/dispatch.c (check_service_activated): fix bug in test
9742
9743         * dbus/dbus-mainloop.c (check_timeout): fix this up
9744
9745         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9746         verbose output so we can sort out output from different processes,
9747         e.g. in the activation case.
9748
9749 2003-04-08  Colin Walters  <walters@gnu.org>
9750
9751         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9752         the pid file.
9753         (bus_context_new): Set it.
9754         (bus_context_unref): Use it to delete the pid file.
9755
9756 2003-04-08  Havoc Pennington  <hp@redhat.com>
9757
9758         * test/data/invalid-messages/array-with-mixed-types.message:
9759         regression test that fails for the moment
9760
9761         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9762         tests for convenience
9763
9764         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9765         array of nil, it broke things.
9766
9767         * test/data/invalid-messages/array-of-nil.message: regression test
9768
9769         * test/data/valid-messages/array-of-array-of-uint32.message:
9770         happened to write this so added it to suite
9771
9772 2003-04-08  Havoc Pennington  <hp@redhat.com>
9773
9774         * bus/driver.c (bus_driver_handle_acquire_service): init
9775         retval/reply before checking name
9776
9777         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9778         recursion depth argument
9779
9780         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9781         in the public struct for future extension
9782
9783         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9784         typo
9785
9786         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9787         message
9788
9789         * doc/dbus-specification.sgml: fix typo
9790
9791 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9792
9793         Implemented recursive types, named types and new-style iters
9794
9795         * bus/driver.c:
9796         * glib/test-thread-client.c: (thread_func):
9797         * glib/test-thread-server.c: (handle_test_message):
9798         * test/test-service.c: (handle_echo):
9799         Update to new api
9800
9801         * dbus/Makefile.am:
9802         * dbus/dbus-dict.c:
9803         * dbus/dbus-dict.h:
9804         * dbus/dbus.h
9805         Remove DBusDict
9806
9807         * dbus/dbus-internals.c: (_dbus_type_to_string):
9808         Update for new types.
9809
9810         * dbus/dbus-marshal.[ch]:
9811         Implement recursive types and the new marshalling format.
9812         Remove hardcoded dict marshalling.
9813         Marshal named types.
9814
9815         * dbus/dbus-message-builder.c:
9816         Add BYTE_ARRAY.
9817         Remove references to old types
9818
9819         * dbus/dbus-message.[ch]:
9820         New non-refcounted iter API that supports recursive iters.
9821         Use iters for appending, including support for recursive
9822         iters.
9823         Add byte and named type support.
9824         Update everything to new marshalling formats.
9825         Add tests for new API.
9826
9827         * dbus/dbus-protocol.h:
9828         Remove old array types.
9829         Add types: BYTE, ARRAY, DICT, NAMED
9830
9831         * dbus/dbus-string.c:
9832         * dbus/dbus-sysdeps.c:
9833         Make parse_double locale safe.
9834
9835         * dbus/dbus-test-main.c:
9836         Call setlocale.
9837
9838         * dbus/dbus-test.c:
9839         Kill dict test
9840
9841         * doc/dbus-specification.sgml:
9842         Update spec
9843
9844         * test/data/incomplete-messages/missing-body.message:
9845         * test/data/invalid-messages/bad-boolean.message:
9846         * test/data/invalid-messages/bad-boolean-array.message:
9847         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9848         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9849         * test/data/invalid-messages/too-short-dict.message:
9850         * test/data/valid-messages/dict-simple.message:
9851         * test/data/valid-messages/dict.message:
9852         * test/data/valid-messages/emptiness.message:
9853         * test/data/valid-messages/lots-of-arguments.message:
9854         * test/data/valid-messages/no-padding.message:
9855         * test/data/valid-messages/recursive-types.message:
9856         Add missing NAME fields
9857         Fix up dicts & arrays
9858
9859         * test/data/invalid-messages/dict-with-nil-value.message:
9860         Removed, this is not invalid anymore.
9861
9862         * test/data/valid-messages/recursive-types.message:
9863         Add new test for deeply recursive types.
9864
9865 2003-04-07  Havoc Pennington  <hp@pobox.com>
9866
9867         * bus/driver.c (bus_driver_handle_acquire_service): return an
9868         error if you try to acquire a service that starts with ':'
9869
9870 2003-04-07  Havoc Pennington  <hp@redhat.com>
9871
9872         * doc/dbus-specification.sgml: require that base service names
9873         start with ':' and that the base service is created/deleted
9874         as first and last things a connection does on the bus
9875
9876         * bus/dispatch.c (check_existent_service_activation): lots more
9877         work on the activation test; it doesn't fully pass yet...
9878
9879         * test/test-service.c (main): fix so we don't memleak the
9880         connection to the message bus
9881         (filter_func): accept a message asking us to exit
9882
9883 2003-04-06  Havoc Pennington  <hp@pobox.com>
9884
9885         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9886         from Colin Walters
9887
9888         * configure.in: fixes to Qt detection from Colin Walters
9889
9890         * doc/Makefile.am: Only remove generated docbook dirs if they
9891         exist, from Colin Walters
9892
9893         * dbus/dbus-bus.c: change how we set well-known connections to
9894         NULL, so that it works if a single connection is stored in
9895         two well-known array slots.
9896
9897         * test/Makefile.am: remove a lot of stuff that isn't immediately
9898         useful, it's in CVS history if we want it.
9899
9900         * test/test-service.c: use dbus-mainloop instead of that
9901         watch.[hc] crack
9902
9903 2003-04-06  Havoc Pennington  <hp@pobox.com>
9904
9905         * dbus/Makefile.am: split lists of sources into stuff that goes in
9906         the library, util functions that go in the lib and are also used
9907         elsewhere, and util functions that are used in tests/daemon but
9908         don't go in the lib.
9909
9910         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9911         here so it can be used in test binaries also
9912
9913 2003-04-06  Havoc Pennington  <hp@pobox.com>
9914
9915         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9916         here in the parent process, so we can return an error if it
9917         fails. Also, move some of the code into the child so the parent
9918         is less hosed if we fail midway through.
9919
9920         * bus/bus.c (bus_context_new): move pidfile detection further up
9921         in the function, before we start overwriting sockets and such.
9922
9923         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9924
9925         * configure.in: add --with-system-pid-file and --with-system-socket
9926
9927 2003-04-06  Colin Walters  <walters@verbum.org>
9928
9929         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9930
9931         * bus/system.conf.in: Declare a pidfile.
9932
9933         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9934         create one (if appropriate).
9935
9936         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9937         (struct BusConfigParser) [pidfile]: New.
9938         (element_type_to_name, merge_included, start_busconfig_child)
9939         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9940         (bus_config_parser_unref): Free it.
9941         (bus_config_parser_get_pidfile): New function.
9942
9943         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9944
9945         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9946
9947         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9948
9949         * dbus/dbus-sysdeps.h: Prototype it.
9950
9951 2003-04-06  Havoc Pennington  <hp@pobox.com>
9952
9953         * bus/bus.c (bus_context_new): print the address in here, rather
9954         than in main(), because we need to do it before forking the daemon
9955
9956         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9957         on the service nonexistent error
9958
9959         * bus/driver.c (bus_driver_handle_acquire_service): set the
9960         sender on the AcquireService reply
9961
9962         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9963         server also listen on a UNIX socket so services can connect to it.
9964
9965 2003-04-06  Havoc Pennington  <hp@pobox.com>
9966
9967         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9968         so it detects deadlocks and also we actually init threads when
9969         debugging.
9970
9971 2003-04-06  Havoc Pennington  <hp@pobox.com>
9972
9973         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9974         save the domain socket name, and unlink it when we disconnect the
9975         server. Means that at least when we exit normally, we won't leave
9976         a bunch of junk in /tmp
9977
9978         * dbus/dbus-transport-unix.c
9979         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9980         memory management). (I was making a real change here but then
9981         didn't)
9982
9983 2003-04-06  Havoc Pennington  <hp@pobox.com>
9984
9985         * bus/bus.c (bus_context_new): fix wrong handling of
9986         server_data_slot_unref() in the error case.
9987
9988         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9989         "(condition) != 0" to _dbus_real_assert so that
9990         "_dbus_assert (pointer)" doesn't cause a warning
9991
9992         * bus/main.c (main): accept --print-address option to print out
9993         the message bus address
9994
9995         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9996
9997         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9998         "tmpdir" option to unix: address on client side
9999
10000         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10001         to unix: address
10002
10003         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10004         we can use to create sockets in the test suite.
10005
10006         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10007         cleanly. To be used for testing.
10008
10009         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10010
10011         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10012
10013         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10014         handle trying to call this when there's no servers active
10015
10016 2003-04-05  Havoc Pennington  <hp@pobox.com>
10017
10018         * NEWS: update
10019
10020         * configure.in: 0.8
10021
10022 2003-04-05  Havoc Pennington  <hp@pobox.com>
10023
10024         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10025         crash on startup. Need to get "try starting the daemon"
10026         in the test suite I guess. ;-)
10027
10028         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10029         tracked the number of open connections; it's better done in
10030         application-specific code as you want it to span all servers etc.
10031
10032 2003-04-05  Havoc Pennington  <hp@pobox.com>
10033
10034         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10035         patch from Colin Walters
10036
10037 2003-04-05  Havoc Pennington  <hp@pobox.com>
10038
10039         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10040         reality; in fact multiple mechanisms are allowed.
10041
10042         * dbus/dbus-internals.c (_dbus_real_assert)
10043         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10044         _dbus_assert_not_reached() into functions, so that they don't show
10045         up in basic block counts for test coverage, and don't use up as
10046         much disk space. Does mean slower execution speed though, so
10047         assumes --disable-asserts is the normal production case.
10048
10049 2003-04-05  Havoc Pennington  <hp@pobox.com>
10050
10051         * test/Makefile.am (dist-hook): also dist *.in files
10052
10053         * NEWS: update
10054
10055         * configure.in: 0.7
10056
10057 2003-04-05  Havoc Pennington  <hp@pobox.com>
10058
10059         * dbus/dbus-string.c: docs warning
10060
10061         * dbus/dbus-spawn.c: missing docs
10062
10063         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10064
10065 2003-04-05  Havoc Pennington  <hp@pobox.com>
10066
10067         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10068         magic from GLib
10069
10070         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10071         to -1 once we've reaped the babysitter
10072         (_dbus_babysitter_handle_watch): do as much work as we can, not
10073         just one go of it
10074
10075         * bus/activation.c: add code using DBusBabysitter so that we
10076         handle it when a service fails to start up properly.
10077         (bus_activation_service_created): don't remove the activation
10078         entries as we go, just let them get removed when we free the pending
10079         activation. Unref reply messages after sending them.
10080
10081 2003-04-05  Havoc Pennington  <hp@pobox.com>
10082
10083         * test/decode-gcov.c (main): print per-directory stats in the report
10084
10085         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10086
10087 2003-04-05  Havoc Pennington  <hp@pobox.com>
10088
10089         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10090
10091         * test/decode-gcov.c: hack up a little program to suck data
10092         out of gcov files. Yes this is sort of silly.
10093
10094         * configure.in: define something in config.h and do an
10095         AM_CONDITIONAL when gcov is enabled
10096
10097 2003-04-04  Havoc Pennington  <hp@redhat.com>
10098
10099         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10100         return a "babysitter" object that is used to monitor the status of
10101         the spawned process and reap it when required.
10102
10103         * test/test-segfault.c, test/test-exit.c,
10104         test/test-sleep-forever.c: binaries that do various lame things,
10105         used in the test suite.
10106
10107         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10108
10109 2003-04-03  Havoc Pennington  <hp@pobox.com>
10110
10111         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10112         in preparation for modifying it, dbus-sysdeps is getting
10113         a bit unmanageable.
10114
10115 2003-04-03  Havoc Pennington  <hp@redhat.com>
10116
10117         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10118         have multiple ones
10119
10120         * bus/*.[hc]: adapt to mainloop change
10121
10122 2003-04-03  Havoc Pennington  <hp@redhat.com>
10123
10124         * bus/activation.c (load_directory): fix up memleaks
10125         (bus_activation_entry_free): free the entry
10126
10127         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10128         we get one from the message bus; fix memleaks.
10129
10130         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10131
10132 2003-04-03  Havoc Pennington  <hp@pobox.com>
10133
10134         * bus/config-parser.c (bus_config_parser_unref): free
10135         list of mechanisms, bug discovered by test suite enhancements
10136         (putting system.conf and session.conf into suite)
10137
10138         * test/Makefile.am, test/test-service.c: add placeholder for a
10139         test service that we'll activate as part of test suite. Doesn't
10140         do anything yet.
10141
10142         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10143         setting NULL value, and use system malloc not dbus_malloc()
10144         when we have unavoidable memleakage.
10145
10146         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10147         didn't work, and support DBUS_BUS_ACTIVATION.
10148
10149         * bus/activation.c (child_setup): pass our well-known bus type to
10150         the child
10151
10152         * bus/config-parser.c: support <type> to specify well-known type
10153
10154         * doc/dbus-specification.sgml: document the env variables to
10155         locate well-known buses and find service activator
10156
10157 2003-04-02  Havoc Pennington  <hp@redhat.com>
10158
10159         * test/Makefile.am (all-local): add a rule to copy tests to
10160         builddir, so we can have generated tests. Use this to remove the
10161         silly hack for testing system.conf and session.conf. Will use this
10162         shortly to generate .service files pointing to test binaries.
10163
10164 2003-04-02  Havoc Pennington  <hp@redhat.com>
10165
10166         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10167         current alloc and needed new length, not max of the doubled
10168         allocation and needed new length. Also, when building tests,
10169         don't do the double-allocation stuff, just realloc every time.
10170
10171 2003-04-02  Havoc Pennington  <hp@redhat.com>
10172
10173         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10174         in error messages
10175         (_dbus_string_get_dirname): new
10176         (_dbus_sysdeps_test): new
10177         (_dbus_directory_open): include dirnames in error messages
10178
10179         * bus/config-parser.c: interpret <include> and <includedir> and
10180         <servicedir> relative to config file location if the given
10181         filename is not absolute.
10182
10183         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10184
10185 2003-04-02  Havoc Pennington  <hp@redhat.com>
10186
10187         * bus/connection.c (bus_transaction_send_error_reply): set sender
10188         service for the error, and unref the reply on success
10189
10190         * bus/activation.c: convert to use BusTransaction so OOM can be
10191         handled correctly
10192         (bus_activation_service_created): set sender of the message
10193
10194 2003-04-01  Havoc Pennington  <hp@redhat.com>
10195
10196         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10197         <includedir> (at least mostly)
10198
10199         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10200         first, then the user ID
10201
10202 2003-04-01  Havoc Pennington  <hp@pobox.com>
10203
10204         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10205         function
10206
10207         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10208
10209         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10210
10211         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10212         socket 0777, and unlink any existing socket.
10213
10214         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10215         the configuration file so specifies; set up auth mechanism
10216         restrictions
10217
10218         * bus/config-parser.c (bus_config_parser_content): add support
10219         for <fork> option and fill in code for <auth>
10220
10221         * bus/system.conf.in: add <fork/> to default configuration,
10222         and limit auth mechanisms to EXTERNAL
10223
10224         * doc/config-file.txt (Elements): add <fork>
10225
10226         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10227         (_dbus_change_identity): new function
10228
10229 2003-03-31  Havoc Pennington  <hp@redhat.com>
10230
10231         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10232         (_dbus_listen_unix_socket): fix off-by-one error in null
10233         termination spotted by Nalin
10234
10235 2003-03-31  Havoc Pennington  <hp@redhat.com>
10236
10237         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10238         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10239         having a real home directory available.
10240
10241 2003-03-31  Havoc Pennington  <hp@redhat.com>
10242
10243         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10244
10245         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10246
10247         * configure.in: add support for specifying a style of init script
10248         to install
10249
10250 2003-03-31  Havoc Pennington  <hp@redhat.com>
10251
10252         Fix some annoying DBusString API and fix all affected code.
10253
10254         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10255         max_length argument
10256         (_dbus_string_get_data): change to return string instead of using
10257         an out param
10258         (_dbus_string_get_const_data): ditto
10259         (_dbus_string_get_data_len): ditto
10260         (_dbus_string_get_const_data_len): ditto
10261
10262 2003-03-31  Havoc Pennington  <hp@redhat.com>
10263
10264         * bus/main.c (main): fix up the command line arguments to be nicer
10265
10266 2003-03-31  Havoc Pennington  <hp@redhat.com>
10267
10268         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10269         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10270         final location that lands in the config file
10271
10272         * bus/config-loader-expat.c (bus_config_load): fix type of
10273         XML_Parser variable
10274
10275         * doc/TODO: remove TODO item for dbus_bus_get()
10276
10277         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10278
10279 2003-03-31  Havoc Pennington  <hp@pobox.com>
10280
10281         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10282         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10283         argument since they are always client side
10284
10285         * dbus/dbus-server.c (dbus_server_get_address): new function
10286
10287         * bus/main.c (main): take the configuration file as an argument.
10288
10289         * test/data/valid-config-files/debug-allow-all.conf: new file to
10290         use with dispatch.c tests for example
10291
10292         * bus/test-main.c (main): require test data dir
10293
10294         * bus/bus.c (bus_context_new): change this to take a
10295         configuration file name as argument
10296
10297         * doc/config-file.txt (Elements): add <servicedir>
10298
10299         * bus/system.conf, bus/session.conf: new files
10300
10301         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10302         well-known socket if none set
10303
10304         * configure.in: create system.conf and session.conf
10305
10306 2003-03-30  Havoc Pennington  <hp@pobox.com>
10307
10308         * bus/config-parser.c: hacking
10309
10310         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10311         to shut down, since it could cause weirdness with the DBusList
10312         lock
10313
10314         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10315         link-oriented stack routines
10316         (alloc_link): free the mempool if the first alloc from it fails
10317
10318         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10319
10320         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10321         from GLib
10322         (_dbus_string_skip_white): new
10323
10324         * doc/config-file.txt (Elements): add <includedir>
10325
10326 2003-03-28  Havoc Pennington  <hp@pobox.com>
10327
10328         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10329         (_dbus_string_copy_data): new functions
10330
10331 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10332
10333         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10334         * dbus/dbus-bus.h:
10335         Add dbus_bus_get.
10336
10337         * dbus/dbus-memory.c:
10338         Fix a doc comment.
10339
10340 2003-03-28  Havoc Pennington  <hp@pobox.com>
10341
10342         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10343         I think it may have just been superstition. Not sure.
10344
10345         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10346         failures that were not being handled.
10347
10348         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10349
10350         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10351         row that will fail on out-of-memory.
10352
10353         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10354         function for testing out-of-memory handling.
10355
10356         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10357         allocation functions, they do map exactly to the expat ones.
10358
10359 2003-03-27  Havoc Pennington  <hp@redhat.com>
10360
10361         * bus/config-loader-libxml.c (bus_config_load): add another error
10362         check
10363
10364 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10365
10366         * doc/TODO:
10367         Add note about automatic service activation.
10368
10369         * doc/dbus-specification.sgml:
10370         Rename the specification and clarify a few things.
10371
10372 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10373
10374         * Doxyfile.in:
10375         * dbus/dbus-address.c:
10376         * dbus/dbus-dict.c:
10377         * dbus/dbus-marshal.c:
10378         * dbus/dbus-server-debug-pipe.c:
10379         * dbus/dbus-transport-unix.c:
10380         Fix documentation warnings.
10381
10382 2003-03-26  Havoc Pennington  <hp@pobox.com>
10383
10384         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10385         after every test so it's quick and easy to see which leaked, and
10386         so we test multiple dbus_shutdown() calls
10387
10388         * configure.in: change configure.in XML stuff to also support
10389         expat
10390
10391         * config-loader-libxml.c: some hacking
10392
10393         * config-loader-expat.c: some hacking
10394
10395         * config-parser.c: some hacking, plus tests
10396
10397 2003-03-25  Havoc Pennington  <hp@redhat.com>
10398
10399         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10400
10401         * configure.in: add --with-xml option to specify XML library,
10402         right now only libxml is supported.
10403
10404         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10405         nonworking code between home and work, still just stubs
10406
10407 2003-03-24  Havoc Pennington  <hp@redhat.com>
10408
10409         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10410         file
10411
10412         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10413         NULL argument for "message" if the error is a well-known one,
10414         fill in a generic message in this case.
10415
10416         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10417         favor of DBusError
10418
10419         * bus/test.c (bus_test_flush_bus): add
10420
10421         * bus/policy.c (bus_policy_test): test code stub
10422
10423 2003-03-24  Havoc Pennington  <hp@pobox.com>
10424
10425         * bus/connection.c (bus_connections_setup_connection): set up
10426         the "can this user connect" function, but it always returns
10427         TRUE until we have a config file parser so we can have a config
10428         file that allows connections.
10429
10430 2003-03-23  Havoc Pennington  <hp@pobox.com>
10431
10432         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10433         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10434         the mutex, so we can check for proper memory management
10435         and OOM handling.
10436
10437         * dbus/dbus-dataslot.c: remove the mutex from
10438         DBusDataSlotAllocator and lock it manually when using it,
10439         to simplify fitting it into the global slots framework.
10440
10441         * dbus/dbus-threads.c (init_static_locks): rework how we're
10442         handling global locks so they are easily shut down.
10443
10444         * bus/policy.c (bus_policy_append_rule): fix
10445
10446         * bus/test-main.c (main): check for memleaks
10447
10448         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10449         test suite check for memleaks
10450
10451         * dbus/dbus-memory.c: add support in test mode for tracking
10452         number of outstanding blocks
10453
10454 2003-03-23  Havoc Pennington  <hp@pobox.com>
10455
10456         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10457         policies code
10458
10459         * dbus/dbus-hash.h: add ULONG hash keys
10460
10461         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10462         (_dbus_get_group_id): new function
10463
10464 2003-03-20  Havoc Pennington  <hp@redhat.com>
10465
10466         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10467         new function
10468         (dbus_connection_get_unix_user): new function
10469
10470 2003-03-20  Havoc Pennington  <hp@pobox.com>
10471
10472         * bus/connection.c (bus_connection_send_oom_error): assert that
10473         message has a sender
10474         (connection_execute_transaction): ditto
10475         (bus_connection_preallocate_oom_error): fix to set the sender, and
10476         set recipient to the destination service, not the bus driver
10477
10478         * bus/policy.c: hacking
10479
10480         * dbus/dbus-message.c (dbus_message_service_is): new function
10481         (dbus_message_sender_is): new
10482
10483 2003-03-19  Havoc Pennington  <hp@redhat.com>
10484
10485         * bus/policy.c: start sketching code for policy restrictions on
10486         what connections can do.
10487
10488 2003-03-18  Havoc Pennington  <hp@redhat.com>
10489
10490         * doc/TODO: some notes on high-level todo items. Little nitpick
10491         stuff is all in @todo, so no need to add it here.
10492
10493         * doc/config-file.txt: some notes on how config file might look
10494
10495 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10496
10497         * configure.in: 0.6
10498
10499         * NEWS: Update.
10500
10501 2003-03-17  Havoc Pennington  <hp@redhat.com>
10502
10503         * dbus/dbus-internals.h: add gcc attributes so that
10504         our printf-style functions warn on bad arguments to
10505         format
10506
10507         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10508         format bug
10509
10510         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10511         printf format bug
10512
10513 2003-03-17  Havoc Pennington  <hp@redhat.com>
10514
10515         * bus/test-main.c (main): make it print something as it runs
10516         so make check doesn't look stuck
10517
10518         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10519         from CVS, now obsolete
10520
10521 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10522
10523         * bus/dispatch.c: (bus_dispatch):
10524         Refetch the service name since it may have been reallocated
10525         when dbus_message_set_sender was called.
10526
10527         * dbus/dbus-sysdeps.c: (_dbus_accept):
10528         Add address and address length variables and use them to stop
10529         valgrind from complaining.
10530
10531 2003-03-17  Havoc Pennington  <hp@pobox.com>
10532
10533         All tests pass, no memleaks, no valgrind complaints.
10534
10535         * bus/test.c: refcount handler_slot
10536
10537         * bus/connection.c (bus_connections_new): refcount
10538         connection_data_slot
10539
10540         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10541         bytes so that auth scripts pass.
10542
10543         * bus/dispatch.c: init message_handler_slot so it gets allocated
10544         properly
10545
10546         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10547
10548         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10549         dealloc server_pipe_hash when no longer used for benefit of
10550         leak checking
10551
10552         * dbus/dbus-auth.c (process_command): memleak fix
10553
10554         * bus/dispatch.c (check_hello_message): memleak fix
10555
10556 2003-03-16  Havoc Pennington  <hp@pobox.com>
10557
10558         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10559
10560 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10561
10562         * bus/activation.c (bus_activation_activate_service): Append
10563         the pending activation entry to the list of pending activations.
10564
10565 2003-03-16  Havoc Pennington  <hp@pobox.com>
10566
10567         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10568         connections
10569
10570         * dbus/dbus-address.c (create_entry): fix OOM handling when
10571         failing to alloc entry->method
10572
10573 2003-03-16  Havoc Pennington  <hp@pobox.com>
10574
10575         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10576         the watch
10577
10578         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10579         add some missing dbus_set_result
10580
10581         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10582         alloc the DBusMessageHandler
10583
10584         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10585         the transport here, since we call this from the finalizer; it
10586         resulted in a double-finalize.
10587
10588         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10589         where we tried to use transport->connection that was NULL,
10590         happened when transport was disconnected early on due to OOM
10591
10592         * bus/*.c: adapt to handle OOM for watches/timeouts
10593
10594         * dbus/dbus-transport-unix.c: port to handle OOM during
10595         watch handling
10596
10597         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10598         reference to unused bytes instead of a copy
10599
10600         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10601         out of memory
10602
10603         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10604         FALSE on OOM
10605
10606         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10607         of memory
10608
10609 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10610
10611         * doc/dbus-specification.sgml:
10612         Document reply message for ActivateService.
10613
10614 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10615
10616         * bus/activation.c: (bus_pending_activation_entry_free),
10617         (bus_pending_activation_free), (bus_activation_new),
10618         (bus_activation_unref), (bus_activation_service_created),
10619         (bus_activation_activate_service):
10620         * bus/activation.h:
10621         * bus/bus.c: (bus_context_new):
10622         * bus/desktop-file.c: (new_section):
10623         * bus/driver.c: (bus_driver_send_service_deleted),
10624         (bus_driver_handle_activate_service):
10625         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10626         * bus/services.h:
10627         * dbus/dbus-connection.c:
10628         (dbus_connection_send_with_reply_and_block):
10629         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10630         * dbus/dbus-protocol.h:
10631         Make activation work better. Now pending activations will be queued
10632         and the daemon won't try to activate services that are already registered.
10633
10634 2003-03-16  Havoc Pennington  <hp@pobox.com>
10635
10636         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10637         connection data
10638
10639         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10640         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10641
10642 2003-03-16  Havoc Pennington  <hp@pobox.com>
10643
10644         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10645         this. always run the test suite before commit...
10646
10647         * bus/*: adapt to DBusConnection API changes
10648
10649         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10650         requires renaming stuff to avoid dbus_connection_dispatch name
10651         conflict.
10652
10653         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10654         function
10655
10656         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10657         separate from _dbus_message_loader_return_buffer()
10658
10659         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10660         this, because it's now always broken to use; the number of
10661         messages in queue vs. the number still buffered by the message
10662         loader is undefined/meaningless. Should use
10663         dbus_connection_get_dispatch_state().
10664         (dbus_connection_dispatch): rename from
10665         dbus_connection_dispatch_message
10666
10667 2003-03-16  Havoc Pennington  <hp@pobox.com>
10668
10669         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10670         implementation
10671
10672 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10673
10674         * dbus/dbus-connection.c:
10675         (dbus_connection_send_with_reply_and_block):
10676         Decrease connection->n_incoming when removing an entry
10677         from the list.
10678         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10679         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10680         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10681         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10682         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10683         (dbus_dict_get_byte_array):
10684         Handle NULL arrays and strings. Also add support for byte arrays.
10685
10686         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10687         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10688         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10689         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10690         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10691         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10692         * dbus/dbus-marshal.h:
10693         Add support for marshalling and demarshalling empty arrays and strings.
10694
10695         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10696         (dbus_message_append_string_array),
10697         (dbus_message_iter_get_boolean),
10698         (dbus_message_iter_get_boolean_array),
10699         (dbus_message_iter_get_int32_array),
10700         (dbus_message_iter_get_uint32_array),
10701         (dbus_message_iter_get_double_array),
10702         (dbus_message_iter_get_byte_array),
10703         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10704         (check_message_handling):
10705         Add support for getting empty arrays and dicts.
10706
10707         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10708         Don't do any validation at all for now, that's better than just checking
10709         for ASCII.
10710
10711         * test/data/valid-messages/emptiness.message:
10712         New test message with lots of empty arrays.
10713
10714 2003-03-16  Havoc Pennington  <hp@pobox.com>
10715
10716         * dbus/dbus-connection.c
10717         (_dbus_connection_queue_received_message_link): new function that
10718         can't fail due to OOM
10719
10720         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10721         new function pops a message together with a list link
10722         containing it.
10723
10724         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10725         message queuing functions to avoid needing to alloc memory
10726
10727 2003-03-16  Havoc Pennington  <hp@pobox.com>
10728
10729         Oops - test code was only testing failure of around 30 of the
10730         mallocs in the test path, but it turns out there are 500+
10731         mallocs. I believe this was due to misguided linking setup such
10732         that there was one copy of dbus_malloc etc. in the daemon and one
10733         in the shared lib, and only daemon mallocs were tested. In any
10734         case, the test case now tests all 500+ mallocs, and doesn't pass
10735         yet, though there are lots of fixes in this patch.
10736
10737         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10738         this so that it doesn't need to allocate memory, since it
10739         has no way of indicating failure due to OOM (and would be
10740         annoying if it did).
10741
10742         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10743
10744         * bus/Makefile.am: rearrange to create two self-contained
10745         libraries, to avoid having libraries with overlapping symbols.
10746         that was resulting in weirdness, e.g. I'm pretty sure there
10747         were two copies of global static variables.
10748
10749         * dbus/dbus-internals.c: move the malloc debug stuff to
10750         dbus-memory.c
10751
10752         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10753         empty.
10754
10755         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10756
10757         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10758         on failure.
10759
10760         * bus/dispatch.c (bus_dispatch_add_connection): free
10761         message_handler_slot when no longer using it, so
10762         memory leak checkers are happy for the test suite.
10763
10764         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10765
10766         * bus/bus.c (new_connection_callback): disconnect in here if
10767         bus_connections_setup_connection fails.
10768
10769         * bus/connection.c (bus_connections_unref): fix to free the
10770         connections
10771         (bus_connections_setup_connection): if this fails, don't
10772         disconnect the connection, just be sure there are no side
10773         effects.
10774
10775         * dbus/dbus-string.c (undo_alignment): unbreak this
10776
10777         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10778         leaking
10779         (_dbus_auth_new): fix the order in which we free strings
10780         on OOM failure
10781
10782         * bus/connection.c (bus_connection_disconnected): fix to
10783         not send ServiceDeleted multiple times in case of memory
10784         allocation failure
10785
10786         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10787         get the base service name
10788         (dbus_bus_register_client): don't return base service name,
10789         instead store it on the DBusConnection and have an accessor
10790         function for it.
10791         (dbus_bus_register_client): rename dbus_bus_register()
10792
10793         * bus/dispatch.c (check_hello_message): verify that other
10794         connections on the bus also got the correct results, not
10795         just the one sending hello
10796
10797 2003-03-15  Havoc Pennington  <hp@pobox.com>
10798
10799         Make it pass the Hello handling test including all OOM codepaths.
10800         Now to do other messages...
10801
10802         * bus/services.c (bus_service_remove_owner): fix crash when
10803         removing owner from an empty list of owners
10804         (bus_registry_ensure): don't leave service in the list of
10805         a connection's owned services if we fail to put the service
10806         in the hash table.
10807
10808         * bus/connection.c (bus_connection_preallocate_oom_error): set
10809         error flag on the OOM error.
10810
10811         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10812         handle _dbus_transport_set_connection failure
10813
10814         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10815         to create watches up front and simply enable/disable them as
10816         needed.
10817         (unix_connection_set): this can now fail on OOM
10818
10819         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10820         of enabling/disabling a watch or timeout.
10821
10822         * bus/loop.c (bus_loop_iterate): don't touch disabled
10823         watches/timeouts
10824
10825         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10826
10827 2003-03-15  Havoc Pennington  <hp@pobox.com>
10828
10829         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10830         write useful test code, after all that futzing around ;-)
10831
10832         Test does not yet pass because we can't handle OOM in
10833         _dbus_transport_messages_pending (basically,
10834         dbus_connection_preallocate_send() does not prealloc the write
10835         watch). To fix this, I think we need to add new stuff to
10836         set_watch_functions, namely a SetEnabled function so we can alloc
10837         the watch earlier, then enable it later.
10838
10839         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10840         dbus-memory.c to the convenience lib
10841
10842         * bus/test.c: rename some static functions to keep them clearly
10843         distinct from stuff in connection.c. Handle client disconnection.
10844
10845 2003-03-14  Havoc Pennington  <hp@pobox.com>
10846
10847         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10848         transport, tests more of the real codepath. Set up clients
10849         with bus_setup_debug_client.
10850
10851         * bus/test.c (bus_setup_debug_client): function to set up debug
10852         "clients" on the main loop
10853
10854         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10855         support
10856
10857         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10858         server type
10859
10860         * dbus/dbus-server-debug.c: support a debug server based on pipes
10861
10862         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10863         (_dbus_close): new function
10864
10865         * configure.in: check for socketpair
10866
10867 2003-03-14  Havoc Pennington  <hp@redhat.com>
10868
10869         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10870         cheesy hack
10871
10872         * dbus/dbus-transport-debug.c: rework this a good bit to be
10873         less complicated. hopefully still works.
10874
10875         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10876         manually
10877
10878         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10879         after running it
10880
10881         * dbus/dbus-message.c (dbus_message_copy): rename from
10882         dbus_message_new_from_message, fix it up to copy
10883         all the message fields, add test case
10884
10885         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10886         not quite passing yet
10887
10888 2003-03-14  Havoc Pennington  <hp@pobox.com>
10889
10890         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10891         until no work remains" in test code. (the large diff here
10892         is just code movement, no actual changes)
10893
10894         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10895         1, no point waiting around for test code.
10896         (_dbus_server_debug_accept_transport): unref the timeout
10897         after adding it (right?)
10898
10899         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10900
10901 2003-03-13  Havoc Pennington  <hp@redhat.com>
10902
10903         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10904         out of memory
10905
10906         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10907         of memory
10908
10909         * dbus/dbus-connection.h: Make AddWatchFunction and
10910         AddTimeoutFunction return a bool so they can fail on out-of-memory
10911
10912         * bus/bus.c (bus_context_new): set up timeout handlers
10913
10914         * bus/connection.c (bus_connections_setup_connection): set up
10915         timeout handlers
10916
10917         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10918         can fail
10919
10920         * bus/bus.c (bus_context_new): adapt to changes
10921
10922         * bus/connection.c: adapt to changes
10923
10924         * test/watch.c: adapt to DBusWatch changes
10925
10926         * bus/dispatch.c (bus_dispatch_test): started adding this but
10927         didn't finish
10928
10929 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10930
10931         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10932
10933 2003-03-13  Havoc Pennington  <hp@pobox.com>
10934
10935         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10936         set up a test framework as for the library
10937
10938 2003-03-12  Havoc Pennington  <hp@pobox.com>
10939
10940         Throughout: purge global variables, introduce BusActivation,
10941         BusConnections, BusRegistry, etc. objects instead.
10942
10943         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10944         message bus object
10945
10946         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10947         going to redo this a bit differently I think
10948
10949 2003-03-12  Havoc Pennington  <hp@redhat.com>
10950
10951         Mega-patch that gets the message bus daemon initially handling
10952         out-of-memory. Work still needed. Also lots of random
10953         moving stuff to DBusError instead of ResultCode.
10954
10955         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10956
10957         * dbus/dbus-connection.c
10958         (dbus_connection_send_with_reply_and_block): use DBusError
10959
10960         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10961         DBusResultCode
10962
10963         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10964         code here, as the only failure possible is OOM.
10965
10966         * bus/connection.c (bus_connection_disconnect):
10967         rename bus_connection_disconnected as it's a notification only
10968
10969         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10970         "name" on get_args failure, should be done by get_args;
10971         don't disconnect client for bad args, just return an error.
10972         (bus_driver_handle_service_exists): ditto
10973
10974         * bus/services.c (bus_services_list): NULL-terminate returned array
10975
10976         * bus/driver.c (bus_driver_send_service_lost)
10977         (bus_driver_send_service_acquired): send messages from driver to a
10978         specific client to the client's unique name, not to the broadcast
10979         service.
10980
10981         * dbus/dbus-message.c (decode_header_data): reject messages that
10982         contain no name field
10983         (_dbus_message_get_client_serial): rename to
10984         dbus_message_get_serial and make public
10985         (_dbus_message_set_serial): rename from set_client_serial
10986         (_dbus_message_set_reply_serial): make public
10987         (_dbus_message_get_reply_serial): make public
10988
10989         * bus/connection.c (bus_connection_foreach): allow stopping
10990         iteration by returning FALSE from foreach function.
10991
10992         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10993         (dbus_connection_free_preallocated_send)
10994         (dbus_connection_preallocate_send): new API for sending a message
10995         without possibility of malloc failure.
10996         (dbus_connection_send_message): rename to just
10997         dbus_connection_send (and same for whole function family)
10998
10999         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11000
11001         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11002
11003         * bus/activation.c: handle/return errors
11004
11005         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11006
11007         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11008         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11009         (_dbus_result_from_errno): move to this file
11010
11011 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11012
11013         * dbus/dbus-marshal.c:
11014         (_dbus_marshal_set_string):
11015         Take a length argument so we can marshal the correct string
11016         length.
11017
11018         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11019         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11020         (_dbus_marshal_test):
11021         * dbus/dbus-marshal.h:
11022         Add support for marshalling and demarshalling dicts.
11023
11024         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11025         Add support for TYPE DICT.
11026
11027         * dbus/dbus-message.c: (set_string_field):
11028         Adjust header padding.
11029
11030         (dbus_message_append_args_valist), (dbus_message_append_dict),
11031         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11032         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11033         (check_message_handling), (check_have_valid_message):
11034         * dbus/dbus-message.h:
11035         Add functions for setting and getting dicts.
11036
11037         * dbus/dbus-protocol.h:
11038         Add DBUS_TYPE_DICT.
11039
11040         * dbus/dbus.h:
11041         Add dbus-dict.h
11042
11043         * doc/dbus-specification.sgml:
11044         Add information about how dicts are marshalled.
11045
11046         * test/data/invalid-messages/dict-with-nil-value.message:
11047         * test/data/invalid-messages/too-short-dict.message:
11048         * test/data/valid-messages/dict-simple.message:
11049         * test/data/valid-messages/dict.message:
11050         Add sample messages containing dicts.
11051
11052 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11053
11054         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11055
11056 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11057
11058         * dbus/Makefile.am:
11059         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11060         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11061         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11062         (dbus_dict_set_double), (dbus_dict_set_string),
11063         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11064         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11065         (dbus_dict_set_string_array), (_dbus_dict_test):
11066         * dbus/dbus-dict.h:
11067         Fix according to comments from Havoc.
11068
11069 2003-03-06  Michael Meeks  <michael@server.home>
11070
11071         * configure.in: if we don't have kde-config, disable have_qt.
11072
11073 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11074
11075         * dbus/Makefile.am:
11076         Add dbus-dict.[ch]
11077
11078         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11079         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11080         (dbus_dict_remove), (dbus_dict_get_value_type),
11081         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11082         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11083         (dbus_dict_put_double), (dbus_dict_put_string),
11084         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11085         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11086         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11087         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11088         (dbus_dict_get_double), (dbus_dict_get_string),
11089         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11090         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11091         (dbus_dict_get_string_array), (_dbus_dict_test):
11092         * dbus/dbus-dict.h:
11093         Add DBusDict implementation
11094
11095         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11096         * dbus/dbus-test.h:
11097         Add _dbus_dict_test
11098
11099 2003-03-04  Havoc Pennington  <hp@pobox.com>
11100
11101         * test/data/auth/*: adapt to changes
11102
11103         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11104         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11105         userid
11106
11107         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11108         more stuff from being in a context name, to make the protocol
11109         simpler to deal with
11110
11111         * dbus/dbus-errors.c (dbus_error_has_name): new function
11112         (dbus_error_is_set): new function
11113
11114         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11115         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11116
11117         * dbus/dbus-connection.c (dbus_connection_flush): also read
11118         messages during a flush operation
11119
11120         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11121
11122 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11123
11124         * configure.in: Check for gethostbyname on Solaris.
11125
11126         * dbus/dbus-transport.c: (_dbus_transport_open):
11127         Remove duplicate "tcp" entry.
11128
11129         * doc/dbus-specification.sgml:
11130         Clarify some things.
11131
11132 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11133
11134         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11135         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11136         (_dbus_keyring_test):
11137         * dbus/dbus-md5.c: (_dbus_md5_compute):
11138         * dbus/dbus-sha.c: (_dbus_sha_compute):
11139         Plug memory leaks.
11140
11141 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11142
11143         * README: Add some things.
11144
11145 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11146
11147         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11148         after case DBUS_TYPE_BOOELAN.
11149
11150 2003-03-02  Havoc Pennington  <hp@pobox.com>
11151
11152         * test/break-loader.c (randomly_set_extreme_ints): add test that
11153         sets really huge and small integers
11154
11155         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11156         that length of boolean array fits in the string, and that
11157         string has room for boolean value in single-bool case.
11158
11159         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11160         optional value to "ALIGN" command which is what to fill the
11161         alignment with.
11162
11163         * test/data/valid-messages/no-padding.message: add regression
11164         test for the message padding problem
11165
11166 2003-03-02  Havoc Pennington  <hp@pobox.com>
11167
11168         * dbus/dbus-message.c (decode_header_data): fix to always init
11169         message_padding, from Benjamin Dauvergne
11170
11171 2003-03-02  Havoc Pennington  <hp@pobox.com>
11172
11173         * configure.in: 0.5
11174
11175         * NEWS: Update.
11176
11177 2003-03-01  Joe Shaw  <joe@assbarn.com>
11178
11179         * configure.in: Check for "struct cmsgcred" and try to access its
11180         members for BSD-like unices.
11181
11182         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11183         _dbus_read_credentials_unix_socket().
11184         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11185         read() for reading the credential byte off the unix socket.  Use
11186         struct cmsgcred on systems that support it.
11187
11188 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11189
11190         * glib/Makefile.am:
11191         * configure.in:
11192         Make gthreads-2.0 dependency optional. Don't build thread test if
11193         its not found.
11194
11195 2003-02-27  Havoc Pennington  <hp@pobox.com>
11196
11197         * dbus/dbus-connection.c
11198         (dbus_connection_send_message_with_reply_and_block): fix doh!
11199         doh! doh! bug that resulted in never removing a reply from the
11200         queue, no wonder we called get_reply_serial so much ;-)
11201
11202         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11203         and client serial instead of demarshaling them every time
11204
11205 2003-02-27  Havoc Pennington  <hp@pobox.com>
11206
11207         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11208         more inlined, using dbus-string-private.h, speeds things up
11209         substantially
11210
11211         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11212         when freeing the string
11213         (_dbus_string_steal_data): fix for align offset
11214         (undo_alignment): new function
11215
11216 2003-02-26  Havoc Pennington  <hp@redhat.com>
11217
11218         All kinds of audit fixes from Owen, plus initial attempt to
11219         handle unaligned memory returned from malloc.
11220
11221         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11222         leave room for align_offset and nul byte
11223         (fixup_alignment): function to track an align_offset and
11224         ensure real->str is aligned
11225         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11226         to allow a nul byte plus align offset
11227         (_dbus_string_lock): fix overflow issue
11228         (_dbus_string_init_const_len): add assertions on sanity of len,
11229         assign allocated to be ALLOCATION_PADDING larger than len
11230         (set_length): fixup the overflow handling
11231         (_dbus_string_get_data_len): fix overflow in assertion
11232         (open_gap): detect overflow in size of gap to be opened
11233         (_dbus_string_lengthen): add overflow check
11234         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11235         (_dbus_string_append): add overflow check
11236         (_dbus_string_append_unichar): overflow
11237         (_dbus_string_delete): fix overflow in assertion
11238         (_dbus_string_copy_len): overflow in assertion
11239         (_dbus_string_replace_len): overflows in assertions
11240         (_dbus_string_find): change to implement in terms of
11241         _dbus_string_find_to
11242         (_dbus_string_find_to): assorted fixage
11243         (_dbus_string_equal_c_str): assert c_str != NULL,
11244         fix logic so the function works
11245         (_dbus_string_ends_with_c_str): fix overflow thingy
11246         (_dbus_string_base64_encode): overflow fix
11247         (_dbus_string_validate_ascii): overflow
11248         (_dbus_string_validate_nul): overflow
11249
11250 2003-02-26  Havoc Pennington  <hp@redhat.com>
11251
11252         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11253
11254 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11255
11256         * configure.in:
11257         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11258
11259         * dbus/dbus-connection.c:
11260         * dbus/dbus-connection.h:
11261         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11262         Add dbus_connection_set_wakeup_main_function and use it when queueing
11263         incoming and outgoing messages.
11264
11265
11266         * dbus/dbus-dataslot.c:
11267         Threadsafe usage of DBusDataSlotAllocator
11268
11269         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11270         dbus_new can fail.
11271
11272         * dbus/dbus-server-unix.c:
11273         Add todo comment
11274
11275         * glib/dbus-gmain.c:
11276         Implement the new wakeup functions for glib.
11277
11278         * glib/Makefile.am:
11279         * glib/test-thread-client.c:
11280         * glib/test-thread-server.c:
11281         * glib/test-thread.h:
11282         Initial cut at some thread test code. Not really done yet.
11283
11284 2003-02-26  Havoc Pennington  <hp@pobox.com>
11285
11286         * dbus/dbus-connection.c
11287         (dbus_connection_send_message_with_reply_and_block): fix crash
11288         where we ref'd the outgoing message instead of the returned reply
11289
11290         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11291         at the end of this function, so if we didn't need to read for
11292         authentication, we reinstall it for receiving messages
11293
11294         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11295         a NULL sender for peer-to-peer case
11296
11297         * dbus/dbus-transport-unix.c (check_read_watch): handle
11298         !authenticated case correctly
11299
11300         * glib/dbus-gmain.c: add support for DBusServer
11301
11302         * dbus/dbus-server.c: add data slot support
11303
11304         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11305         return values and handle errors
11306
11307         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11308         DBusConnection
11309
11310         * Doxyfile.in (INPUT): add glib subdir
11311
11312         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11313         setup_with_g_main instead of hookup_with_g_main; write docs
11314
11315 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11316
11317         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11318         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11319         * dbus/dbus-message.c: (dbus_message_append_boolean),
11320         (dbus_message_append_boolean_array),
11321         (dbus_message_get_args_valist), (_dbus_message_test):
11322         * dbus/dbus-message.h:
11323         * doc/dbus-specification.sgml:
11324         Various fixes as pointed out by Havoc.
11325
11326         * test/data/invalid-messages/bad-boolean-array.message:
11327         * test/data/invalid-messages/bad-boolean.message:
11328         Add invalid boolean value test cases.
11329
11330 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11331
11332         * dbus/dbus-internals.c: (_dbus_type_to_string):
11333         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11334         (_dbus_marshal_validate_arg):
11335         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11336         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11337         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11338         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11339         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11340         (dbus_message_iter_get_double),
11341         (dbus_message_iter_get_boolean_array), (message_iter_test):
11342         * dbus/dbus-message.h:
11343         * dbus/dbus-protocol.h:
11344         * doc/dbus-specification.sgml:
11345         * test/data/valid-messages/lots-of-arguments.message:
11346         Add support for boolean and boolean array types.
11347
11348 2003-02-23  Havoc Pennington  <hp@pobox.com>
11349
11350         * dbus/dbus-keyring.c: finish most of this implementation and
11351         simple unit test
11352
11353         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11354         these barf if the error isn't cleared to NULL
11355
11356         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11357         (_dbus_create_directory): new function
11358
11359         * dbus/dbus-errors.c (dbus_set_error): fix warning
11360
11361         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11362         (_dbus_string_hex_decode): new function
11363         (test_hex_roundtrip): test code
11364
11365         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11366
11367         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11368
11369         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11370         the save-to-temp/rename trick to atomically write the new file
11371         (_dbus_string_parse_uint): new function
11372
11373 2003-02-22  Havoc Pennington  <hp@pobox.com>
11374
11375         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11376
11377 2003-02-22  Havoc Pennington  <hp@pobox.com>
11378
11379         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11380         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11381
11382         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11383
11384         * dbus/test/data/sha-1: add US government test suite for SHA-1
11385
11386 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11387
11388         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11389         Make string arrays NULL-terminated.
11390
11391         * dbus/dbus-memory.c: (dbus_free_string_array):
11392         * dbus/dbus-memory.h:
11393         New function for freeing NULL-terminated string arrays.
11394
11395         * dbus/dbus-message-builder.c: (append_quoted_string),
11396         (_dbus_message_data_load):
11397         Add support for array types.
11398
11399         * dbus/dbus-message.c: (check_message_handling):
11400         Add more types as test cases.
11401
11402         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11403         (_dbus_string_parse_double):
11404         Add the start offset to the end offset.
11405
11406         * test/data/valid-messages/lots-of-arguments.message:
11407         New test message with lots of arguments.
11408
11409 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11410
11411         * dbus/dbus-message.c: (dbus_message_append_nil),
11412         (dbus_message_append_int32), (dbus_message_append_uint32),
11413         (dbus_message_append_double), (dbus_message_append_string),
11414         (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):
11419         Fix all out-of-memory handling in these functions.
11420
11421 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11422
11423         * dbus/dbus-message.c: (dbus_message_append_nil):
11424         Fix a silly.
11425
11426 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11427
11428         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11429         (dbus_message_append_nil), (dbus_message_append_int32_array),
11430         (dbus_message_append_uint32_array),
11431         (dbus_message_append_double_array),
11432         (dbus_message_append_byte_array),
11433         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11434         (dbus_message_iter_get_int32_array),
11435         (dbus_message_iter_get_uint32_array),
11436         (dbus_message_iter_get_double_array),
11437         (dbus_message_iter_get_byte_array),
11438         (dbus_message_iter_get_string_array):
11439
11440         * dbus/dbus-message.h:
11441         Add functions for appending and getting arrays.
11442
11443 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11444
11445         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11446         element size at least 8 bytes, fixes mempool tests on
11447         64-bit machines.
11448
11449 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11450
11451         * dbus/dbus-transport-unix.c (unix_do_iteration):
11452         Unlock the connection mutex during a blocking select call.
11453         Add todo about how we need a way to wake up the select.
11454
11455         * dbus/dbus-connection-internal.h:
11456         * dbus/dbus-connection.c:
11457         Add _dbus_connection_lock and _dbus_connection_unlock.
11458
11459 2003-02-19  Havoc Pennington  <hp@pobox.com>
11460
11461         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11462         Doxyfile.in, not Doxyfile
11463
11464         * dbus/dbus-keyring.c: do some hacking on this
11465
11466         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11467
11468         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11469         dbus_error_init
11470         (dbus_set_error): remove dbus_error_init, check for message ==
11471         NULL *before* we sprintf into it, and add @todo about including
11472         system headers in this file
11473
11474         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11475
11476         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11477
11478         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11479         get various bits of user information based on either username
11480         or user ID
11481         (_dbus_homedir_from_username): new function
11482
11483 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11484
11485         * configure.in:
11486         Add check for nonposix getpwnam_r
11487
11488         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11489         Align the pool element size to a sizeof (void *) boundary.
11490
11491         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11492         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11493         General Solaris fixes.
11494
11495         * test/data/valid-messages/simplest-manual.message:
11496         Explicitly state that we want little-endian packing.
11497
11498 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11499
11500         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11501
11502         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11503         Added to create a transport connecting using a tcp/ip socket.
11504
11505         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11506         to a tcp socket at given host and port.
11507         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11508         hostname and port.
11509
11510         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11511
11512         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11513         Added to create a server listening on a TCP/IP socket.
11514
11515 2003-02-19  Havoc Pennington  <hp@pobox.com>
11516
11517         Throughout: mop up all the Doxygen warnings and undocumented
11518         stuff.
11519
11520         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11521         to search any paths.
11522
11523         * dbus/dbus-threads.c: move global mutex initializers to
11524         dbus-internals.h, multiple prototypes was confusing doxygen
11525         besides being kind of ugly
11526
11527         * Doxyfile (PREDEFINED): have Doxygen define
11528         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11529         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11530         (do not abuse the feature! it's for stuff like the autogenerated
11531         macros in dbus-md5.c, not just for things you don't feel like
11532         documenting...)
11533
11534 2003-02-18  Havoc Pennington  <hp@pobox.com>
11535
11536         * dbus/dbus-string.c (_dbus_string_zero): new function
11537
11538         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11539         wrap it in some dbus-friendly API
11540
11541         * dbus/dbus-types.h: add 16-bit types
11542
11543 2003-02-18  Joe Shaw  <joe@assbarn.com>
11544
11545         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11546         credentials from our currently running process.
11547         (get_word): Fix a buglet where we were copying the entire length
11548         instead of relative to our position.
11549
11550         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11551         keys on the stack... it's 640k of data.
11552
11553         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11554         read the credentials byte off the socket, even if we don't have
11555         SO_PEERCRED.
11556         (_dbus_poll): Implement poll() using select() for systems which
11557         don't have it.
11558
11559         * glib/test-dbus-glib.c (main): Print out an error if no
11560         parameters are given.
11561
11562         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11563         can fallback to a secondary auth mechanism if the first fails.
11564
11565 2003-02-18  Havoc Pennington  <hp@pobox.com>
11566
11567         * AUTHORS: add Alex
11568
11569 2003-02-17  Havoc Pennington  <hp@pobox.com>
11570
11571         * doc/dbus-specification.sgml: lots of cosmetic
11572         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11573         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11574         s/server/bus/ (except in authentication section). Add a section
11575         "Message Bus Message Routing"
11576
11577 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11578
11579         Release 0.4
11580
11581         * NEWS: Update
11582
11583 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11584
11585         * doc/dbus-specification.sgml:
11586         Specification updates.
11587
11588 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11589
11590         * bus/activation.c: (bus_activation_init), (child_setup),
11591         (bus_activation_activate_service):
11592         * bus/activation.h:
11593         * bus/main.c: (main):
11594         Set DBUS_ADDRESS environment variable.
11595
11596         * dbus/dbus-errors.c: (dbus_set_error):
11597         Don't use va_copy since that's a C99 feature.
11598
11599         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11600         (_dbus_spawn_async):
11601         * dbus/dbus-sysdeps.h:
11602         Add child_setup_func to _dbus_spawn_async.
11603
11604         * doc/dbus-specification.sgml:
11605         Update specification.
11606
11607         * test/spawn-test.c: (setup_func), (main):
11608         Fix test.
11609
11610 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11611
11612         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11613         Added todo.
11614
11615 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11616
11617         * doc/.cvsignore:
11618         * doc/Makefile.am:
11619         * doc/dbus-test-plan.sgml:
11620         Add test plan document.
11621
11622         * test/Makefile.am:
11623         Fix distcheck.
11624
11625 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11626
11627         * dbus/dbus-message.c: (decode_header_data),
11628         (_dbus_message_loader_return_buffer):
11629         Set the header padding amount when loading a message.
11630
11631 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11632
11633         * bus/dispatch.c: (send_one_message):
11634         Only send broadcast messages to registered connections.
11635
11636         * dbus/dbus-message.c: (dbus_message_name_is):
11637         * dbus/dbus-message.h:
11638         New convenience function.
11639
11640         * dbus/dbus-transport-debug.c: (do_reading):
11641         Only dispatch one message per run.
11642
11643         * test/Makefile.am:
11644         * test/bus-test.c: (new_connection_callback), (die),
11645         (test_hello_client1_handler), (test_hello_client2_handler),
11646         (test_hello_replies), (main):
11647
11648         * test/bus-test-loop.[ch]:
11649         Add these.
11650
11651 2003-02-16  Havoc Pennington  <hp@pobox.com>
11652
11653         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11654         backward conditional
11655
11656 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11657
11658         * dbus/dbus-connection.c:
11659         Implement sent_message_with_reply. (with_reply_and block is still
11660         busted).
11661         Made dispatch_message not lose message if OOM.
11662
11663         * dbus/dbus-errors.h:
11664         Add NoReply error (for reply timeouts).
11665
11666 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11667
11668         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11669         Actually free keys and values when destroying hashtable.
11670
11671 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11672
11673         * dbus/dbus-auth.c: (client_try_next_mechanism):
11674         Plug a leak.
11675
11676         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11677         Return TRUE if there's no thread implementation around.
11678
11679         * glib/dbus-gmain.c: (free_source),
11680         (dbus_connection_hookup_with_g_main):
11681         Make sure to remove the GSource when the connection is finalized.
11682
11683 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11684
11685         * bus/dispatch.c: (bus_dispatch_message_handler):
11686         * dbus/dbus-errors.h:
11687         Return an error if someone tries to send a message to a service
11688         that doesn't exist.
11689
11690 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11691
11692         * bus/activation.c: (load_directory), (bus_activation_init),
11693         (bus_activation_activate_service):
11694         * bus/activation.h:
11695         * bus/driver.c:
11696         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11697         More work on the activation handling.
11698
11699         * dbus/dbus-errors.h:
11700         Add some error messages
11701
11702         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11703         * dbus/dbus-message.h:
11704         New function that creates an error message.
11705
11706         * dbus/dbus-protocol.h:
11707         Add ACTIVATE_SERVER message.
11708
11709         * dbus/dbus-server-unix.c: (unix_handle_watch),
11710         (_dbus_server_new_for_domain_socket):
11711         Call _dbus_fd_set_close_on_exec.
11712
11713         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11714         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11715         (_dbus_fd_set_close_on_exec):
11716         * dbus/dbus-sysdeps.h:
11717         Add _dbus_fd_set_close_on exec function. Also add function that checks
11718         that all open fds are set to close-on-exec and warns otherwise.
11719
11720         * dbus/dbus-transport-unix.c:
11721         (_dbus_transport_new_for_domain_socket):
11722         Call _dbus_fd_set_close_on_exec.
11723
11724 2003-02-16  Havoc Pennington  <hp@pobox.com>
11725
11726         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11727         allow people to avoid setting SIGPIPE to SIG_IGN
11728         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11729         we've been asked not to
11730
11731 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11732
11733         * dbus/dbus-list.c: (_dbus_list_append_link),
11734         (_dbus_list_prepend_link):
11735         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11736         (dbus_realloc):
11737         Warning fixes.
11738
11739 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11740
11741         * bus/Makefile.am:
11742         * bus/activation.c: (bus_activation_entry_free),
11743         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11744         * bus/activation.h:
11745         * bus/main.c: (main):
11746         Add simple activation support, doesn't work yet though.
11747
11748 2003-02-15   Zack Rusin  <zack@kde.org>
11749
11750         * qt/dbus-qthread.cpp:  small casting fix
11751
11752 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11753
11754         * dbus/dbus-errors.c: (dbus_set_error):
11755         * dbus/dbus-errors.h:
11756         Add a few errors and make dbus_set_error void.
11757
11758         * dbus/dbus-sysdeps.c:
11759         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11760         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11761         * dbus/dbus-sysdeps.h:
11762         Add _dbus_spawn_async.
11763
11764         * test/spawn-test.c: (main):
11765         Test for _dbus_spawn_async.
11766
11767 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11768
11769         * dbus/dbus-internals.h:
11770         Fix build without tests.
11771
11772         * dbus/dbus-list.c: (alloc_link):
11773         Fix a segfault when a malloc fails.
11774
11775         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11776         (dbus_malloc0), (dbus_realloc):
11777         Add support for malloc debugging.
11778
11779 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11780
11781         * dbus/dbus-threads.c:
11782         * dbus/dbus-threads.h:
11783         Add condvars. Remove static mutext from API.
11784         Implement static mutexes by initializing them from threads_init.
11785
11786         * glib/dbus-gthread.c:
11787         * qt/dbus-qthread.cpp:
11788         Update with the thread api changes.
11789
11790
11791         * dbus/dbus-list.c:
11792         * dbus/dbus-list.h:
11793         Turn StaticMutex into normal mutex + init function.
11794         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11795         _dbus_list_append_link, _dbus_list_prepend_link
11796
11797
11798         * dbus/dbus-sysdeps.c:
11799         * dbus/dbus-sysdeps.h:
11800         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11801         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11802
11803         * dbus/dbus-protocol.h:
11804         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11805
11806         * dbus/dbus-message.c:
11807         Make ref/unref atomic.
11808         Fix some docs.
11809
11810         * dbus/dbus-connection-internal.h:
11811         * dbus/dbus-connection.c:
11812         * dbus/dbus-connection.h:
11813         Make threadsafe.
11814         Change _peek to _borrow,_return & _steal_borrowed.
11815         Change disconnect callback to event.
11816         Make dbus_connection_dispatch_messages reentrant.
11817
11818         * dbus/dbus-transport.c:
11819         Don't ref the connection on calls to the transport
11820         implementation.
11821
11822         * dbus/dbus-message-handler.c:
11823         Make threadsafe.
11824
11825         * glib/dbus-gmain.c:
11826         Don't use peek_message anymore
11827
11828         * test/Makefile.am:
11829         * test/debug-thread.c:
11830         * test/debug-thread.h:
11831         Simple thread implementation that asserts() on deadlocks in
11832         single-threaded code.
11833
11834         * test/bus-test.c:
11835         (main) Call debug_threads_init.
11836
11837         * test/watch.c:
11838         Use disconnect message instead of disconnect callback.
11839
11840         * bus/connection.c:
11841         * bus/connection.h:
11842         Don't call dbus_connection_set_disconnect_function. Instead export
11843         bus_connection_disconnect.
11844
11845         * bus/dispatch.c:
11846         Call bus_connection_disconnect when we get a disconnected message.
11847
11848 2003-02-15  Havoc Pennington  <hp@pobox.com>
11849
11850         * dbus/dbus-message.c (dbus_message_new): fool around with the
11851         docs
11852
11853 2003-02-14  Havoc Pennington  <hp@pobox.com>
11854
11855         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11856
11857         * dbus/dbus-memory.c: fail if the debug functions indicate we
11858         should
11859
11860         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11861         (_dbus_decrement_fail_alloc_counter): debug functions to
11862         simulate memory allocation failures
11863
11864 2003-02-14  Havoc Pennington  <hp@pobox.com>
11865
11866         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11867         to DBusError
11868
11869 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11870
11871         * bus/driver.c: (bus_driver_handle_hello):
11872         * bus/driver.h:
11873         * bus/services.c: (bus_service_lookup):
11874         Reorder message sending so we get a more sane order.
11875
11876         * test/bus-test.c: (message_handler):
11877         Fix tyop.
11878
11879 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11880
11881         * bus/driver.c: (bus_driver_send_service_deleted),
11882         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11883         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11884         (bus_driver_send_welcome_message),
11885         (bus_driver_handle_list_services),
11886         (bus_driver_handle_acquire_service),
11887         (bus_driver_handle_service_exists):
11888         * dbus/dbus-bus.c: (dbus_bus_register_client),
11889         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11890         * dbus/dbus-errors.c: (dbus_result_to_string):
11891         * dbus/dbus-errors.h:
11892         * dbus/dbus-message.c: (dbus_message_append_args),
11893         (dbus_message_append_args_valist), (dbus_message_get_args),
11894         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11895         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11896         (dbus_message_iter_get_byte_array),
11897         (dbus_message_iter_get_string_array), (message_iter_test),
11898         (check_message_handling), (_dbus_message_test):
11899         * dbus/dbus-message.h:
11900         * test/bus-test.c: (main):
11901         Change fields to arguments in messages, so that they won't be
11902         confused with header fields.
11903
11904         * glib/test-dbus-glib.c: (main):
11905         Remove append_fields from hello message.
11906
11907 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11908
11909         * dbus/dbus-errors.c:
11910         * dbus/dbus-message.c:
11911         * dbus/dbus-string.c:
11912         Documentation fixes.
11913
11914 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11915
11916         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11917         (remove_timeout):
11918         Implement support for timeouts in dbus-glib.
11919
11920 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11921
11922         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11923         * dbus/dbus-message.c: (process_test_subdir):
11924         * test/break-loader.c: (find_breaks_based_on):
11925         Plug some memory leaks.
11926
11927 2003-02-13  Richard Hult  <rhult@codefactory.se>
11928
11929         * bus/main.c: Fix build.
11930
11931         * dbus/dbus-errors.h:
11932         * dbus/dbus-errors.c: Fix copyright for Anders.
11933
11934 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11935
11936         * bus/Makefile.am:
11937         Add utils.[ch]
11938
11939         * bus/connection.c: (bus_connection_foreach):
11940         Fix a warning.
11941
11942         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11943         (unescape_string), (new_section), (parse_section_start),
11944         (parse_key_value), (report_error), (bus_desktop_file_load),
11945         (bus_desktop_file_get_string):
11946         * bus/desktop-file.h:
11947         Use DBusError for error reporting.
11948
11949         * bus/dispatch.c: (send_one_message),
11950         (bus_dispatch_message_handler):
11951         * bus/driver.c: (bus_driver_send_service_deleted),
11952         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11953         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11954         (bus_driver_send_welcome_message),
11955         (bus_driver_handle_list_services),
11956         (bus_driver_handle_acquire_service),
11957         (bus_driver_handle_service_exists):
11958         * bus/loop.c: (bus_loop_run):
11959         * bus/main.c:
11960         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11961
11962         * bus/utils.c: (bus_wait_for_memory):
11963         * bus/utils.h:
11964         New files with general utility functions.
11965
11966         * dbus/dbus-internals.h:
11967         Remove _DBUS_HANDLE_OOM.
11968
11969 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11970
11971         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11972         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11973         * dbus/dbus-errors.h:
11974         Add DBusError structure.
11975
11976 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11977
11978         * test/data/valid-messages/standard-acquire-service.message:
11979         * test/data/valid-messages/standard-hello.message:
11980         * test/data/valid-messages/standard-list-services.message:
11981         * test/data/valid-messages/standard-service-exists.message:
11982         Add some standard messages.
11983
11984 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11985
11986         * bus/driver.c: (bus_driver_send_welcome_message),
11987         (bus_driver_handle_list_services),
11988         (bus_driver_handle_acquire_service),
11989         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11990         Update for API changes in libdbus.
11991
11992         * dbus/dbus-message.c: (dbus_message_new_reply):
11993         * dbus/dbus-message.h:
11994         Remove the name argument. The spec states that replies shouldn't
11995         have a name.
11996
11997 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11998
11999         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12000         (report_error), (bus_desktop_file_load), (lookup_section),
12001         (lookup_line), (bus_desktop_file_get_raw),
12002         (bus_desktop_file_get_string):
12003         * bus/desktop-file.h:
12004         Some fixes, and new functions for getting a key value from a section.
12005
12006 2003-02-13  Havoc Pennington  <hp@pobox.com>
12007
12008         * test/data/auth/fail-after-n-attempts.auth-script: new test
12009
12010         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12011         reject the client.
12012
12013 2003-02-13  Havoc Pennington  <hp@pobox.com>
12014
12015         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12016         dbus_credentials_match were backward
12017
12018         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12019         NO_CREDENTIALS and ROOT_CREDENTIALS
12020
12021         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12022         into here. Never process more commands after we've reached an
12023         end state; store further data as unused bytes.
12024
12025         * test/data/auth/*: add more auth tests
12026
12027         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12028         command to match exact string and EXPECT_UNUSED to match unused
12029         bytes
12030
12031         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12032
12033 2003-02-12  Havoc Pennington  <hp@pobox.com>
12034
12035         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12036         \r off of popped lines
12037
12038         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12039         scripts
12040
12041         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12042         SEND, append \r\n
12043
12044 2003-02-12  Havoc Pennington  <hp@pobox.com>
12045
12046         * dbus/Makefile.am: remove break-loader from the build, since it
12047         moved.
12048
12049         * configure.in: add --enable-gcov to turn on coverage profiling
12050         flags and disable optimization
12051
12052 2003-02-10  Havoc Pennington  <hp@pobox.com>
12053
12054         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12055         initial cut at test framework for DBusAuth from laptop.
12056         Doesn't quite work yet but it compiles and I need to get
12057         it off the 266mhz laptop. ;-)
12058
12059         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12060         fix a memleak in error case
12061
12062 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12063
12064         * bus/Makefile.am:
12065         * bus/desktop-file.c:
12066         * bus/desktop-file.h:
12067         Add a desktop file parser.
12068
12069 2003-02-11  Zack Rusin  <zack@kde.org>
12070
12071         * qt/message.[h|cpp]: sample implementation
12072         of the KDE wrapper for DBusMessage
12073
12074 2003-02-09  Zack Rusin  <zack@kde.org>
12075
12076         * test/bus-test.c: make_it_compile
12077         * doc/dbus-specification.sgml: minimal semantic fix
12078
12079 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12080
12081         Release 0.3
12082
12083         * NEWS: Update
12084
12085 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12086
12087         * dbus/Makefile.am:
12088         * dbus/dbus-break-loader.c:
12089         * test/Makefile.am:
12090         * test/break-loader.c:
12091         Move dbus-break-loader to test/ and rename it to break-loader.
12092
12093 2003-02-02  Havoc Pennington  <hp@pobox.com>
12094
12095         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12096         for code to manage cookies in your home directory
12097
12098         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12099
12100         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12101         to authenticate, then disconnect the client.
12102
12103 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12104
12105         * dbus/dbus-message.c (dbus_message_append_fields):
12106         Correct docs.
12107
12108 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12109
12110         * doc/dbus-specification.sgml:
12111         Update address format section.
12112
12113 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12114
12115         * test/Makefile.am:
12116         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12117         (message_handler), (new_connection_callback), (loop_quit),
12118         (loop_run), (main):
12119         Add bus test.
12120
12121 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12122
12123         * bus/driver.c: (bus_driver_handle_service_exists):
12124         Simplify the code a bit.
12125
12126         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12127         Fix a silly.
12128
12129 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12130
12131         * bus/Makefile.am:
12132         Add libdbus-daemon.la and link to it.
12133
12134 2003-02-01  James Willcox  <jwillcox@gnome.org>
12135
12136         * bus/driver.c: (bus_driver_handle_own_service):
12137         Actually include the service reply code in the message.
12138
12139 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12140
12141         * bus/driver.c: (bus_driver_handle_service_exists):
12142         Don't unref the incoming message.
12143
12144 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12145
12146         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12147
12148 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12149
12150         * dbus/dbus-server.c: (dbus_server_listen):
12151         * dbus/dbus-transport.c: (_dbus_transport_open):
12152         ifdef out the calls to the debug transport and server.
12153
12154 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12155
12156         * dbus/dbus-watch.c (dbus_watch_get_flags):
12157         Add note in the docs that ERROR or HANGUP won't be returned
12158         and are assumed always on.
12159
12160         * glib/dbus-gmain.c (add_watch):
12161         Always add IO_ERR | IO_HUP
12162
12163         * dbus/dbus-message.h:
12164         Add semicolon after dbus_message_iter_get_string_array().
12165         Makes qt code build again
12166
12167 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12168
12169         * bus/driver.c: (create_unique_client_name),
12170         (bus_driver_handle_hello):
12171         Don't take a name, just use a numeric id to identify
12172         each client.
12173
12174         * dbus/Makefile.am:
12175         * dbus/dbus-bus.c: (dbus_bus_register_client),
12176         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12177         * dbus/dbus-bus.h:
12178         Add new convenience functions for communicating with the bus.
12179
12180         * dbus/dbus-message.h:
12181
12182         * dbus/dbus-protocol.h:
12183         Fix a typo.
12184
12185 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12186
12187         * dbus/dbus-message.c (dbus_message_append_fields):
12188         Add some more doc comments.
12189
12190 2003-02-01  Havoc Pennington  <hp@pobox.com>
12191
12192         * dbus/dbus-break-loader.c (randomly_modify_length): change
12193         a 4-byte value in the message as if it were a length
12194
12195         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12196         execute bit on saved files
12197
12198 2003-02-01  Havoc Pennington  <hp@pobox.com>
12199
12200         * dbus/dbus-break-loader.c (main): new program to find messages
12201         that break the loader.
12202
12203         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12204         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12205
12206         * dbus/dbus-string.c (_dbus_string_set_byte): new
12207
12208 2003-01-31  Havoc Pennington  <hp@pobox.com>
12209
12210         * dbus/dbus-message.c: refactor the test code to be more general,
12211         in preparation for writing a "randomly permute test cases to
12212         try to break the loader" program.
12213
12214 2003-01-31  Havoc Pennington  <hp@pobox.com>
12215
12216         * doc/dbus-specification.sgml: work on the specification
12217
12218         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12219         the protocol version of the message.
12220
12221         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12222         no longer specifies that.
12223         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12224         1/2/3/4)
12225
12226         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12227         "break" for DBUS_TYPE_NIL, remove @todo
12228
12229 2003-01-31  Havoc Pennington  <hp@pobox.com>
12230
12231         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12232         just set_is_error/get_is_error as this is a commonly-used
12233         function, and write docs.
12234
12235 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12236
12237         * dbus/dbus-address.c: (dbus_address_entry_free):
12238         Free key and value lists.
12239
12240         * dbus/dbus-internals.c: (_dbus_type_to_string):
12241         Add the types we didn't have.
12242
12243         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12244         (_dbus_marshal_validate_arg):
12245         Add NIL types.
12246
12247         * dbus/dbus-message.c: (dbus_message_set_sender):
12248         Remove todo about being able to set sender to NULL.
12249
12250         (dbus_message_set_is_error_reply),
12251         (dbus_message_get_is_error_reply):
12252         * dbus/dbus-message.h:
12253         New functions.
12254
12255         * dbus/dbus-protocol.h:
12256         Add error reply flag.
12257
12258         * test/data/valid-messages/opposite-endian.message:
12259         Add NIL type to test.
12260
12261 2003-01-31  Havoc Pennington  <hp@pobox.com>
12262
12263         * doc/dbus-specification.sgml: fully specify the header.  Add
12264         flags and major protocol version, and change header/body len to
12265         unsigned.
12266
12267         * dbus/dbus-message-builder.c (append_saved_length): append length
12268         as uint32
12269
12270         * dbus/dbus-message.c (dbus_message_create_header): change header
12271         length and body length to unsigned. Add the new fields from the
12272         spec
12273         (_dbus_message_loader_return_buffer): unsigned header/body len
12274
12275 2003-01-30  Havoc Pennington  <hp@pobox.com>
12276
12277         * dbus/dbus-auth.c: rework to use only REJECTED, no
12278         MECHANISMS
12279
12280         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12281         use REJECTED, suggested by Mark McLoughlin
12282
12283 2003-01-30  Havoc Pennington  <hp@pobox.com>
12284
12285         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12286         a better way to report errors here. e.g.  "unix address lacks
12287         path" or something. also "no such file" when the path doesn't
12288         exist, etc.
12289
12290         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12291         leaking list nodes
12292         (dbus_parse_address): add @todo about documenting address format,
12293         and allowing , and ; to be escaped
12294
12295 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12296
12297         * dbus/Makefile.am:
12298         Add dbus-address.[ch]
12299
12300         * dbus/dbus-address.c: (dbus_address_entry_free),
12301         (dbus_address_entries_free), (create_entry),
12302         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12303         (dbus_parse_address), (_dbus_address_test):
12304         * dbus/dbus-address.h:
12305         New files for dealing with address parsing.
12306
12307         * dbus/dbus-connection.c:
12308         Document timeout functions.
12309
12310         * dbus/dbus-message.c:
12311         Document dbus_message_new_from_message.
12312
12313         * dbus/dbus-server-debug.c:
12314         Document.
12315
12316         * dbus/dbus-server.c: (dbus_server_listen):
12317         Parse address and use correct server implementation.
12318
12319         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12320         * dbus/dbus-string.h:
12321         New function with test.
12322
12323         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12324         * dbus/dbus-test.h:
12325         Add address tests.
12326
12327         * dbus/dbus-transport-debug.c:
12328         Document.
12329
12330         * dbus/dbus-transport.c: (_dbus_transport_open):
12331         Parse address and use correct transport implementation.
12332
12333 2003-01-30  Havoc Pennington  <hp@pobox.com>
12334
12335         * dbus/dbus-message.c: use message->byte_order instead of
12336         DBUS_COMPILER_BYTE_ORDER throughout.
12337         (dbus_message_create_header): pad header to align the
12338         start of the body of the message to 8-byte boundary
12339
12340         * dbus/dbus-marshal.h: make all the demarshalers take const
12341         DBusString arguments.
12342
12343         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12344         validate message args here, so we don't have to do slow validation
12345         later, and so we catch bad messages as they are incoming. Also add
12346         better checks on header_len and body_len. Also fill in
12347         message->byte_order
12348
12349         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12350         implemented properly)
12351         (_dbus_string_validate_nul): new function to check all-nul
12352
12353         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12354         get_arg_end_pos and remove all validation
12355         (_dbus_marshal_validate_arg): actually do validation here.
12356
12357 2003-01-29  Havoc Pennington  <hp@pobox.com>
12358
12359         * dbus/dbus-message.c (check_message_handling): fix assertion
12360         failure on set_client_serial
12361
12362 2003-01-28  Havoc Pennington  <hp@pobox.com>
12363
12364         * dbus/dbus-server-debug.c: Add doc section comments
12365
12366         * dbus/dbus-transport-debug.c: add doc section comments
12367
12368 2003-01-28  Havoc Pennington  <hp@redhat.com>
12369
12370         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12371         the reverse order from how I had it
12372         (_dbus_string_base64_encode): reverse encoding order. I was
12373         basically byteswapping everything during encoding.
12374
12375 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12376
12377         * dbus/dbus-connection-internal.h:
12378         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12379         (_dbus_connection_remove_timeout):
12380         Add functions for adding and removing timeouts.
12381
12382         * dbus/dbus-message.c: (dbus_message_new_from_message):
12383         Add new function that takes a message and creates an exact
12384         copy of it, but with the refcount set to 1.
12385         (check_message_handling):
12386         Fix build error.
12387
12388         * dbus/dbus-server-protected.h:
12389         * dbus/dbus-server.c: (_dbus_server_init_base),
12390         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12391         (dbus_server_set_timeout_functions):
12392         (_dbus_server_remove_timeout):
12393         New functions so that a server can add and remove timeouts.
12394
12395         (dbus_server_listen):
12396         Add commented out call to dbus_server_debug_new.
12397
12398         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12399         Actually set the handler, doh.
12400
12401         * dbus/dbus-transport.c: (_dbus_transport_open):
12402         Add commented out call to dbus_transport_debug_client_new.
12403
12404         * dbus/Makefile.am:
12405         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12406
12407 2003-01-28  Havoc Pennington  <hp@pobox.com>
12408
12409         * dbus/dbus-message.c (check_message_handling): function to check
12410         on the loaded message, iterates over it etc.
12411
12412 2003-01-28  Havoc Pennington  <hp@pobox.com>
12413
12414         * test/Makefile.am (dist-hook): fix make distdir
12415
12416         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12417
12418 2003-01-27  Havoc Pennington  <hp@pobox.com>
12419
12420         * dbus/dbus-mempool.c (time_for_size): replace printf with
12421         _dbus_verbose
12422
12423         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12424         empty lines; fix the SAVE_LENGTH stuff to be
12425         START_LENGTH/END_LENGTH so it actually works; couple other
12426         bugfixes
12427
12428         * test/Makefile.am (dist-hook): add dist-hook for .message files
12429
12430         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12431         can be constant or locked.
12432         (_dbus_string_free): allow freeing a const string as
12433         documented/intended
12434
12435         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12436
12437         * dbus/dbus-test-main.c (main): take an argument which is the
12438         directory containing test data
12439
12440         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12441         argument to this and load all the messages in test/data/
12442         checking that they can be loaded or not loaded as appropriate.
12443
12444 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12445
12446         * bus/dispatch.c: (bus_dispatch_message_handler):
12447         Dispatch messages sent to services.
12448
12449         * bus/driver.c: (bus_driver_send_service_deleted),
12450         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12451         (bus_driver_send_service_acquired):
12452         Add helper functions for sending service related messages.
12453
12454         (bus_driver_send_welcome_message):
12455         Send HELLO_REPLY instead of WELCOME.
12456
12457         (bus_driver_handle_list_services):
12458         Send LIST_SERVICES_REPLY instead of SERVICES.
12459
12460         (bus_driver_handle_own_service),
12461         (bus_driver_handle_service_exists):
12462         New message handlers.
12463
12464         (bus_driver_handle_message):
12465         Invoke new message handlers.
12466
12467         (bus_driver_remove_connection):
12468         Don't remove any services here since that's done automatically
12469         by bus_service_remove_owner now.
12470
12471         * bus/driver.h:
12472         New function signatures.
12473
12474         * bus/services.c: (bus_service_add_owner):
12475         Send ServiceAcquired message if we're the only primary owner.
12476
12477         (bus_service_remove_owner):
12478         Send ServiceAcquired/ServiceLost messages.
12479
12480         (bus_service_set_prohibit_replacement),
12481         (bus_service_get_prohibit_replacement):
12482         Functions for setting prohibit replacement.
12483
12484         (bus_service_has_owner):
12485         New function that checks if a connection is in the owner queue of
12486         a certain service.
12487
12488         * bus/services.h:
12489         Add new function signatures.
12490
12491         * dbus/dbus-list.c: (_dbus_list_test):
12492         Add tests for _dbus_list_remove_last and traversing the list backwards.
12493
12494         * dbus/dbus-list.h:
12495         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12496         go any further, so return NULL then.
12497
12498         * dbus/dbus-protocol.h:
12499         Add new messages, service flags and service replies.
12500
12501 2003-01-26  Havoc Pennington  <hp@pobox.com>
12502
12503         * dbus/dbus-message-builder.c: implement, completely untested.
12504
12505         * test/data/*: add data to be used in testing.
12506         ".message" files are our simple loadable text format.
12507         ".message-raw" will be binary dumps of messages.
12508
12509         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12510
12511 2003-01-26  Havoc Pennington  <hp@pobox.com>
12512
12513         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12514
12515         * dbus/dbus-errors.c (dbus_result_to_string): add
12516         file errors
12517
12518         * dbus/dbus-message-builder.c: new file, will contain code to load
12519         up messages from files. Not implemented yet.
12520
12521 2003-01-26  Havoc Pennington  <hp@pobox.com>
12522
12523         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12524         the sender by setting to NULL
12525
12526 2003-01-26  Havoc Pennington  <hp@pobox.com>
12527
12528         The unit tests pass, but otherwise untested.  If it breaks, the
12529         tests should have been better. ;-)
12530
12531         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12532         the connection.
12533
12534         * dbus/dbus-message.c: redo everything so we maintain
12535         message->header as the only copy of the various fields.
12536         This avoids the possibility of out-of-memory in some cases,
12537         for example dbus_message_lock() can't run out of memory anymore,
12538         and avoids extra copying. Figured I may as well go ahead and do
12539         this since it was busted for dbus_message_lock to not return
12540         failure on OOM, and dbus_message_write_header was totally
12541         unchecked for OOM. Also fixed some random other bugs.
12542
12543         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12544         that strings are nul-terminated. Also, end_pos can be equal
12545         to string length just not greater than, I think.
12546         (_dbus_marshal_set_int32): new function
12547         (_dbus_marshal_set_uint32): new function
12548         (_dbus_marshal_set_string): new function
12549
12550         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12551         a warning, init timeout_list to NULL
12552         (dbus_connection_send_message): don't use uninitialized variable
12553         "serial"
12554
12555         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12556
12557 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12558
12559         * bus/driver.c: (bus_driver_handle_hello),
12560         (bus_driver_send_welcome_message):
12561         Plug leaks
12562
12563 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12564
12565         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12566         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12567         (dbus_connection_unref):
12568         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12569         * dbus/dbus-message.c: (dbus_message_unref),
12570         Plug memory leaks.
12571
12572         (dbus_message_get_fields):
12573         Remove debugging printout.
12574
12575         (_dbus_message_loader_return_buffer):
12576         Don't store the header string.
12577
12578         (_dbus_message_test):
12579         Plug leaks.
12580
12581 2003-01-26  Richard Hult  <rhult@codefactory.se>
12582
12583         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12584         the file descriptor list, since it can change under us.
12585
12586 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12587
12588         * glib/dbus-gmain.c: (dbus_connection_prepare),
12589         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12590         (remove_watch), (dbus_connection_hookup_with_g_main):
12591         Rewrite the glib handling to use its own GSource instead of a
12592         GIOChannel so we can catch messages put in the queue while waiting
12593         for a reply.
12594
12595 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12596
12597         * bus/Makefile.am:
12598         * bus/connection.c: (connection_disconnect_handler),
12599         (connection_watch_callback), (bus_connection_setup):
12600         * bus/dispatch.c: (send_one_message),
12601         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12602         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12603         * bus/dispatch.h:
12604         * bus/driver.c: (bus_driver_send_service_deleted),
12605         (bus_driver_send_service_created), (bus_driver_handle_hello),
12606         (bus_driver_send_welcome_message),
12607         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12608         (bus_driver_handle_message):
12609         * bus/driver.h:
12610         Refactor code, put the message dispatching in its own file. Use
12611         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12612         is disconnected.
12613
12614 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12615
12616         * dbus/dbus-internals.h:
12617         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12618
12619         * dbus/dbus-message.c: (dbus_message_get_sender):
12620         * dbus/dbus-message.h:
12621         Implement dbus_message_get_sender.
12622
12623         * dbus/dbus-protocol.h:
12624         Add message and service defines.
12625
12626 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12627
12628         * dbus/dbus-connection.c: (dbus_connection_send_message):
12629         * dbus/dbus-message-internal.h:
12630         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12631         (dbus_message_write_header):
12632         Remove _dbus_messag_unlock and don't set the client serial on a
12633         message if one already exists.
12634
12635 2003-01-24  Havoc Pennington  <hp@pobox.com>
12636
12637         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12638         list_pool
12639
12640         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12641         on OOM
12642
12643 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12644
12645         * dbus/dbus-list.c: (alloc_link), (free_link):
12646         Use a memory pool for the links.
12647
12648 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12649
12650         * bus/connection.c: (bus_connection_foreach):
12651         * bus/connection.h:
12652         Add new bus_connection_foreach function.
12653
12654         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12655         Add function that broadcasts a message to all clients.
12656
12657         (bus_driver_send_service_created), (bus_driver_handle_hello),
12658         (bus_driver_send_welcome_message),
12659         (bus_driver_handle_list_services), (bus_driver_message_handler):
12660         Implement functions that take care of listing services, and notifying
12661         clients when new services are created.
12662
12663         * bus/services.c: (bus_services_list):
12664         * bus/services.h:
12665         Add new function that returns an array of strings with the currently
12666         registered services.
12667
12668         * glib/dbus-glib.h:
12669         * glib/dbus-gmain.c:
12670         Update copyright year.
12671
12672 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12673
12674         * dbus/dbus-connection.c: (dbus_connection_send_message):
12675         Unlock the message in case it was sent earlier.
12676
12677         (dbus_connection_send_message_with_reply_and_block):
12678         Remove the reply message from the list.
12679
12680         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12681         Set array_len and new_pos correctly.
12682
12683         (_dbus_marshal_test):
12684         Remove debug output.
12685
12686         * dbus/dbus-message-internal.h:
12687         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12688         New function that returns the reply serial.
12689
12690         (_dbus_message_unlock):
12691         New function that unlocks a message and resets its header.
12692
12693         (dbus_message_append_string_array),
12694         (dbus_message_get_fields_valist),
12695         (dbus_message_iter_get_field_type),
12696         (dbus_message_iter_get_string_array),
12697         (dbus_message_get_fields),
12698         (dbus_message_append_fields_valist):
12699         Handle string arrays.
12700
12701         (dbus_message_set_sender):
12702         Make this function public since the bus daemon needs it.
12703
12704         (decode_header_data):
12705         Set the reply serial to -1 initially.
12706
12707         * dbus/dbus-message.h:
12708         Add dbus_message_set_sender.
12709
12710 2003-01-24  Havoc Pennington  <hp@pobox.com>
12711
12712         * doc/dbus-specification.sgml: add some stuff
12713
12714 2003-01-22  Havoc Pennington  <hp@pobox.com>
12715
12716         * doc/dbus-specification.sgml: Start to document the protocol.
12717
12718 2003-01-22  Havoc Pennington  <hp@pobox.com>
12719
12720         * dbus/dbus-connection.c
12721         (dbus_connection_send_message_with_reply_and_block): add some @todo
12722
12723         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12724
12725 2003-01-21  Havoc Pennington  <hp@pobox.com>
12726
12727         (patch untested because can't compile)
12728
12729         * bus/driver.c (create_unique_client_name): make this function
12730         never recycle client names. Also, caller should initialize
12731         the DBusString.
12732
12733         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12734
12735 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12736
12737         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12738         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12739         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12740         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12741         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12742         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12743         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12744         * dbus/dbus-marshal.h:
12745         * dbus/dbus-protocol.h:
12746         Add support for marshalling and demarshalling integer, double
12747         and string arrays.
12748
12749 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12750
12751         * bus/Makefile.am:
12752         Add driver.[ch]
12753
12754         * bus/connection.c: (connection_disconnect_handler):
12755         Remove the connection from the bus driver's list.
12756
12757         (connection_watch_callback): Dispatch messages.
12758
12759         (free_connection_data): Free connection name.
12760
12761         (bus_connection_setup): Add connection to the bus driver's list.
12762         (bus_connection_remove_owned_service):
12763         (bus_connection_set_name), (bus_connection_get_name):
12764         Add functions for setting and getting the connection's name.
12765
12766         * bus/connection.h:
12767         Add function headers.
12768
12769         * bus/driver.c: (create_unique_client_name),
12770         (bus_driver_handle_hello_message),
12771         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12772         (bus_driver_add_connection), (bus_driver_remove_connection):
12773         * bus/driver.h:
12774         * bus/main.c:
12775         * bus/services.c: (bus_service_free):
12776         * bus/services.h:
12777         New file that handles communication and registreation with the bus
12778         itself.
12779
12780 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12781
12782         * dbus/dbus-connection.c: (dbus_connection_send_message):
12783         Add a new client_serial parameter.
12784
12785         (dbus_connection_send_message_with_reply):
12786         Remove a @todo since we've implemented the blocking function.
12787
12788         (dbus_connection_send_message_with_reply_and_block):
12789         New function that sends a message and waits for a reply and
12790         then returns the reply.
12791
12792         * dbus/dbus-connection.h:
12793         Add new functions.
12794
12795         * dbus/dbus-errors.c: (dbus_result_to_string):
12796         * dbus/dbus-errors.h:
12797         Add new DBUS_RESULT.
12798
12799         * dbus/dbus-message-internal.h:
12800         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12801         (_dbus_message_set_sender), (dbus_message_write_header),
12802         (dbus_message_new_reply), (decode_header_data),
12803         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12804         * dbus/dbus-message.h:
12805         Add new functions that set the reply serial and sender.
12806         Also marshal and demarshal them correctly and add test.
12807
12808         * dbus/dbus-protocol.h:
12809         Add new DBUS_MESSAGE_TYPE_SENDER.
12810
12811         * glib/dbus-glib.h:
12812         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12813         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12814         (dbus_connection_hookup_with_g_main):
12815         * glib/test-dbus-glib.c: (main):
12816         Rewrite to use GIOChannel and remove the GSource crack.
12817
12818         * test/echo-client.c: (main):
12819         * test/watch.c: (check_messages):
12820         Update for changed APIs
12821
12822 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12823
12824         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12825
12826         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12827         Create a DBusTimeoutList.
12828         (dbus_connection_set_timeout_functions): Add new function to
12829         set timeout callbacks
12830
12831         * dbus/dbus-connection.h: Add public DBusTimeout API.
12832
12833         * dbus/dbus-message.c: (dbus_message_get_service):
12834         * dbus/dbus-message.h:  New function.
12835
12836         * dbus/dbus-server.c: Fix small doc typo.
12837
12838         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12839
12840 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12841
12842         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12843         of the string, just as long as specified.
12844
12845 2003-01-19  Havoc Pennington  <hp@pobox.com>
12846
12847         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12848         new function
12849
12850         * dbus/dbus-server.c (dbus_server_set_max_connections)
12851         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12852         keep track of current number of connections, and add API for
12853         setting a max (but haven't implemented enforcing the max yet)
12854
12855 2003-01-18  Havoc Pennington  <hp@pobox.com>
12856
12857         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12858         reading/writing if read_watch != NULL or write_watch != NULL.
12859
12860         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12861         the message loader code to actually load message->header and
12862         message->body into the newly-created message.
12863
12864         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12865         in OOM case
12866
12867         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12868         (dbus_connection_get_max_message_size)
12869         (dbus_connection_set_max_live_messages_size)
12870         (dbus_connection_get_max_live_messages_size): implement some
12871         resource limitation functions
12872
12873         * dbus/dbus-resources.c: new file implementing some of the
12874         resource limits stuff
12875
12876         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12877         missing docs, add @todo to handle OOM etc.
12878
12879         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12880         docs
12881
12882 2003-01-18  Havoc Pennington  <hp@pobox.com>
12883
12884         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12885         connection if it hasn't been already.
12886
12887         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12888         replace with DisconnectFunction.
12889
12890 2003-01-18  Havoc Pennington  <hp@pobox.com>
12891
12892         Building --disable-verbose-mode --disable-asserts --disable-tests
12893         cuts the library from 112K to 45K or so
12894
12895         * configure.in: check for varargs macro support,
12896         add --enable-verbose-mode, --enable-asserts.
12897
12898         * dbus/dbus-internals.h (_dbus_assert): support
12899         DBUS_DISABLE_ASSERT
12900         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12901
12902 2003-01-18  Havoc Pennington  <hp@pobox.com>
12903
12904         * dbus/dbus-test.c: include config.h so that tests actually run
12905
12906         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12907         so the failure mode when that assumption fails will be plenty
12908         obvious.
12909
12910 2003-01-18  Havoc Pennington  <hp@pobox.com>
12911
12912         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12913
12914         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12915         the distribution
12916
12917         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12918         since we don't want to use those in make check
12919
12920 2003-01-15  Havoc Pennington  <hp@redhat.com>
12921
12922         Release 0.2
12923
12924         * NEWS: update
12925
12926 2003-01-15  Havoc Pennington  <hp@redhat.com>
12927
12928         * test/Makefile.am: fix so that test source code ends up in the
12929         distribution on make distcheck
12930
12931 2003-01-15  Havoc Pennington  <hp@redhat.com>
12932
12933         Release 0.1.
12934
12935         * NEWS: update
12936
12937 2003-01-15  Havoc Pennington  <hp@redhat.com>
12938
12939         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12940         fix build when --disable-tests
12941
12942         * Makefile.am (EXTRA_DIST): put HACKING in here
12943
12944         * HACKING: document procedure for making a tarball release.
12945
12946 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12947
12948         * bus/connection.c: (connection_error_handler),
12949         (bus_connection_setup):
12950         * bus/main.c: (main):
12951         Make sure that the DBusConnectionData struct is NULLed
12952         out to prevent a segfault.
12953
12954         * dbus/dbus-errors.c: (dbus_result_to_string):
12955         * dbus/dbus-errors.h:
12956         * dbus/dbus-message.c: (dbus_message_get_fields),
12957         (dbus_message_get_fields_valist), (_dbus_message_test):
12958         * dbus/dbus-message.h:
12959         Make dbus_message_get_fields return a result code so we can
12960         track invalid fields as well as oom.
12961
12962 2003-01-11  Havoc Pennington  <hp@pobox.com>
12963
12964         * configure.in: change --enable-test/--enable-ansi action-if-given
12965         to enable_foo=$enableval instead of enable_foo=yes
12966
12967 2003-01-08  Havoc Pennington  <hp@pobox.com>
12968
12969         * dbus/dbus-string.c (_dbus_string_align_length): new function
12970
12971         * dbus/dbus-test-main.c: move main() for test app here
12972         * dbus/dbus-test.c
12973         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12974         symbol to run tests, because dbus-test isn't in the main
12975         library
12976
12977         Code review nitpicks.
12978
12979         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12980         for people with narrow emacs ;-). Assert client_serial was filled
12981         in. Assert message->name != NULL.
12982         (dbus_message_append_fields): have "first_field_type" arg separate
12983         from va list, needed for C++ binding that also uses varargs IIRC
12984         and helps with type safety
12985         (dbus_message_new): add @todo about using DBusString to store
12986         service/name internally
12987         (dbus_message_new): don't leak ->service and ->name on OOM later
12988         in the function
12989         (dbus_message_unref): free the service name
12990         (dbus_message_get_fields): same change to varargs
12991         i.e. first_field_type
12992         (_dbus_message_loader_return_buffer): assert that the message data
12993         is aligned (if not it's a bug in our code). Put in verbose griping
12994         about why we set corrupted = TRUE.
12995         (decode_header_data): add FIXME that char* is evil.  Was going to
12996         add FIXME about evil locale-specific string.h strncmp, but just
12997         switched to wacky string-as-uint32 optimization. Move check for
12998         "no room for field name" above get_const_data_len() to avoid
12999         assertion failure in get_const_data_len if we have trailing 2
13000         bytes or the like. Check for service and name fields being
13001         provided twice. Don't leak service/name on error. Require field
13002         names to be aligned to 4 bytes.
13003
13004         * dbus/dbus-marshal.c: move byte swap stuff to header
13005         (_dbus_pack_int32): uscore-prefix
13006         (_dbus_unpack_int32): uscore-prefix
13007         (_dbus_unpack_uint32): export
13008         (_dbus_demarshal_string): add @todo complaining about use of
13009         memcpy()
13010         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13011         handling allowing corrupt data to go unchecked
13012
13013 2003-01-08  Havoc Pennington  <hp@redhat.com>
13014
13015         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13016         to the select() as needed for authentication. (should be using
13017         _dbus_poll() not select, but for another day)
13018
13019         * dbus/dbus.h: include dbus/dbus-protocol.h
13020
13021 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13022
13023         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13024         dbus-connection.h
13025
13026 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13027
13028         * dbus/dbus-internals.c: (_dbus_type_to_string):
13029         New function that returns a string describing a type.
13030
13031         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13032         * dbus/dbus-marshal.h:
13033         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13034         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13035         (dbus_message_iter_get_byte_array):
13036         * dbus/dbus-message.h:
13037         Add new convenience functions for appending and getting message fields.
13038         Also add demarshalling routines for byte arrays.
13039
13040 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13041
13042         * dbus/dbus-connection-internal.h:
13043         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13044         (_dbus_connection_get_next_client_serial),
13045         (dbus_connection_send_message):
13046         * dbus/dbus-internals.h:
13047         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13048         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13049         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13050         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13051         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13052         (_dbus_verbose_bytes), (_dbus_marshal_test):
13053         * dbus/dbus-marshal.h:
13054         * dbus/dbus-message-internal.h:
13055         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13056         (dbus_message_write_header), (_dbus_message_lock),
13057         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13058         (dbus_message_get_name), (dbus_message_append_int32),
13059         (dbus_message_append_uint32), (dbus_message_append_double),
13060         (dbus_message_append_string), (dbus_message_append_byte_array),
13061         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13062         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13063         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13064         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13065         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13066         (decode_header_data), (_dbus_message_loader_return_buffer),
13067         (message_iter_test), (_dbus_message_test):
13068         * dbus/dbus-message.h:
13069         * dbus/dbus-protocol.h:
13070         * dbus/dbus-test.c: (main):
13071         * dbus/dbus-test.h:
13072         * glib/test-dbus-glib.c: (message_handler), (main):
13073         * test/echo-client.c: (main):
13074         * test/watch.c: (check_messages):
13075         Make messages sendable and receivable for real.
13076
13077 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13078
13079         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13080         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13081         * dbus/dbus-message.c: (dbus_message_append_int32),
13082         (dbus_message_append_uint32), (dbus_message_append_double),
13083         (dbus_message_append_string), (dbus_message_append_byte_array):
13084         Handle OOM restoration.
13085
13086 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13087
13088         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13089         (_dbus_demarshal_string), (_dbus_marshal_test):
13090         * dbus/dbus-marshal.h:
13091         * dbus/dbus-message.c: (dbus_message_get_name),
13092         Document these functions.
13093
13094         (dbus_message_append_int32), (dbus_message_append_uint32),
13095         (dbus_message_append_double), (dbus_message_append_string),
13096         (dbus_message_append_byte_array):
13097         * dbus/dbus-message.h:
13098         Add functions for adding message fields of different types.
13099
13100         * dbus/dbus-protocol.h:
13101         Add the different types.
13102
13103 2003-01-05  Havoc Pennington  <hp@pobox.com>
13104
13105         * bus/connection.c: implement routines for handling connections,
13106         first thing is keeping a list of owned services on each connection
13107         and setting up watches etc.
13108
13109         * bus/services.c: implement a mapping from service names to lists
13110         of connections
13111
13112         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13113
13114         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13115         to use static mutexes for global data
13116
13117         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13118         collection of functions to set/get application-specific data
13119         on the DBusConnection.
13120
13121 2003-01-04  Havoc Pennington  <hp@pobox.com>
13122
13123         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13124         (_dbus_poll): new function
13125
13126         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13127         copied from GLib
13128
13129         * bus/loop.c: initial code for the daemon main loop
13130
13131 2003-01-04  Havoc Pennington  <hp@pobox.com>
13132
13133         * test/watch.c (error_handler): make it safe if the error handler
13134         is called multiple times (if we s/error handler/disconnect
13135         handler/ we should just guarantee it's called only once)
13136
13137         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13138         error handler on disconnect (it's quite possible we should
13139         just change the error handler to a "disconnect handler," I'm
13140         not sure we have any other meaningful errors)
13141
13142         * configure.in: check for getpwnam_r
13143
13144         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13145         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13146         mechanism as in SASL spec, using socket credentials
13147
13148         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13149         (_dbus_send_credentials_unix_socket): new function
13150
13151         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13152         dbus_accept()
13153         (_dbus_write): only check errno if <0 returned
13154         (_dbus_write_two): ditto
13155
13156 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13157
13158         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13159         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13160         (_dbus_marshal_test):
13161         * dbus/dbus-marshal.h:
13162         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13163         to _dbus_marshal_utf8_string. Also fix some tests.
13164
13165 2002-12-28  Harri Porten  <porten@kde.org>
13166
13167         * configure.in: added check for C++ compiler and a very cheesy
13168         check for the Qt integration
13169
13170         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13171
13172         * qt/Makefile.am: added
13173
13174         * qt/.cvsignore: added
13175
13176         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13177         latter, added #ifdef QT_THREAD_SUPPORT guard.
13178
13179         * dbus/Makefile.am: added missing headers for make dist
13180
13181 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13182
13183         * dbus/Makefile.am: fixup export-symbols-regex.
13184
13185 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13186
13187         * acinclude.m4: Add this file and put the
13188         PKG_CHECK_MODULE macro in it.
13189
13190 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13191
13192         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13193         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13194         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13195         (_dbus_marshal_test):
13196         Make the demarshalling routines align the pos argument.
13197         Add string marshalling tests and fix the obvious bugs
13198         discovered.
13199
13200 2002-12-26  Havoc Pennington  <hp@pobox.com>
13201
13202         * dbus/dbus-auth.c: fixes fixes fixes
13203
13204         * dbus/dbus-transport-unix.c: wire up support for
13205         encoding/decoding data on the wire
13206
13207         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13208         (_dbus_auth_decode_data): append to target string
13209         instead of nuking it.
13210
13211 2002-12-26  Havoc Pennington  <hp@pobox.com>
13212
13213         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13214         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13215         doh
13216
13217         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13218         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13219         now). Main point is because I wanted unpack_uint32 to implement
13220         _dbus_verbose_bytes
13221         (_dbus_verbose_bytes): new function
13222
13223         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13224
13225         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13226         mechanism to handle a corrupt message stream
13227         (_dbus_message_loader_new): fix preallocation to only prealloc,
13228         not prelengthen
13229
13230         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13231         (_dbus_string_test): enhance tests for copy/move and fix the
13232         functions
13233
13234         * dbus/dbus-transport-unix.c: Hold references in more places to
13235         avoid reentrancy problems
13236
13237         * dbus/dbus-transport.c: ditto
13238
13239         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13240         leak reference count in no-message case
13241
13242         * test/watch.c (do_mainloop): handle adding/removing watches
13243         during iteration over the watches. Also, ref the connection/server
13244         stored on a watch, so we don't try to mangle a destroyed one.
13245
13246         * dbus/dbus-transport-unix.c (do_authentication): perform
13247         authentication
13248
13249         * dbus/dbus-auth.c (get_state): add a state
13250         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13251         (_dbus_auth_get_unused_bytes): append the unused bytes
13252         to the passed in string, rather than prepend
13253
13254         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13255         the auth conversation DBusAuth
13256
13257         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13258         (_dbus_transport_new_for_domain_socket): when creating a
13259         transport, pass in whether it's a client-side or server-side
13260         transport so we know which DBusAuth to create
13261
13262 2002-12-03  Havoc Pennington  <hp@pobox.com>
13263
13264         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13265         _after_ finalizing the derived members
13266         (unix_connection_set): unref watch if we fail to add it
13267
13268         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13269         transport first, so that the connection owned by the
13270         transport will be valid as the transport finalizes.
13271
13272         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13273         if necessary, and remove watches from the connection.
13274
13275         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13276
13277 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13278
13279         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13280         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13281         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13282         (_dbus_marshal_test):
13283         * dbus/dbus-marshal.h:
13284         Add string marshal functions and have the demarshal functions
13285         return the new position.
13286
13287 2002-12-25  Havoc Pennington  <hp@pobox.com>
13288
13289         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13290         it is a simple protocol that just maps directly to SASL.
13291
13292         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13293         initial implementation, not actually used yet.
13294
13295         * dbus/dbus-string.c (_dbus_string_find): new function
13296         (_dbus_string_equal): new function
13297         (_dbus_string_base64_encode): new function
13298         (_dbus_string_base64_decode): new function
13299
13300 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13301
13302         * dbus/Makefile.am:
13303         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13304         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13305         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13306         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13307         * dbus/dbus-marshal.h:
13308         * dbus/dbus-protocol.h:
13309         * dbus/dbus-test.c: (main):
13310         * dbus/dbus-test.h:
13311         Add un-optimized marshalling/demarshalling routines.
13312
13313 2002-12-25  Harri Porten  <porten@kde.org>
13314
13315         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13316
13317 2002-12-24  Zack Rusin  <zack@kde.org>
13318
13319         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13320         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13321         main loop stuff
13322
13323 2002-12-24  Havoc Pennington  <hp@pobox.com>
13324
13325         * glib/dbus-gthread.c: fix include
13326
13327         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13328         I think glib API needs to change, though, as you don't
13329         want to use DBusMessageFunction, you want to use the
13330         DBusMessageHandler object. Probably
13331         dbus_connection_open_with_g_main_loop()
13332         and dbus_connection_setup_g_main_loop() or something like that
13333         (but think of better names...) that just create a connection
13334         that has watch/timeout functions etc. already set up.
13335
13336         * dbus/dbus-connection.c
13337         (dbus_connection_send_message_with_reply): new function just to
13338         show how the message handler helps us deal with replies.
13339
13340         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13341
13342         * dbus/dbus-string.c (_dbus_string_test): free a string that
13343         wasn't
13344
13345         * dbus/dbus-hash.c: use memory pools for the hash entries
13346         (rebuild_table): be more paranoid about overflow, and
13347         shrink table when we can
13348         (_dbus_hash_test): reduce number of sprintfs and write
13349         valid C89. Add tests for case where we grow and then
13350         shrink the hash table.
13351
13352         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13353
13354         * dbus/dbus-connection.c (dbus_connection_register_handler)
13355         (dbus_connection_unregister_handler): new functions
13356
13357         * dbus/dbus-message.c (dbus_message_get_name): new
13358
13359         * dbus/dbus-list.c: fix docs typo
13360
13361         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13362         an object representing a handler for messages.
13363
13364 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13365
13366         * glib/dbus-glib.h:
13367         * glib/dbus-gthread.c: (dbus_gthread_init):
13368         Don't use the gdbus prefix for public functions.
13369
13370 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13371
13372         * Makefile.am:
13373         * configure.in:
13374         Add GLib checks and fixup .pc files
13375
13376         * glib/Makefile.am:
13377         * glib/dbus-glib.h:
13378         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13379         (gdbus_connection_check), (gdbus_connection_dispatch),
13380         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13381         (dbus_connection_gsource_new):
13382         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13383         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13384         * glib/test-dbus-glib.c: (message_handler), (main):
13385         Add GLib support.
13386
13387 2002-12-15  Harri Porten  <porten@kde.org>
13388
13389         * autogen.sh: check for libtoolize before attempting to use it
13390
13391         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13392         struct.
13393
13394         * .cvsignore: ignore more stamp files
13395
13396         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13397
13398         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13399         without make install.
13400
13401 2002-12-15  Havoc Pennington  <hp@pobox.com>
13402
13403         * dbus/dbus-threads.c: add thread stubs that a higher library
13404         layer can fill in. e.g. the GLib wrapper might fill them in with
13405         GThread stuff. We still need to use this thread API to
13406         thread-safe-ize the library.
13407
13408 2002-12-12  Havoc Pennington  <hp@pobox.com>
13409
13410         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13411         below new interfaces and include fewer system headers.
13412
13413         * dbus/dbus-sysdeps.c (_dbus_read): new function
13414         (_dbus_write): new function
13415         (_dbus_write_two): new function
13416         (_dbus_connect_unix_socket): new function
13417         (_dbus_listen_unix_socket): new function
13418
13419         * dbus/dbus-message-internal.h: change interfaces to use
13420         DBusString
13421
13422 2002-12-11  Havoc Pennington  <hp@pobox.com>
13423
13424         * dbus/dbus-types.h: add dbus_unichar
13425
13426         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13427
13428         * dbus/dbus-connection.c (dbus_connection_send_message): return
13429         TRUE on success
13430
13431         * dbus/dbus-transport.c: include dbus-watch.h
13432
13433         * dbus/dbus-connection.c: include dbus-message-internal.h
13434
13435         * HACKING: add file with coding guidelines stuff.
13436
13437         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13438         handling here, for security purposes (as in vsftpd). Not actually
13439         using this class yet.
13440
13441         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13442         system/libc usage here, as in vsftpd, for ease of auditing (and
13443         should also simplify portability). Haven't actually moved all the
13444         system/libc usage into here yet.
13445
13446 2002-11-25  Havoc Pennington  <hp@pobox.com>
13447
13448         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13449         always print the first verbose message.
13450
13451 2002-11-24  Havoc Pennington  <hp@pobox.com>
13452
13453         * test/echo-client.c, test/echo-server.c: cheesy test
13454         clients.
13455
13456         * configure.in (AC_CHECK_FUNCS): check for writev
13457
13458         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13459         function
13460
13461         * dbus/dbus-list.c (_dbus_list_foreach): new function
13462
13463         * dbus/dbus-internals.c (_dbus_verbose): new function
13464
13465         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13466         representing a server that listens for connections.
13467
13468         * dbus/.cvsignore: create
13469
13470         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13471         public API for reporting errors
13472
13473         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13474         public object representing a connection that
13475         sends/receives messages. (Same object used for
13476         both client and server.)
13477
13478         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13479         Basic abstraction for different kinds of stream
13480         that we might read/write messages from.
13481
13482 2002-11-23  Havoc Pennington  <hp@pobox.com>
13483
13484         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13485         _DBUS_INT_MAX
13486
13487         * dbus/dbus-test.c (main): add list test, and include
13488         dbus-test.h as intended
13489
13490         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13491         (_dbus_hash_table_remove_int): return value indicates
13492         whether the entry existed to remove
13493
13494         * dbus/dbus-list.c: add linked list utility class,
13495         with docs and tests
13496
13497         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13498         array sometimes.
13499
13500 2002-11-23  Havoc Pennington  <hp@pobox.com>
13501
13502         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13503         DBUS_END_DECLS to nothing, that should fix this once and for all
13504
13505         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13506
13507         * dbus/dbus-message.c, dbus/dbus-hash.c:
13508         add some missing @brief
13509
13510 2002-11-23  Havoc Pennington  <hp@pobox.com>
13511
13512         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13513         to avoid confusing Doxygen
13514
13515         * dbus/dbus-hash.c: @} not }@
13516
13517         * dbus/dbus-message.c (struct DBusMessage): split out
13518         internals docs
13519
13520 2002-11-23  Havoc Pennington  <hp@pobox.com>
13521
13522         * configure.in: pile on more warning flags if using gcc
13523
13524         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13525         to document static functions
13526
13527         * configure.in: add summary to end of configure so it
13528         looks nice and attractive
13529
13530         * dbus/dbus-hash.c: finish implementation and write unit
13531         tests and docs
13532
13533         * configure.in: add --enable-tests to enable unit tests
13534
13535         * dbus/dbus-test.c: test program to run unit tests
13536         for all files in dbus/*, initially runs a test for
13537         dbus-hash.c
13538
13539         * dbus/dbus-internals.h: file to hold some internal utility stuff
13540
13541 2002-11-22  Havoc Pennington  <hp@redhat.com>
13542
13543         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13544         "ported" away from Tcl
13545
13546         * dbus/dbus-types.h: header for types such as dbus_bool_t
13547
13548 2002-11-22  Havoc Pennington  <hp@redhat.com>
13549
13550         * dbus/dbus.h: fixups for doc warnings
13551
13552         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13553         macros
13554         (QUIET): make it quiet so we can see warnings
13555
13556         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13557
13558 2002-11-22  Havoc Pennington  <hp@redhat.com>
13559
13560         * Makefile.am: include "Doxyfile" target in all-local
13561
13562         * configure.in: generate the Doxyfile
13563
13564         * Doxyfile.in: move Doxyfile here, so we can use
13565         configure to generate a Doxyfile with the right
13566         version number etc.
13567
13568 2002-11-22  Havoc Pennington  <hp@redhat.com>
13569
13570         * dbus/dbus-message.c: move inline docs into .c file
13571
13572         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13573         so all docs are under doc/
13574         (MAN_EXTENSION): generate man pages. Use extension
13575         ".3dbus" which matches ".3qt" on my system,
13576         I guess this is OK, I don't know really.
13577         (FILE_PATTERNS): look for .c files not .h, makes sense
13578         for plain C I think
13579
13580 2002-11-22  Havoc Pennington  <hp@pobox.com>
13581
13582         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13583         because any app can be a server, and any app can be a client,
13584         the bus is a special kind of server.
13585
13586 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13587
13588         * Doxyfile : adding. Still needs Makefile rules to be generated
13589         automatically (just run "doxygen" in the toplevel dir for now to
13590         generate docs)
13591
13592         * dbus/dbus-message.h : Adding sample docs (javadoc since
13593         resembles gtk-doc a little more)
13594
13595         * dbus/dbus.h : Adding sample docs
13596
13597 2002-11-21  Havoc Pennington  <hp@redhat.com>
13598
13599         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13600         so we can allow ourselves to include files directly,
13601         instead of having to use dbus.h
13602
13603         * dbus/dbus.h: fill in
13604
13605         * dbus/dbus-message.h: sketch out a sample header file.
13606         Include griping if you include it directly instead of
13607         via dbus.h
13608
13609         * dbus/dbus-macros.h: new file with macros for extern "C",
13610         TRUE/FALSE, NULL, etc.
13611
13612         * doc/file-boilerplate.c: put include guards in here
13613
13614 2002-11-21  Havoc Pennington  <hp@redhat.com>
13615
13616         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13617
13618         * COPYING: include the GPL as well, and license code
13619         under both AFL and GPL.
13620
13621 2002-11-21  Havoc Pennington  <hp@redhat.com>
13622
13623         * acconfig.h: get rid of this
13624
13625         * autogen.sh (run_configure): add --no-configure option
13626
13627         * configure.in: remove AC_ARG_PROGRAM to make
13628         autoconf complain less. add AC_PREREQ.
13629         add AC_DEFINE third arg.
13630
13631 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13632
13633         * doc/Makefile.am:
13634         Fix references so we can distcheck.
13635
13636 2002-11-21  Havoc Pennington  <hp@redhat.com>
13637
13638         * Initial module creation
13639