* Released 0.62
[platform/upstream/dbus.git] / ChangeLog
1 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
2
3         * Released 0.62
4
5 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
6
7         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
8         break pedantic builds. Closes bug 6043 (patch approved by
9         Havoc back in February).
10
11 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
12
13         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
14         that took a QDBusMessage parameter.
15         * qt/src/qdbusbus.h: Add a default flag for RequestName.
16         * qt/tools/dbus.cpp: Don't use automatic call because we might
17         be calling an async method: request a reply.
18
19 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
20
21         * test/qt/*: Update the testcases, including testing the new
22         functionality of sending null QByteArray and QString over the
23         bus. Add new headertest test and restore the old
24         qdbusxmlparser test.
25
26 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
27
28         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
29         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
30
31         * qt/examples/Makefile.am:
32         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
33         form.
34
35         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
36         QByteArray() (nulls) over the bus.
37         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
38         the one that has the signature suffix stripped.
39         * qt/src/qdbusreply.h: Make some methods const.
40
41 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
42
43         Patch from Timo Hoenig <thoenig@suse.de>.
44
45         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
46         required during build to EXTRA_DIST.
47         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
48         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
49         * configure.in: Fix "make dist", take care that the Makefile for
50         qt/dbus is being generated.
51
52 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
53
54         * bus/bus.c: Fix eavesdropping on method calls
55
56 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
57
58         * configure.in:
59         * dbus/dbus-userdb-util.c:
60         Add Solaris console owner patch from Artem Kachitchkine
61
62 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
63
64         * qt/Makfile.am:
65         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
66         reorganisation. Thanks to Timo Hoenig for pointing this out.
67
68 2006-06-06  Robert McQueen  <robot101@debian.org>
69
70         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
71           call to dbus_g_type_get_struct.
72
73 2006-06-06  Robert McQueen  <robot101@debian.org>
74
75         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
76           pointers were put into a GPtrArray-based specialised collection, and
77           then freed along with the array. GValues which you add into
78           collections or maps which have the NOCOPY flag set are assumed to not
79           belong to the caller, so rather than the existing pointer-stealing
80           semantics, they are copied instead. Given that the main consumers of
81           this abstraction are the bindings themselves, I don't think this is
82           too bad, but others should watch their choice of take vs set_static.
83
84 2006-06-06  Robert McQueen  <robot101@debian.org>
85
86         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
87           of g_slist_prepend not being used. Fixed copying of slist-based
88           specialised collections, then wrote a test case and found that it was
89           all broken. Went on to fix iterating and appending too. Good thing
90           nobody uses this code yet.
91
92 2006-06-06  Robert McQueen  <robot101@debian.org>
93
94         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
95           the iterators use gvalue_take_ptrarray_value (the GValues themselves
96           are discarded without unsetting, so it makes no difference whether
97           we take or set_static). Remove cases for G_TYPE_POINTER because
98           there really is nothing useful we can do with them in our
99           specialised types - we *need* boxed copy/free functions at the very
100           least.
101
102 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
103
104         * qt/dbus: Add directory. I had forgotten to add this
105         yesterday after the move...
106
107         * qt/examples/Makefile.am:
108         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
109
110         * qt/tools/Makefile.am:
111         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
112         Added feature to get and set properties.
113         Added validation of service, object path and interface names.
114
115         * qt/tools/dbusidl2cpp.cpp: Two new features:
116         1) Allow specifying both the header and the source file names,
117         by separating them with a colon.
118         2) Don't write an interface output if the -p switch wasn't
119         given, but the -a was.
120
121         * qt/src/*: Fix usage of Iterators and ConstIterators.
122         Fix shadowing of variables by other variables (-Wshadow).
123         Fix keyword-cleanliness in headers.
124         Fix ASCII-cast (QLatin1String, QLatin1Char).
125         Fix validation of member names.
126         Add extra checking of introspection data during XML parsing.
127         Various bug fixes.
128
129 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
130
131         * dbus/Makefile.am:
132         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
133         qt/dbus/qdbus.h now.
134
135 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
136
137         * configure.in: Make --disable-qt actually do
138           something. Patch inspired by Zack Rusin.
139
140 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
141
142         * qt/: Update to Subversion r548032.
143         This includes a big reorganisation of the files inside the
144         subdir.
145
146 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
147
148         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
149         clear:  
150         "Failed to connect to socket <host>:<port> <error>" instead of
151         "Failed to connect to socket <host>: <error>:<port>"
152
153         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
154         for a tcp transport. 
155
156 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
157
158         * qt/*: Update the QtDBus bindings up to revision 546310 in
159         Subversion.
160         This adds the dbuscpp2xml tool, that parses a C++ header and
161         outputs a D-BUS Introspection XML.
162
163 2006-05-21  Havoc Pennington  <hp@redhat.com>
164
165         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
166         is not NULL when it shouldn't be. Also a couple of possible fixes
167         for #4637 though I don't understand why the bug happens, to be
168         honest... also the object constructor has an assert name != NULL
169         and the name is only currently NULL for peer-to-peer proxies that 
170         I don't think anyone uses? So it should be asserting.
171         Anyway, for now at least see if we get an earlier assertion failure.
172
173         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
174         apparently broken code to be sure the tests fail and someone 
175         will fix them...
176
177 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
178
179         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
180         and arrays when they had a single element: has_next returns
181         false, even before you read the element. So, instead, check
182         the array length.
183
184 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
185
186         * qt/qdbusmessage.cpp:
187         * qt/qdbustypehelper_p.h:
188         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
189         the list is a const-reference
190
191 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
192
193         * Adding old doc patch that never got applied
194         
195         * dbus/bus.c (dbus_bus_add_match): Add documentation
196
197         * doc/dbus-specification.xml: Add documentation for the match rules
198           and the AddMatch and RemoveMatch methods
199
200 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
201
202         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
203         call (r535506)
204
205         * qt/dbusidl2cpp.cpp:
206         * qt/qdbusabstractadaptor.cpp:
207         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
208         sibling of the QDBusAbstractAdaptor objects instead of the
209         parent. (r535848)
210
211         * qt/dbusidl2cpp.cpp:
212         * qt/qdbusabstractinterface.cpp:
213         * qt/qdbusabstractinterface.h:
214         * qt/qdbusabstractinterface_p.h:
215         * qt/qdbusinterface.cpp: Make properties in interfaces
216         actually work. The code that was generated would not compile,
217         due to moc calls to functions that did not exist. They now
218         shall. (r536571)
219
220 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
221
222         * Makefile.am:
223         * configure.in:
224         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
225         Thanks to Brad Hards for providing the patch
226
227 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
228
229         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
230         call. (r535506)
231
232 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
233
234         * qt/examples/dbus.cpp: Enhance error messages and use
235         QDBusInterfacePtr.
236
237 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
238
239         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
240         and disable the copy operators. (r533772, r534746)
241
242         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
243
244         * qt/qdbusabstractinterface.cpp:
245         * qt/qdbusabstractinterface.h: Change the default call mode to
246         not use the event loop. Add convenience call() methods that
247         take a CallMode parameter. (r534042)
248
249         * qt/qdbusconnection.h: Change the default call mode to not
250         use the event loop. (r534042)
251
252         * qt/qdbusinterface.cpp:
253         * qt/qdbusinterface.h: Add a method to tell us if the
254         interface is valid (since we don't return a null pointer
255         anymore) (r534099)
256
257         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
258         (r534101)
259
260         * qt/qdbusinternalfilters.cpp: Decouple the introspection
261         function in two so taht we get the chance to introspect
262         without having a QDBusMessage (r534102)
263
264         * qt/qdbusbus.h:
265         * qt/qdbusconnection.cpp:
266         * qt/qdbusconnection_p.h:
267         * qt/qdbusintegrator.cpp: Keep a list of our own names to
268         avoid a round-trip to the server when attempting to introspect
269         one of our own objects. Also make sure the filter functions
270         match the empty interface as well. (r534108)
271         Don't keep the connection names. Instead, trust the unique
272         connection name (r534111)
273         Remove event loop usage (r534112)
274
275 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
276
277         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
278         Brad Hards.
279
280 2006-04-28  Robert McQueen  <robot101@debian.org>
281
282         * glib/dbus-gproxy.c: Fix properties so that they can be given in
283         any order, making it easier for people who inherit from this
284         object.
285
286 2006-04-28  Robert McQueen  <robot101@debian.org>
287
288         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
289         of memory from within pointer arrays and lists. Fixes bug #6300.
290
291 2006-04-28  Robert McQueen  <robot101@debian.org>
292
293         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
294         generating struct signatures. Fixes bug #6083.
295
296 2006-04-28  Robert McQueen  <robot101@debian.org>
297
298         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
299         to qdbusconnection_p.moc.
300
301 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
302
303         * README, INSTALL: Doc fixes
304         Patch from Brad Hards <bradh at frogmouth.net>
305
306 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
307
308         * qt/examples/dbus.cpp: Use the new merged-interface mode for
309         the dynamic meta object. No need to guess which interface to
310         call.
311
312 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
313
314         * qt/qdbusconnection_p.h:
315         * qt/qdbusmetaobject.cpp:
316         * qt/qdbusmetaobject_p.h:
317         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
318         for the dynamic meta object. No need to guess which
319         interface to call.
320         * qt/qdbusabstractinterface_p.h:
321         * qt/qdbusconnection.cpp:
322         * qt/qdbusintegrator.cpp:
323         * qt/qdbusinterface.cpp:
324         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
325         Add a QDBusRef that looks and behaves like DCOPRef.
326
327 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
328
329         * dbus/dbus-connection.c: Interfaces are optional in method
330         calls, so don't give up if the interface parameter is NULL.
331         Patch reviewed by Havoc Pennington.
332
333 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
334
335         * qt/qdbusreply.h: Add default constructor and operator=
336           (r532625)
337         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
338           in public headers (r532952)
339         * qt/qdbusabstractinterface.cpp:
340         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
341           make it the default (r532951)
342
343 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
344
345         * dbus/dbus-connection.c: Fix asserts
346         Patch from Tim Moloney <t.moloney at verizon.net>
347
348 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
349
350         * mono/Connection.cs, mono/Message.cs: Check Target type
351         Patch from Aaron Bockover (abockover at novell.com)
352
353 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
354
355         * INSTALL: fine-tune the requirements for the Qt4 binding.
356
357 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
358
359         * tools/dbus-print-message.c: Added support for printing of all 
360           remaining data types. Fixed logic for indentation of compound
361           data types.
362         
363 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
364
365         * INSTALL: fill out content of file providing DBus specific
366           build installations, followed by generic Auto* INSTALL file
367           content
368         
369 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
370
371         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
372           Patch by Stefan Eilers. (r529537)
373
374 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
375
376         * qt/qdbusinternalfilters.cpp: Don't show the parent's
377           contents (r528208)
378
379 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
380
381         * qt/Makefile.am: fix the dependency for
382           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
383           not in qdbusconnection.cpp.
384           Thanks to Jakub Stachowski <stachowski@hypair.net> for
385           spotting this.
386
387 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
388
389         * qt/examples/listnames.cpp:
390         * qt/examples/Makefile.am: Three ways to list the names on the
391           bus.
392
393 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
394
395         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
396           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
397
398 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
399
400         Merge from Subversion:
401         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
402           something that exists (r526315)
403         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
404           slots/signals (r526316)
405         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
406           also return an unknown-method error if the parameters don't
407           match for org.freedesktop.DBus.Properties. (r526842)
408         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
409         * qt/qdbusintegrator.cpp: Restore the proper order of
410           delivery: don't make method returns be delivered on priority
411           (r528150)
412
413 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
414
415         * configure.in qt/Makefile.am: add qt/examples
416         * qt/examples: Add QtDBus example programs:
417           - hello: Hello, World
418           - ping: Simple method-calling program
419           - pong: Simple object-exporting program (not using adaptors)
420           - complexping: Interactive method-calling program 
421                 (also gets and sets properties).
422           - complexpong: Sample program exporting methods, signals and
423                 properties, using adaptors.
424           - dbus: Simple implementation of a generic method-calling
425                 program, similar to 'dbus-send', but with semantics
426                 similar to 'dcop'.
427           - chat: Simplistic chat program, implemented using signals
428                 and the system bus. Looks like IRC.
429
430 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
431
432         * configure.in: Detect QtGui (necessary for one of the
433           example programs). Note: this increases the minimum required
434           version of Qt to 4.1.3.
435
436 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
437
438         * test/qt/*: Sync with KDE Subversion revision 523647.
439         Update the testcases to the new API. Remove testcases for
440         classes that are no longer public or have been removed.
441
442 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
443
444         * qt/*: 
445         * dbus/qdbus.h: Sync with KDE Subversion revision
446         523647. Hopefully, this will be the last of the
447         source-incompatible changes. Documentation has been improved;
448         support for QList<basic-types> has been added; QDBusObject is
449         gone; QDBus(Abstract)Interface is now a QObject with
450         auto-generated meta-object; QDBusIntrospection is marked
451         private, since QMetaObject can be used now; lots of bugfixes.
452
453 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
454
455         Patch from Milosz Derezynski <internalerror at gmail.com>
456         
457         * configure.in:
458         Output the service directory in the configure summary
459
460         * dbus-1.pc.in:
461         Add session_bus_services_dir
462
463 2006-03-10  Ross Burton  <ross@openedhand.com>
464
465         * tools/dbus-print-message.c:
466         Add support for object paths and signatures.
467
468 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
469
470         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
471         config reload.
472         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
473         information caches
474         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
475         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
476         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
477         * dbus/dbus-userdb.h: Add function to flush all user/group information
478         caches.
479
480 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
481
482         * qt/dbusidl2cpp.cpp:
483         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
484         for dcopidl2cpp, found in the KDE installations (or the more
485         modern kalyptus): generate Qt4 C++ code for the input XML
486         introspection. Currently no IDL parsing.
487
488 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
489
490         * test/qt/*: Update the self-tests.
491
492 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
493
494         * qt/*: 
495         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
496         represents the first feature-complete version of the Qt4
497         bindings since I took ove maintainership.
498
499 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
500
501         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
502         dir. This is C++, so we can't use the DBus ones.
503
504 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
505
506         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
507         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
508
509 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
510
511         * dbus/dbus-connection.c: 
512         (_dbus_connection_block_pending_call):
513         Check to see if our data has already been read off the connection
514         by another blocking pending call before we block in poll.
515         (check_for_reply_and_update_dispatch_unlocked):
516         Code taken from _dbus_connection_block_pending_call - checks for
517         an already read reply and updates the dispatch if there is one.
518
519         * test/name-test/test-pending-call-dispatch.c:
520         New test for making sure we don't get stuck polling a 
521         dbus connection which has no data on the socket when
522         blocking out of order on two or more pending calls.
523
524 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
525
526         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
527         make/automake don't detect that we're talking about the same
528         .lo file if I specify the full path to the source files.
529
530 2006-02-26  Havoc Pennington  <hp@redhat.com>
531
532         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
533
534         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
535         session bus variable is unset, suggest "man dbus-launch" and "man
536         dbus-daemon" to figure out how to fix the problem
537
538 2006-02-25  Havoc Pennington  <hp@redhat.com>
539
540         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
541         should make this thing use the new glib options parser
542
543 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
544
545         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
546         .lo files taking moc sources.
547
548 2006-02-25  Havoc Pennington  <hp@redhat.com>
549
550         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
551         and install it as a public header
552
553 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
554
555         * Released 0.61
556
557 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
558         
559         * proxies.py: Fix the callchain
560
561 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
562         
563         * patch from Sjoerd Simons <sjoerd at debian.org>:      
564
565         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
566         dbus/dbus-sysdeps.c
567
568         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
569         call _dbus_group_info_free_allocated which causes infinite loop,
570         correctly call _dbus_group_info_free
571
572 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
573
574         * qt/qdbusinterface_p.h:
575         * qt/qdbusinterface.cpp: Use the standard
576         org.freedesktop.DBus.Method.NoReply annotation for the "async"
577         calls instead of creating one for us.
578
579         * qt/qdbusconnection_p.h:
580         * qt/qdbusintegrator.cpp: Remove debugging code.
581
582         * qt/qdbusintegrator.cpp:
583         * qt/qdbusmessage.cpp:
584         * qt/qdbusmessage_p.h:
585         * qt/qdbusmessage.h: Change the behaviour of automatic
586         reply-sending: now a reply is always sent, unless the caller
587         didn't request one or if the user slot has already sent one.
588
589 2006-02-16  Robert McQueen  <robot101@debian.org>
590
591         * configure.in: Patch from Debian packages by Sjoerd Simons
592         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
593         arguments so it's possible to build both bindings in the
594         same tree.
595
596         * qt/Makefile.am: Fix truncated value so that make dist works.
597
598 2006-02-16  Robert McQueen  <robot101@debian.org>
599
600         * acinclude.m4, configure.in: Patch from Brad Hards
601         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
602         improving quoting, re-ordering a few checks, and a few other
603         aesthetic tidy-ups.
604
605 2006-02-16  Robert McQueen  <robot101@debian.org>
606
607         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
608         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
609         assertion that the next element to read from the iter is fixed in
610         size. This is not the case when you are at the end of the iter,
611         because the next element type is INVALID.
612
613         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
614         a bogus assert which means that you may not initialise a 0-length
615         string unless you provide a non-NULL pointer. This prevented
616         you from marshalling messages containing zero-length arrays in
617         some cases.
618
619         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
620         from Rob to correct bogus asserts when trying to demarshal an
621         array and get_fixed_array got you 0 elements. Append nothing to
622         the GArray in this case.
623
624         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
625         an empty array via the glib bindings. Without all of the above
626         patches, this new test fails.
627
628 2006-02-16  Robert McQueen  <robot101@debian.org>
629
630         * glib/dbus-gmain.c: Make the previous commit compile.
631
632         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
633         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
634         specify sender_keyword="foo", path_keyword="bar" when adding
635         a signal listener, so that you can bind to signals generically
636         but still do something useful in your callback.
637
638         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
639         chars so that they're not cast to chars and made negative. Thanks
640         to Jakub Stachowski for reporting this and testing the fix.
641
642 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
643
644         * dbus/dbus-glib.h:
645         * glib/dbus-gmain.h:
646         (dbus_g_connection_open): new method for openning
647         a connection to an arbitrary address in the glib bindings
648
649         * ChangeLog: checkin last entry which doesn't seem to be commited
650
651 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
652
653         * tools/dbus-launch.c: Fixed sh syntax output
654
655 2006-02-13  Robert McQueen  <robot101@debian.org>
656
657         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
658         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
659         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
660         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
661         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
662         missing piece of the glib bindings jigsaw puzzle. This modifies
663         the existing specialised types to have N type parameters (rather
664         than the current 1 or 2 for arrays and dictionaries respectively).
665         You can then use this to get a glib type to represent any arbitrary
666         D-Bus struct type using dbus_g_type_get_struct. The only
667         implementation of these types is with GValueArrays as before,
668         but it's now possible to store these in arrays, emit them in
669         signals, etc.
670
671 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
672
673         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
674         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
675         <thiago.macieira at trolltech.com>
676
677 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
678
679         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
680         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
681
682 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
683
684         * bus/connection.c (bus_connections_expect_reply): Make
685         pending reply limit not common to all connections (Bug #5416)
686         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
687
688 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
689
690         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
691
692 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
693
694         * gcj/Makefile.am: point to correct jar command (Bug #4529)
695         patch from Doug Goldstein <cardoe at gentoo.org>
696
697 2006-02-09  Joe Shaw  <joeshaw@novell.com>
698
699         * mono/Arguments.cs: Fix a magic number in the mono bindings
700         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
701
702 2006-01-27  Robert McQueen  <robot101@debian.org>
703
704         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
705         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
706         when generating the client-side methods, instead of overloading
707         CSymbol which broke everything horribly. My apologies.
708
709 2006-01-27  Robert McQueen  <robot101@debian.org>
710
711         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
712         by me and Rob Taylor to add a simple_free function to D-Bus map
713         and collection types, which allows those types which can be freed
714         with a GDestroyNotify (such as GHashTables and GArrays, but not
715         GPtrArrays) to be stored as the values in hashtables.
716
717         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
718         Patch by Rob Taylor to add nested dicts to the glib tests to check
719         the above code works, and appears not to leak when called repeatedly.
720
721 2006-01-27  Robert McQueen  <robot101@debian.org>
722
723         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
724         to free a D-Bus allocated string with dbus_free () instead of
725         g_free ().
726
727 2006-01-27  Iain Holmes  <iain@openedhand.com>
728
729         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
730         method from being called multiple times.
731
732 2006-01-19  Robert McQueen  <robot101@debian.org>
733
734         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
735         <rob.taylor@collabora.co.uk> to add support for generating bindings
736         to arrays that are represented as GPtrArrays rather than GArrays (ie
737         size-variable things, such as strings, objects, structs, etc).
738
739 2006-01-05  Robert McQueen  <robot101@debian.org>
740
741         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
742         <ricardo.kekki@movial.fi> to make it possible to inherit from
743         DBusGProxy, by splitting the DBusGProxy struct into a public part and
744         a private part, and moving the setting of the DBusGProxyManager into a
745         connection property, allowing proper GObject construction.
746
747 2006-01-05  Robert McQueen  <robot101@debian.org>
748
749         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
750         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
751         annotations when generating glib client bindings.
752
753 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
754
755         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
756
757         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
758
759 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
760
761         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
762
763 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
764
765         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
766
767 2005-12-19  Ross Burton  <ross@openedhand.com>
768
769         * doc/dbus-tutorial.xml:
770         Document the Glib client-side bindings, and list all possible annotations.
771
772 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
773
774         * dbus/bus.c (dbus_bus_release_name): Add documentation
775
776 2005-12-06  Robert McQueen  <robot101@debian.org>
777
778         * python/service.py: s/sucessful/successful/ so we're allocating to
779         and reading from the same variable. Oops.
780
781 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
782
783         * Released 0.60
784
785 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
786
787         * test/qt/Makefile.am: build from srcdir
788
789         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
790         Note - this code is wrong and needs to be fixed by the Qt binding
791         developers.  The flags should be treated as bitfields and not enums.
792
793         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
794
795 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
796
797         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
798           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
799           in production code
800
801 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
802
803         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
804         method for getting messages off the bus in the absence of a
805         mainloop.  This method is much like 
806         dbus_connection_read_write_dispatch except it does not dispatch
807         the messages to a registered filter function.  Instead it
808         allows a developer to process messages by directly popping
809         them off the bus.
810
811 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
812
813         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
814         the parser to continue instead of returning error
815         (bus_desktop_file_load): Do not free parser data when
816         parse_section_start or parse_key_value fails because it was 
817         already freed by parser_free (patch from Carlos Garcia Campos  
818         <carlosgc at gnome.org>)
819
820 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
821
822         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
823         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
824         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
825         test/test-segfault.c, test/test-utils.c,
826         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
827         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
828         Various cleanup of dead code and compiler warnings (patch from
829         Kjartan Maraas <kmaraas at gnome.org>) 
830
831 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
832
833         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
834         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
835
836 2005-11-27  Robert McQueen  <robot101@debian.org>
837
838         * python/dbus_bindings.pyx: Repair my previous commit which reverted
839         part of the preceding one. Oops. Merge patch by Johan Hedberg
840         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
841         on big-endian platforms.
842
843         * test/python/test-client.py: Add some 16-bit integers to the test
844         values.
845
846 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
847
848         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
849         method return message for property getters
850
851 2005-11-27  Robert McQueen  <robot101@debian.org>
852
853         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
854         with type v of an instance of dbus.Variant(foo, type='x') caused
855         it to be boxed twice before sending over the bus.
856
857         * python/dbus_bindings.pyx, python/service.py,
858         test/python/test-client.py: Update the constants for the new
859         request_name flags, and update comments/test cases now that queueing
860         is the default action.
861
862 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
863
864         * configure.in:
865         - Change version to 0.60 for impending release
866         - upped the sonames because of ABI and API breakage
867
868 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
869
870         * configure.in: Add test/name-test/Makefile to the generated
871         Makefile list
872
873         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
874         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
875         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
876         not to queue an ower if it can't be the primary owner
877
878         * bus/bus.h: Add new internal BusOwner struct
879
880         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
881         to bus_registry_ensure and don't set the prohibit_replacement flag
882         since they are now set per BusOwner and not per name.
883         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
884         that returns the list of connections in a name's connection queue
885         
886         * bus/services.c (struct BusService): remove prohibit_replacement field
887         (struct BusOwner): new struct for keeping track of queued connections
888         and their associated flags for the queue
889         (struct BusRegistry): add a BusOwner memory pool
890         (bus_registry_new): initialize the BusOwner memory pool
891         (bus_registry_unref): free the BusOwner memory pool
892         (_bus_service_find_owner_link): new internal method for
893         searching the queue for a specific connection
894         (bus_owner_set_flags): new method for adding setting the flags on a
895         bus owner
896         (bus_owner_new): new method that creates a BusOwner object from the
897         pool and sets its flags
898         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
899         (bus_registry_ensure): Add the flags parameter
900         (bus_registry_acquire_service): Switch from using raw connections to
901         using the BusOwner struct
902         Add new state machine for dealing with the new set of flags
903         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
904         cancel_ownership, free_ownership_cancel_data, 
905         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
906         restore_ownership, free_ownership_restore_data, 
907         add_restore_ownership_to_transaction): Switch to using BusOwner 
908         instead of raw connections
909         (bus_service_add_owner): Add flags parameter
910         Switch to using BusOwner instead of raw connections
911         Add state machine for dealing with the new set of flags
912         (bus_service_swap_owner): Swaps the first and second owners in the
913         queue.  Used to make sure proper signals are sent when a service looses 
914         or gains primary ownership.  We never insert an owner at the top of the
915         queue.  Instead we insert it in the second position and then swap.
916         (bus_service_remove_owner): Remove the owner from the queue sending
917         out the NameLost and NameOwnerChanged signals if the we were the 
918         primary owner
919         (bus_service_get_primary_owners_connection): New method that extracts
920         the connection from the primary owner
921         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
922         connection
923         (bus_service_get_allow_replacement): Changed from the old 
924         bus_service_get_prohibit_replacement method.  Checks the flags of the 
925         primary owner and returns if it can be replaced or not
926         (bus_service_set_prohibit_replacement): removed
927         (bus_service_has_owner): returns TRUE if and owner with
928         the specified connection exists in the queue
929         
930         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
931         method that only compiles if tests are enabled.  Allows us to get the 
932         unique name of a connection so we can check it against the queue when
933         doing regression tests
934
935         * bus/activation.c (bus_activation_send_pending_auto_activate),
936         bus/dispatch.c (bus_dispatch),  
937         bus/driver.c (bus_driver_handle_get_service_owner, 
938         bus_driver_handle_get_connection_unix_user, 
939         bus_driver_handle_get_connection_unix_process_id,
940         bus_driver_handle_get_connection_selinux_security_context),
941         bus/signals.c (connection_is_primary_owner): 
942         use bus_service_get_primary_owners_connection instead of
943         bus_service_get_primary_owner
944
945         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
946         _dbus_listen_unix_socket): Calculate the length of the socket
947         path and use that instead of using a fixed length which was
948         causing socket names to contain many trailing Nul bytes.
949
950         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
951         (dbus_g_method_get_sender): New method for extracting the sender 
952         from a DBusGMethodInvocation
953         (dbus_g_method_return_get_reply): changed name to 
954         dbus_g_method_get_reply
955         (dbus_g_method_return_send_reply): changed name to
956         dbus_g_method_send reply
957
958         * doc/dbus-specification.xml: New docs that describe how the new
959         queueing system works and talks about the changes to the how
960         we specify socket names
961
962         * glib/examples/example-service.c, 
963         glib/examples/example-signal-emitter.c,
964         glib/examples/statemachine/statemachine-server.c:
965         Changed the RequestName flags to the new system
966
967         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
968         regression test suite for testing various states of the new
969         queueing system
970         
971 2005-11-15  Robert McQueen  <robot101@debian.org>
972
973         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
974         Taylor to add two methods, dbus_g_method_return_get_reply and
975         dbus_g_method_return_send_reply, to allow you to get the reply
976         message from a DBusGMethodInvocation, append arbitrary stuff to it,
977         and send it. The GLib bindings can't marshal a return value of
978         something like a(s) if the array is empty - ultimately they should be
979         made to heed the signature of the out arguments as the Python bindings
980         now can, but this is a workable interim solution which might have
981         other applications.
982
983 2005-11-15  Robert McQueen  <robot101@debian.org>
984
985         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
986         method to org.freedesktop.DBus to release a bus name or give up
987         waiting in the queue for it.
988
989         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
990         dbus_bus_release_name method to send the ReleaseName method calls.
991         Add constants for the return values to dbus/dbus-shared.h.
992
993         * doc/dbus-specification.xml: Document the new ReleaseName method
994         in the specification.
995
996         * python/dbus_bindings.pyx: Add a low-level python binding for the
997         release name method.
998
999         * python/exceptions.py, python/service.py: Make freeing BusName
1000         objects release the name. Add a NameExistsException, and fix a
1001         bug with creating UnknownMethodException.
1002
1003         * test/python/test-client.py: Add tests for freeing BusName
1004         objects causing names to be released.
1005
1006 2005-11-14  Robert McQueen  <robot101@debian.org>
1007
1008         * python/service.py: Include the traceback in the error reply when we
1009         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1010
1011 2005-11-14  David Zeuthen  <davidz@redhat.com>
1012
1013         Patch from Timo Hoenig <thoenig@suse.de>.
1014
1015         * bus/bus.c: I've recently investigated why the automatic reload
1016         of configuration files does not work as expected.
1017
1018         Currently, reloading configuration files does only work when
1019         running dbus-daemon with --nodaemon.  If we are running as daemon
1020         we're hitting a dnotify bug once we fork the process.
1021
1022         We're initializing the dnotify fds before calling fork().  Once
1023         the child process forked it does still have the fds (and they
1024         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1025         getting SIGIO as changes are made to the configuration files.
1026
1027         The attached patch moves the initialization of the dnotify fds to
1028         process_config_postinit().  This is safe for all current code
1029         paths and solves the dnotify disfunction.  If we're running
1030         dbus-daemon as daemon the fds for dnotify are now being
1031         initialized after fork() for the child process.
1032
1033         * configure.in: The current configure.in check for dnotify probes
1034         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1035         match for 'xlinux', too. Additionally I have adapted the configure
1036         option's style to match with the others.
1037
1038 2005-11-14  Robert McQueen  <robot101@debian.org>
1039
1040         * python/decorators.py, python/service.py: Add a new argument to the
1041         dbus.service.method decorator called sender_keyword, which if set,
1042         specifies the name of an argument which will be provided the bus
1043         name of the method caller.
1044
1045         * test/python/test-client.py, test/python/test-service.py: Add a
1046         method and test to check the sender_keyword functionality.
1047
1048 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1049
1050         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1051         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1052         Simons <sjoerd at luon.net>)
1053
1054         * AUTHORS: Add Robert McQueen for his work on the Python
1055         Bindings and other parts of D-Bus
1056
1057 2005-11-07  Robert McQueen  <robot101@debian.org>
1058
1059         * python/decorators.py: Change emit_signal function to use the
1060         signature annotation of the signal when marhsalling the arguments from
1061         the service. Fix a bug where the code checking signature length
1062         against argument length referenced the wrong variable.
1063
1064         * python/introspect_parser.py: Avoid adding the type signature of
1065         signal arguments to any methods which occur after them in the
1066         introspection data (!) by making the parser a little more careful
1067         about its current state.
1068
1069         * python/service.py: Remove debug prints from last commit (again :D).
1070
1071         * test/python/test-client.py, test/python/test-service.py: Add test
1072         signals with signature decorators to test the strict marshalling code
1073         gives errors at the right time. Could do with checking the signals
1074         actually get emitted too, given that the test does nothing with
1075         signals at the moment...
1076
1077 2005-11-07  Robert McQueen  <robot101@debian.org>
1078
1079         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1080         instances to stop madness of creating new instances representing
1081         the same bus connection all the time, rendering any tracking of
1082         match rules and bus names quite meaningless. Caught a bug where
1083         the private argument to SessionBus() and friends was being passed
1084         in as use_default_mainloop by mistake. Still some problems with
1085         multiple dbus_binding.Connection instances representing the same
1086         low-level connection (eg when you use both SessionBus() and
1087         StarterBus() in same process), but it's a lot better now than it
1088         was.
1089
1090         * python/dbus_bindings.pyx: Add constants with the return values
1091         for bus_request_name().
1092
1093         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1094         and retrieve the same instances for the same name, so deletion can be
1095         done with refcounting. Also now throws some kind of error if you
1096         don't actually get the name you requested, unlike previously...
1097
1098         * test/python/test-client.py: Add tests for instance caching of buses
1099         and bus name objects.
1100
1101 2005-11-04  Robert McQueen  <robot101@debian.org>
1102
1103         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1104         marshalling of boolean values. Add some booleans to the values in
1105         the test client.
1106
1107         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1108         argument to the dbus.service.method decorator, which allows you to
1109         name arguments to take two callback functions for replying with
1110         return values or an exception.
1111
1112         * test/python/test-client.py, test/python/test-service.py: Add test
1113         case using asynchronous method reply functions, both return values and
1114         errors, and from within both the function itself and from a mainloop
1115         callback.
1116
1117         * python/decorators.py, python/service.py: Perform checking that the
1118         number of method/signal arguments matches the number of types in the
1119         signature at class loading time, not when you first introspect the
1120         class.
1121
1122         * python/service.py: Remove debug print left by the last commit.
1123
1124 2005-11-03  Robert McQueen  <robot101@debian.org>
1125
1126         * python/service.py: Heavy refactoring of method invocation, with
1127         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1128         in favour of a new _message_cb that uses seperate functions for
1129         looking up the method to call, marshalling the return values, and
1130         sending exceptions as errors, and is easier to follow as a
1131         consequence.  Fixes some corner cases about returning things that
1132         don't match your declared out_signature, allows exceptions to define
1133         _dbus_error_name and have it be sent over the bus as the error name,
1134         and paves the way for cool stuff like heeding the message no reply
1135         flag, asynchronous method implementations, informing the method of the
1136         sender, and including backtraces in the error messages.
1137
1138         * test/python/test-client.py: Catch and print exceptions thrown in the
1139         async callback tests, rather than passing them to the low-level
1140         bindings to be ignored in a noisy and frustrating manner.
1141
1142 2005-11-03  Robert McQueen  <robot101@debian.org>
1143
1144         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1145         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1146         tweak others to be consistent.
1147
1148         * test/python/test-client.py: Tweak output of testInheritance.
1149
1150 2005-10-29  Robert McQueen  <robot101@debian.org>
1151
1152         * python/service.py: Major changes to allow multiple inheritance
1153         from classes that define D-Bus interfaces:
1154         
1155          1. Create a new Interface class which is the parent class of
1156             Object, and make the ObjectType metaclass into InterfaceType.
1157         
1158          2. Patch written with Rob Taylor to replace use of method_vtable
1159             with code that walks the class's __MRO__ (method resolution order)
1160             to behave like Python does when invoking methods and allow
1161             overriding as you'd expect. Code is quite tricky because
1162             we have to find two methods, the one to invoke which has the
1163             right name and isn't decorated with the /wrong/ interface,
1164             and the one to pick up the signatures from which is decorated
1165             with the right interface.
1166         
1167             The same caveats apply as to normal multiple inheritance -
1168             this has undefined behaviour if you try and inherit from two
1169             classes that define a method with the same name but are
1170             decorated with different interfaces. You should decorate
1171             your overriding method with the interface you want.
1172         
1173          3. Replace grungy introspection XML generation code in the metaclass
1174             with dictionaries that cope correctly with multiple inheritance
1175             and the overriding of methods. This also uses the signature
1176             decorations to provide correct introspection data, including
1177             the debut appearance of the types of your return values. :D
1178
1179         * test/python/test-client.py, test/python/test-service.py: Add a test
1180         case to try invoking an method that overrides one inherited from a
1181         D-Bus interface class.
1182
1183 2005-10-29  Robert McQueen  <robot101@debian.org>
1184
1185         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1186         Add checking for the end of struct character when marshalling a
1187         struct in MessageIter.append_strict.
1188
1189         * python/examples/example-service.py,
1190         python/examples/gconf-proxy-service.py,
1191         python/examples/gconf-proxy-service2.py: Update to use gobject
1192         mainloop directly rather than appearing to depend on gtk.
1193
1194         * python/test/test-client.py, python/test/test-server.py: Remove
1195         obsolete and broken test scripts for old bindings. We have up to date
1196         and working tests in test/python/.
1197
1198 2005-10-29  Robert McQueen  <robot101@debian.org>
1199
1200         * python/decorators.py: Add optional arguments to the method and
1201         signal decorators to allow you to specify the signature of arguments
1202         and return values. Preserve the doc strings of signal functions in the
1203         decorated version, for pydoc and friends.
1204
1205         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1206         parse_signature_block function with an iterable dbus.Signature()
1207         type. Fix a bug in MessageIter.append_strict where you could append
1208         anything by claiming it was a string.
1209
1210         * python/service.py: Use the out_signature decoration on methods to
1211         marshal return values, meaning you no longer require dbus.Array()
1212         or dbus.Dictionary() to indicate the type when returning empty
1213         arrays or dictionaries. Fix a bug where exceptions which are defined
1214         in __main__ are not turned into error replies.
1215
1216         * test/python/test-client.py, test/python/test-service.py: Add test
1217         for correct marshalling of return values according to out_signature.
1218         Fix a bug in the async call test where the error_handler is missing a
1219         self argument.
1220
1221 2005-10-29  Robert McQueen  <robot101@debian.org>
1222
1223         * glib/Makefile.am, glib/examples/Makefile.am,
1224         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1225         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1226
1227         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1228
1229         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1230         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1231         the command line.
1232
1233 2005-10-27  Ross Burton  <ross@openedhand.com>
1234
1235         * dbus/dbus-marshal-header.c:
1236         Remove dead code.
1237
1238         * glib/dbus-gobject.c:
1239         Stop compiler warning.
1240
1241 2005-10-25  Ross Burton  <ross@openedhand.com>
1242
1243         * dbus/dbus-auth.c:
1244         * dbus/dbus-server-unix.c:
1245         * dbus/dbus-transport-unix.c:
1246         * glib/dbus-gmain.c:
1247         * glib/dbus-gobject.c:
1248         Add some const keywords.
1249
1250 2005-10-25  Ross Burton  <ross@openedhand.com>
1251
1252         * doc/dbus-specification.xml:
1253         Document the NoReply annotation.
1254
1255         * glib/dbus-binding-tool-glib.h:
1256         * glib/dbus-binding-tool-glib.c:
1257         Respect the NoReply annotation.
1258
1259 2005-10-24  Robert McQueen <robot101@debian.org>
1260
1261         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1262         derive from unicode instead of str, and encode/decode UTF-8 when
1263         marshalling/unmarshalling bus messages
1264
1265         * python/introspect_parser.py: encode introspection data as UTF-8
1266         before passing the buffer into libxml2
1267
1268         * test/python/test-client.py: add unicode test strings
1269
1270         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1271         ignore generated python test files
1272
1273 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1274
1275         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1276         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1277         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1278
1279         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1280         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1281         when constructing struct signatures
1282
1283         * python/_dbus.py (Bus): handle private connections using the
1284         private keyword in the constructor. defaults to private=False
1285         (Bus::close): new method to close a connection to the bus
1286
1287         * python/dbus_bindings.pyx (Connection::close): renamed method
1288         was previously called disconnect
1289         (bus_get): now supports getting a private connection
1290
1291         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1292         keyword is set to True.  if it is, execute the method without waiting
1293         for a reply
1294         (ProxyObject::_introspect_execute_queue): new method for executing
1295         all the pending methods that were waiting for the introspect to
1296         finish.  this is called when introspect either succeeds or fails
1297         (ProxyObject::_introspect_error_handler): call queued methods
1298
1299 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1300
1301         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1302         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1303
1304         * python/service.py (Object::_message_cb): handle exceptions correctly
1305         by sending them over the wire to the calling app.  This makes sure
1306         the client returns immediately instead of waiting the 15 seconds to
1307         timeout.
1308
1309         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1310         Add a test to benchmark how long it takes to introspect a service and 
1311         call a method which returns a large element (pretty fast)
1312
1313         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1314         method which pushes a lot of data
1315
1316 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1317
1318         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1319         reclaim memory outside of the loop and use del istead of just setting
1320         the key to None
1321
1322 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1323
1324         * python/service.py (ObjectType::_reflect_on_signal): Always close
1325         signal tag even when there are no arguments
1326
1327 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1328
1329         * configure.in: Set mono, mono-docs and Qt3 to default
1330         to no instead of auto when building.  These bindings do not
1331         have full time maintainers and will not be supported for the
1332         1.0 release.
1333
1334 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1335
1336         patches from Michael Krivoruchko <misha at sun.com>: 
1337         
1338         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1339         _dbus_connection_message_sent, 
1340         _dbus_connection_send_preallocated_unlocked_no_update, 
1341         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1342         is NULL when calling _dbus_verbose
1343
1344         * configure.in: check for functions getpeerucred and getpeereid
1345
1346         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1347         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1348         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1349         Patch was only tested on Solaris 10 x86 so it might be issues
1350         with other platforms (i.e. BSDs and MacOSX)
1351         
1352
1353 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1354
1355         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1356         instead of marshal basic so we can handle recursive types in a variant
1357
1358         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1359         in variants
1360
1361         * test/glib/test-service-glib.c, test-service-glib.xml
1362         (my_object_echo_variant [EchoVariant], 
1363         my_object_process_variant_of_array_of_ints123
1364         [ProcessVariantOfArrayOfInts123]): 
1365         Add two test methods
1366
1367         * python/introspect_parser.py: New module for parsing introspect
1368         data.
1369
1370         * python/dbus_bindings.pyx:
1371         (various places): when throwing errors fix to use errormsg instead 
1372         of message local variable because Pyrex can get confused with other 
1373         message variables (initial patch by Robert McQueen 
1374         <robert.mcqueen at collabora.co.uk>)
1375         (MessageIter::parse_signature_block): new method for getting the next
1376         block in a signiture.
1377         (MessageIter::append_strict): new method for appending values strictly
1378         using the passed in signature instead of guessing at the type
1379         (MessageItter:: append_dict, append_struct, append_array): use 
1380         signatures to marshal children if the signature is available
1381         
1382         * python/exceptions.py (IntrospectionParserException): new exception
1383
1384         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1385         introspected signatures if available, else we fall back to the
1386         old way of doing things.
1387         (ProxyObject::_introspect_reply_handler ): parse introspection data
1388         
1389         * python/service.py (ObjectType::_reflect_on_method): Properly
1390         terminate <method> if there are no args in the reflection data
1391
1392         * test/python/test-client.py: add tests for talking with the GLib
1393         test server.  This gives us better coverage for introspection since
1394         python to python will always generate arguments as variants.  It also
1395         allows us to test the robustness of the GLib bindings and interlanguage
1396         communications.
1397
1398         
1399 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1400
1401         * bus/driver.c (bus_driver_handle_introspect): Add signals
1402         to the introspect data. (patch from Daniel P. Berrange 
1403         <dan at berrange.com>)
1404
1405         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1406         
1407         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1408         _dbus_connection_run_builtin_filters): Changed these to
1409         be unlock_no_update functions and call 
1410         _dbus_connection_send_unlocked_no_update instead of
1411         dbus_connection_send to avoid locking errors.
1412         
1413         * doc/TODO: Removed the make Ping test TODO
1414         
1415 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1416
1417         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1418         We now copy the message from a DBusError and then free 
1419         the error object befor throwing the error
1420
1421         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1422         DBusBindingOutputMode enum which was causing a warning.
1423         #include <time.h> so using time_t is explicitly defined
1424
1425 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1426
1427         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1428         - dbus/dbus-bus.c
1429         (internal_bus_get): new method that take over the heavy lifting
1430         of dbus_bus_get and adds the ability to get a private connection
1431         to the bus
1432         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1433         interface as in previous versions
1434         (dbus_bus_get_private): new method that is a wrapper to 
1435         internal_bus_get to get a private connection to the bus
1436
1437         - dbus/dbus-bus.h
1438         (dbus_bus_get_private): add as a public libdbus interface
1439
1440         - dbus-1.pc.in: output system_bus_default_address and 
1441         sysconfdir variables so apps can use them when compiling
1442
1443 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1444         * dbus/qt: New Qt bindings
1445
1446 2005-09-12  Waldo Bastian  <bastian@kde.org>
1447
1448         * dbus/dbus-marshal-validate.c,
1449         doc/dbus-specification.xml, test/Makefile.am,
1450         test/test-names.c: allow hyphens in bus names.
1451
1452 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1453
1454         * test/data/auth/fallback.auth-script: we don't
1455         retry the EXTERNAL method when we know its going
1456         to fail anymore.
1457
1458 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1459
1460         * dbus/dbus-connection-internal.h: rename
1461         (add|remove|toggle)_(watch|timeout) to unlocked()
1462         
1463         * dbus/dbus-connection.c: ditto.
1464         
1465         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1466         Update some callers for the renaming.
1467
1468 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1469
1470         * dbus/dbus-auth.c: (record_mechanisms): don't
1471         retry the first auth mechanism because we know
1472         we're just going to get rejected again.
1473         
1474         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1475         Fix thinko ... and what a nasty little bugger to
1476         track down you were ...
1477
1478         * dbus/dbus-connection.c:
1479         (_dbus_connection_add_watch),
1480         (_dbus_connection_remove_watch): add note about
1481         these needing the connection to be locked.
1482         (_dbus_connection_get_dispatch_status_unlocked):
1483         set status to DATA_REMAINS when we queue the
1484         disconnected message.
1485         
1486         * bus/dispatch.c:
1487         (bus_dispatch): fix warning.
1488         (check_existent_service_no_auto_start):
1489         Expect ChildSignaled error too.
1490         (check_existent_hello_from_self): fix another
1491         couple of warnings.
1492         
1493 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1494
1495         Patches from James Willcox <snorp@snorp.net>
1496
1497         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1498
1499         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1500         support array "out" parameters.
1501
1502         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1503         for 16-bit int support.
1504
1505 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1506
1507         * Released 0.50
1508
1509         * Patch from Steve Grubb:
1510         - bus/activation.c (bus_activation_service_reload_test): clean up
1511         some indentation
1512         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1513         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1514         buffer overflows in the test suite.  This is non critical because
1515         it can not be exploited and this code is only run when doing a 
1516         make check.
1517
1518         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1519         - configure.in: Don't check and link against kdecore, only qt headers
1520         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1521         - gcj/org/freedesktop/dbus/Makefile.am:
1522         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1523         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1524         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1525         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1526         - tools/Makefile.am: Add platform extentions to binaries 
1527         (i.e. .exe on windows)
1528
1529         * configure.in: 
1530         - Make it so if no suitable version of python is found we only 
1531         disable building python instead of exiting the configure script
1532         - Require version 2.4 of glib for glib bindings
1533         - Up version to 0.50
1534
1535         * python/__init__.py: Sync version with libdbus to (0,50,0)
1536         
1537 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1538
1539         * dbus/dbus-object-tree.c (find_subtree_recurse):
1540         a couple of optimizations (bug #710):
1541         - do a binary search in the tree
1542         - insert a new child at the right place directly, no need for
1543           qsort anymore
1544         - do the "double alloc" thing when allocating children
1545
1546 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1547
1548         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1549
1550         * python/dbus_bindings.pyx: Memory management foo
1551         (global): remove hacky _user_data_references global list
1552         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1553         tuples. Unref user_data
1554         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1555         (Connection::__del__): Remove and replace with __dealloc__ method
1556         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1557         to keep tuple from being deallocated instead of the global var hack
1558         (Connection::register_object_path): Stuff user_data into a tuple.
1559         Use Py_INCREF to keep tuple from being deallocated instead of the 
1560         global var hack
1561         (Connection::register_fallback): Stuff user_data into a tuple.
1562         Use Py_INCREF to keep tuple from being deallocated instead of the 
1563         global var hack
1564         (GIL_safe_pending_call_notification): Don't unref the message
1565         because it gets unreffed when going out of scope.  Py_XDECREF
1566         the user_data
1567         (PendingCall::__del__): Remove and replace with __dealloc__ method
1568         (PendingCall::set_notify): ref the pending call because we will
1569         need it to stick around for when the notify callback gets called
1570         (Message::__del__): Remove and replace with __dealloc__ method
1571
1572         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1573         gthreads_init to match up with the dbus call
1574
1575         * python/glib.py (init_threads): Changed to threads_init to match
1576         up with gobject.threads_init().  init_threads is kept for backwards
1577         compat but will most likely be deprecated in the future
1578
1579         * test/python/test-client.py: 
1580         - revamp to use Python's unittest functionality
1581         - add async call tests
1582         - setup threads in glib and dbus so we make sure locks are working
1583         
1584 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1585
1586         * python/dbus_bindings.pyx 
1587         (_pending_call_notification, cunregister_function_handler, 
1588         cmessage_function_handler): All callback functions have been rearranged 
1589         to workaround a bug in Pyrex when working with the GIL which is Python's 
1590         global lock when dealing with threads.  They have been split into
1591         a wrapper function (which assumes the name of the old function) and
1592         a _GIL_safe_<function name> function which contains the functionality
1593         of the old function.  This ensures that Pyrex does not write code
1594         the lock is released.
1595         
1596
1597 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1598
1599         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1600         GIL global lock when calling back into Python
1601
1602 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1603
1604         * Release 0.36.2
1605
1606         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1607
1608         * bus/policy.c (bus_policy_allow_user): change default "user is
1609         allowed" to be "user has same uid as the bus itself"; any
1610         allow/deny rules will override.
1611
1612         * bus/session.conf.in: don't allow all users, since now by default
1613         the user that ran the bus can connect.
1614
1615 2005-08-26  Colin Walters  <walters@verbum.org>
1616
1617         * tools/dbus-print-message.c (print_message): Flush stdout
1618         after printing a message, so that redirecting to a file, then
1619         hitting Ctrl-C works.
1620
1621 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1622
1623         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1624         (EmptyMessage): new class that subclasses Message.  This is a workaround
1625         to a Pyrex bug that fails to call __del__ when the Message object goes out
1626         of scope.  For some reason subclassing Message fixes this bug
1627         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1628         - s/Message(_create=0)/EmptyMessage everywhere else
1629         
1630         * test/python/test-{server|client}.py: add the python/.libs directory
1631         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1632         get picked up from the system
1633
1634 2005-08-25  Colin Walters  <walters@verbum.org>
1635
1636         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1637         to Ryan Lortie for the suggestion.
1638
1639 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1640
1641         * test/python: Add python regression test
1642
1643         * configure.in: Add test/python/Makefile
1644
1645         * test/Makefile.am: Add the python directory to SUBDIRS
1646
1647 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1648
1649         * Release 0.36.1
1650
1651         * python/_dbus.py: 
1652         (Interface::connect_to_signal): propigate keywords for match on args
1653         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1654
1655         * python/proxies.py (ProxyObject::connect_to_signal):
1656         propigate keywords for match on args
1657
1658         * Makefile.am: point everything to pyexecdir since python borks
1659         on multilib
1660
1661 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1662
1663         * Release 0.36
1664
1665 2005-08-23  Colin Walters  <walters@verbum.org>
1666
1667         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1668
1669 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1670
1671         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1672         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1673         of defining DBusConnection ourselves.
1674
1675 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1676
1677         * python/dbus.pth: New path file to fix up problems when installing
1678         c libraries to lib64 and python files to lib.
1679
1680         * python/Makefile.am: install dbus.pth in the correct spot
1681
1682 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1683         * ChangeLog: clean up my last entry a bit
1684
1685         * doc/introspect.xsl: New stylesheet for converting introspection data
1686         into browser renderable xhtml. Contributed by Lennart Poettering.
1687
1688         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1689         Poettering.
1690
1691         * doc/dbus-tutorial.xml: 
1692         - Add Colin Walter to the Authors section for authoring the GLib
1693         section
1694         - Add descriptions of the new signature and type functionality
1695         in the Python complex type mapping section
1696         - Add a sidenote on the new args matching functionality in 
1697         the Python bindings
1698         - Fixed up some of the examples to use the gobject.MainLoop
1699         instead of gtk.main
1700         
1701         * python/_dbus.py:
1702         (Bus::_create_args_dict): New. Converts a hash of arg matches
1703         to a more useable format
1704         (Bus::add_signal_receiver): add a **keywords parameter for catching
1705         arg match parameters
1706         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1707         arg match parameters
1708         
1709         * python/matchrules.py:
1710         (MatchTree::exec_matches): Check for arg matches
1711         (SignalMatchRule::add_args_match): New method
1712         (SignalMatchRule::execute): Added args_list parameter as an optimization
1713         so we don't have to marshal the args more than once
1714         (SignalMatchRule::match_args_from_list): New method that checks to see
1715         if the rule's arg matches match an argument list.  Only arguments
1716         set in the rule are checked.
1717         (SignalMatchRule::match_args_from_rule): New method that checks to see
1718         if the rule's arg matches match another rule's.  All args have to match
1719         in order for this method to return true.  If either rule has more args
1720         then it is not a match.
1721         (SignalMatchRule::is_match): Add args match
1722         (SignalMatchRule::repr): Add args to the final output if they exist
1723
1724 2005-08-17  Ross Burton  <ross@burtonini.com>
1725
1726         * glib/dbus-gproxy.c:
1727         (dbus_g_proxy_call_no_reply): unref the message once sent.
1728         (dbus_g_proxy_call): protect against NULL proxy.
1729
1730 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1731
1732         * python/__init__.py: Version updated (0, 43, 0)
1733         
1734         * python/dbus_bindings.pyx: 
1735         - Fixed type objects to have self passed into __init__
1736         - Added the Variant type
1737         - Add the ability to specify types or signatures for Array, Variant 
1738         and Dictionary
1739         (Connection::send_with_reply_handlers): return a PendingCall object
1740         (_pending_call_notification): handle the case when an error is returned 
1741         without an error message in the body
1742         (MessageIter::get_boolean): return True or False instead of an integer
1743         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1744         and add checks for objects with embeded signatures or types (Array, 
1745         Variant and Dictionary)
1746         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1747         (MessageIter::append_dict): handle embeded types or signatures
1748         (MessageIter::append_array): handle embeded types or signatures
1749         (MessageIter::append_variant): new method
1750         
1751         * python/proxies.py:
1752         (DeferedMethod): New. Dummy executable object used when queuing calls 
1753         blocking on introspection data
1754         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1755         or shorter timeouts for method calls
1756         (ProxyObject): Add first pass at an introspection state machine
1757         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1758         introspection. 
1759         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1760         the usual mechanisms for sending messages.  This is to avoid a deadlock
1761         where the Intospect call would be queued waiting for the Introspect 
1762         call to finish ;-)
1763         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1764         when introspection returns with no error
1765         (ProxyObject::_introspect_error_handler): New.  This method is called 
1766         when introspection encounters an error
1767         (ProxyObject::__getattr__): Code to handle different introspection 
1768         states.  Queue async calls or block blocking calls if we are 
1769         introspecting.  Pass through as normal if we are not or are done with 
1770         introspecting.
1771         
1772         * python/service.py: Import signal and method from decorators.py
1773
1774         * python/types.py: Add Variant type
1775
1776 2005-08-16  Colin Walters  <walters@verbum.org>
1777
1778         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1779         DBusError message is NULL.
1780
1781 2005-08-09  Havoc Pennington  <hp@redhat.com>
1782
1783         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1784         malloc'd copy of the name parameter
1785
1786 2005-08-09  Havoc Pennington  <hp@redhat.com>
1787
1788         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1789         warning if the reply serial is set to 0
1790
1791 2005-08-04  Colin Walters  <walters@verbum.org>
1792
1793         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1794         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1795         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1796         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1797         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1798         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1799         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1800         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1801         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1802         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1803         
1804         Prefix name with _ to ensure they're not exported.  All callers
1805         updated.
1806
1807         * glib/dbus-gvalue.c (typecode_to_gtype)
1808         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1809         (signature_iter_to_g_type_dict)
1810         (signature_iter_to_g_type_array)
1811         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1812         (dbus_gtypes_from_arg_signature):
1813         Move to dbus-gsignature.c.
1814
1815         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1816         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1817         (dbus_binding_tool_output_glib_client): Ditto.
1818
1819         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1820         and dbus-gsignature.h
1821
1822         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1823         unused variable.
1824
1825 2005-08-03  Colin Walters  <walters@verbum.org>
1826
1827         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1828         catch any incompatible changes accidentally made.
1829
1830 2005-08-03  Havoc Pennington  <hp@redhat.com>
1831
1832         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1833         typo, from Julien Puydt
1834
1835         * bus/connection.c (bus_connection_disconnected): we were always
1836         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1837
1838 2005-08-01  Colin Walters  <walters@verbum.org>
1839
1840         Patch from Joe Markus Clarke:   
1841         
1842         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1843         use-after-free.
1844
1845 2005-08-01  Colin Walters  <walters@verbum.org>
1846         
1847         Patch from Joe Markus Clarke:   
1848         
1849         * tools/dbus-send.c (main): 
1850         
1851         Don't use C99 style initializers (bug #3933).
1852         
1853 2005-08-01  Colin Walters  <walters@verbum.org>
1854
1855         Patch from Joe Markus Clarke:   
1856
1857         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1858         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1859         * glib/dbus-gobject.c (write_interface):
1860
1861         Don't use C99 style initializers (bug #3933).
1862
1863 2005-07-31  Havoc Pennington  <hp@redhat.com>
1864
1865         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1866         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1867
1868 2005-07-30  Havoc Pennington  <hp@redhat.com>
1869
1870         * fix a bunch of Doxygen warnings and mistakes
1871
1872 2005-07-30  Havoc Pennington  <hp@redhat.com>
1873
1874         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1875         DBUS_BUILD_TESTS since it's now used in production code
1876
1877 2005-07-29  Havoc Pennington  <hp@redhat.com>
1878
1879         * test/glib/test-profile.c (write_junk): initialize the junk
1880         buffer so valgrind doesn't have a breakdown
1881
1882 2005-07-29  Havoc Pennington  <hp@redhat.com>
1883
1884         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1885         (match_rule_matches): remove unused arg
1886         (test_matching): add tests for match_rule_matches()
1887
1888         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1889         do arg0='foo' arg5='bar' in the match rules
1890         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1891
1892         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1893
1894 2005-07-29  Ross Burton  <ross@openedhand.com>
1895
1896         * dbus/dbus-connection.c:
1897         Don't create a DBusCondVar which is never used.
1898
1899 2005-07-27  Ross Burton  <ross@openedhand.com>
1900
1901         * dbus/dbus-message.c:
1902         Reduce the size of the maximum cached message to 10K.
1903
1904 2005-07-25  Ross Burton  <ross@openedhand.com>
1905
1906         * glib/dbus-gproxy.c:
1907         Remove matches when all proxies are unregistered.
1908
1909 2005-07-24  Colin Walters  <walters@verbum.org>
1910
1911         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1912         typedata; recursive arrays won't have it.
1913
1914         * test/glib/test-dbus-glib.c:
1915         * test/glib/test-service-glib.c:
1916         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1917         
1918 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1919
1920         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1921         proxies.py, service.py: Cleanup of code after running it through the
1922         pyflakes code checker mostly dealing with undefined names.  
1923         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1924
1925 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1926
1927         * NEWS: Update to 0.35.2
1928
1929 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1930
1931         * python/_dbus.py: Remove import of the dbus.services
1932         module as it no longer exists (patch from Dimitur Kirov)
1933
1934         * python/service.py (Object::__init__): Fixed typo
1935         s/name/bus_name (patch from Dimitur Kirov)
1936
1937         * python/examples/example-signal-emitter.py: import dbus.glib
1938         to get the main loop and use glib mainloop instead of gtk so
1939         X doesn't have to be running.
1940
1941         * python/examples/example-signal-recipient.py: import dbus.glib
1942         to get the main loop and use glib mainloop instead of gtk so
1943         X doesn't have to be running. Import the decorators module
1944         directly.
1945
1946         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1947         didn't pick up on but are needed to build
1948
1949         * configure.in: upped version to 0.35.2
1950
1951         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1952         added Colin Walters' SELinux API rename patch from head 
1953         s/unix sercurity context/selinux security context/
1954
1955 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1956
1957         * python/Makefile.am: dbus_binding.pxd.in should be included 
1958         in EXTRA_DIST not dbus_binding.pxd
1959         fix up $(srcdir) hopefully for the last time
1960
1961         * NEWS: Update to 0.35.1
1962
1963 2005-07-16  Colin Walters  <walters@verbum.org>
1964
1965         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1966         from bus_driver_handle_get_connection_unix_security_context.  Update for
1967         error usage.
1968         (message_handlers): Update for renames.
1969
1970         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1971         _dbus_string_init failure correctly.
1972         (bus_selinux_append_context): Convert SID to context.  Append it
1973         as a byte array.
1974         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1975         hasn't been called.
1976
1977         * bus/selinux.h: Update prototype.
1978
1979         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1980         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1981
1982 2005-07-15  Colin Walters  <walters@verbum.org>
1983
1984         * doc/TODO: Add note about convenience wrappers.
1985
1986 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1987
1988         * NEWS: Update to 0.35
1989
1990 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1991
1992         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1993         so distcheck doesn't fail
1994
1995         * glib/examples/Makefile.am: Add example-service.xml and 
1996         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1997
1998         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1999         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2000
2001         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2002         compiler looks in the right places during distcheck
2003
2004 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2005
2006         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2007         to fail
2008
2009 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2010
2011         * python/examples/example-service.py,
2012         python/examples/example-signal-emitter.py: Fixed up examples
2013         for API changes
2014
2015 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2016
2017         * python/__init__.py: Upped to version (0,42,0) because of
2018         the API change
2019
2020 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2021
2022         * ChangeLog: fix date in last entry
2023
2024         * configure.in, bus/system.conf.in: add the ability to configure 
2025         the system bus user at compiletime with the --with-dbus-user flag
2026         (patch from Kristof Vansant)
2027
2028 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2029
2030         * bus/dispatch.c, test/test-service.c: Add testcase
2031         for sending messages to oneself (TODO item).
2032
2033         * python/service.py (class Object): Swap ordering of bus_name 
2034         and object_path parameters to better support inheritance.
2035
2036         * doc/dbus-tutorial.xml: change Python docs to reflect change
2037         in parameter ordering and fix the inheritance section.
2038
2039         * doc/TODO: remove sending message to oneself TODO item
2040
2041 2005-07-15  Ross Burton  <ross@openedhand.com>
2042
2043         * glib/dbus-gproxy.c:
2044         Fix a leak when calling methods via the proxy.
2045
2046 2005-07-15  Colin Walters  <walters@verbum.org>
2047
2048         * bus/selinux.c (bus_selinux_append_context): Wrap in
2049         HAVE_SELINUX.
2050
2051 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2052
2053         * python/_dbus.py (Bus::remove_signal_receiver):
2054         don't add a callback to the match if none has been passed in
2055         
2056         * python/matchrules.py (SignalMatchTree::remove): if the rule
2057         being matched does not have a callback treat it as a wildcard
2058         fix matching logic
2059
2060         * doc/dbus-tutorial.xml: Add Python tutorial
2061
2062 2005-07-14  Colin Walters  <walters@verbum.org>
2063
2064         * bus/driver.c
2065         (bus_driver_handle_get_connection_unix_security_context): New function.
2066         (message_handlers): Add.
2067
2068         * bus/selinux.c (bus_selinux_append_context): New function; appends
2069         security context to message.
2070
2071         * bus/selinux.h: Prototype.
2072
2073         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2074
2075 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2076
2077         * bus/activation.c: clean up all tabs to be 8 spaces 
2078         (bus_activation_activate_service): make sure we clean up
2079         if activation fails
2080
2081         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2082         (check_shell_fail_service_auto_start): New function
2083         tests to make sure we get fail properly when trying to auto start a service
2084         with a faulty command line
2085         (check_shell_service_success_auto_start): New function tests to make sure
2086         auto started services get the arguments on the command line
2087
2088         * test/test-shell-service.c: Added service for testing auto-starting with 
2089         command line arguments
2090
2091         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2092         test/data/valid-service-files/debug-shell-echo-success.service.in:
2093         Added service files for testing auto-starting with command line arguments
2094
2095         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2096
2097 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2098
2099         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2100         
2101         * dbus/Makefile.am: added new files to build.
2102
2103         * bus/activation.c (bus_activation_activate_service): support
2104         activation commands with parameters.
2105
2106         * test/shell-test.c: added test program for the shell parsing
2107         code.
2108
2109 2005-07-13  David Zeuthen  <davidz@redhat.com>
2110
2111         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2112         64 bit signed and unsigned parameters
2113
2114 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2115
2116         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2117
2118         * python/service.py (class Name): renamed BusName to make it clearer
2119         what the object is for (a name on the bus)
2120
2121         * python/examples/example-service.py,
2122         python/examples/example-signal-emitter.py: change the Name object to
2123         BusName
2124
2125 2005-07-12  Colin Walters  <walters@verbum.org>
2126
2127         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2128
2129         * tools/dbus-launch.c: Include sys/select.h.
2130
2131 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2132         * python/dbus_bindings.pyx.in: removed
2133
2134         * python/dbus_bindings.pyx: Added.
2135         - Fixed some memleaks (patch from 
2136         Sean Meiners <sean.meiners@linspireinc.com>)
2137         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2138         own pxd file (Pyrex definition)
2139         - Broke out glib dependancies into its own pyx module
2140         
2141         * python/dbus_bindings.pdx: Added.
2142         - Defines C class Connection for exporting to other modules
2143
2144         * python/dbus_glib_bindings.pyx: Added.
2145         - New module to handle lowlevel dbus-glib mainloop integration
2146
2147         * python/glib.py: Added.
2148         - Registers the glib mainloop when you import this module
2149
2150         * python/services.py: Removed (renamed to service.py)
2151         
2152         * python/service.py: Added.
2153         - (class Server): renamed Name
2154
2155         * python/__init__.py: Bump ro version (0,41,0)
2156         -don't import the decorators or service module
2157         by default.  These now reside in the dbus.service namespace
2158
2159         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2160         setup function on creation 
2161
2162         * python/examples/example-service.py,
2163         python/examples/example-signal-emitter.py: update examples
2164
2165         * python/examples/gconf-proxy-service.py,
2166         python/examples/gconf-proxy-service2.py: TODO fix these up
2167
2168         * doc/TODO: Addition
2169         - Added a Python Bindings 1.0 section
2170         - added "Add match on args or match on details to match rules"
2171
2172
2173 2005-07-12  Colin Walters  <walters@verbum.org>
2174
2175         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2176         (statemachine-glue.h): 
2177         * glib/examples/Makefile.am (example-service-glue.h) 
2178         (example-signal-emitter-glue.h): 
2179         * glib/Makefile.am (dbus-glib-error-switch.h): 
2180         Add libtool --mode=execute so we use the built library instead
2181         of any installed one.
2182
2183 2005-07-11  Colin Walters  <walters@verbum.org>
2184
2185         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2186         (dbus_g_value_types_init): Remove assertion.
2187         (dbus_g_value_get_g_type, dbus_g_value_open)
2188         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2189         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2190         functions related to DBusGValue.  Now we marshal/demarshal
2191         structures as GValueArray.
2192         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2193         structures.
2194         (signature_iter_to_g_type_array): Don't call
2195         signature_iter_to_g_type_struct.
2196         (signature_iter_to_g_type_struct): Delete.
2197         (dbus_gvalue_to_signature): Delete.
2198         (dbus_gvalue_to_signature): New function with same name as other
2199         one; we can convert structures to signatures.
2200         (demarshal_valuearray): New function.
2201         (get_type_demarshaller): Use it.
2202         (demarshal_recurse): Delete.
2203         (marshal_proxy): New function.
2204         (marshal_map): Warn if we can't determine signature from type.
2205         (marshal_collection_ptrarray): Ditto.
2206         (marshal_collection_array): Ditto.
2207         (get_type_marshaller): Use marshal_valuearray.
2208         (marshal_recurse): Delete.
2209         (_dbus_gvalue_test): Add some tests.
2210
2211         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2212         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2213         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2214         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2215         (dbus_g_value_free): Remove prototypes.
2216
2217         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2218         G_TYPE_VALUE_ARRAY.
2219
2220         * glib/examples/example-service.c:
2221         * glib/examples/example-client.c: Implement GetTuple.
2222
2223         * test/glib/test-dbus-glib.c:
2224         * test/glib/test-service-glib.c:
2225         * test/glib/test-service-glib.xml: Add structure tests.
2226
2227 2005-07-10  Colin Walters  <walters@verbum.org>
2228
2229         * doc/TODO: Knock off some GLib items with this patch.
2230
2231         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2232         (_dbus_gvalue_signals_error): New functions.
2233
2234         * glib/dbus-gvalue-utils.h: Prototype them.
2235
2236         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2237         and change to not output const/retval flags for input args.  All
2238         callers updated.
2239         (invoke_object_method): Refactor to handle return values.  Add
2240         some more comments in various places.  Remove debug g_print.
2241
2242         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2243
2244         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2245         Handle G_TYPE_NONE.
2246         (compute_gsignature): New function; refactored from code from
2247         compute_marshaller and compute_marshaller_name.  Enhance to
2248         handle return values and async ops more cleanly.  Update for
2249         async ops returning NONE instead of BOOLEAN.
2250         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2251         and output appropriate string.
2252         (generate_glue): Handle return value annotation.  Also don't dump
2253         constness flag for input arguments.
2254
2255         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2256         files shared between installed library and utilities.
2257         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2258         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2259         binding tool can access gtype utility functions.
2260
2261         * test/glib/test-service-glib.c: 
2262         * test/glib/test-service-glib.xml: 
2263         * test/glib/test-dbus-glib.c: Add some tests for return values.
2264
2265 2005-07-09  Colin Walters  <walters@verbum.org>
2266
2267         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2268         argument if available, not method.
2269
2270         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2271         (invoke_object_method): First, remove some redundant
2272         GValues (object_value, error_value) in favor of working on
2273         array directly.  Second, rework constness to be less buggy.
2274         Now we iterate directly over the argument metadata instead
2275         of parallel iterating over output signature and metadata.
2276
2277         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2278
2279         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2280         annotation on input args.
2281         
2282 2005-07-09  Colin Walters  <walters@verbum.org>
2283
2284         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2285         Define.
2286
2287         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2288         annotation.
2289
2290         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2291         (method_dir_signature_from_object_info): Handle arg_iterate change.
2292         (write_interface): Ditto.
2293         (lookup_object_info): Don't barf if format_version is > 0.
2294         (invoke_object_method): Handle arg constness.
2295
2296         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2297         (arg_info_new): Create.
2298         (arg_info_unref): Destroy.
2299         (arg_info_get_annotations, arg_info_get_annotation) 
2300         (arg_info_add_annotation): New functions.
2301
2302         * glib/dbus-gidl.h: Prototype them.
2303
2304         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2305         args, disallow them in properties.
2306         (parse_annotation): Handle arg annotations.
2307
2308         * test/glib/test-service-glib.xml: 
2309         * test/glib/test-service-glib.c: Update to make some methods
2310         const.
2311
2312 2005-07-08  Colin Walters  <walters@verbum.org>
2313
2314         * test/glib/test-service-glib.xml: 
2315         * test/glib/test-service-glib.c:
2316         * test/glib/test-dbus-glib.c: Test a{sv}.
2317
2318         * glib/examples/statemachine/statemachine.c:
2319         * glib/examples/statemachine/statemachine-server.c:
2320         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2321         add progress bar, etc.
2322
2323         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2324         needed anymore due to generic array/map marshalling.
2325         (dbus_g_value_types_init): Don't register basic arrays or the
2326         string/string hash.
2327         (dbus_gtype_from_signature_iter): Don't try to recurse into
2328         variants.
2329         (dbus_gtype_to_signature): Check collection/map before type
2330         metadata.
2331         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2332         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2333         generic map creation/append functions instead of hash table
2334         specifically.
2335         (get_type_demarshaller): Handle maps.
2336         (demarshal_collection): Dispatch on collection type to either
2337         demarshal_collection_ptrarray or demarshal_collection_array.
2338         (get_type_marshaller): Handle maps.
2339         (marshal_collection): Dispatch collection type to either
2340         marshal_collection_ptrarray or marshal_collection_array.
2341         (_dbus_gvalue_test): New test.
2342
2343         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2344         (hash_free_from_gtype): Use it to free GValues.
2345         (hashtable_append): New function.
2346         (ptrarray_append): Fix prototype.
2347         (slist_append): Ditto.
2348         (_dbus_gvalue_utils_test): Extend tests.
2349
2350         * glib/dbus-gtype-specialized.c
2351         (dbus_g_type_specialized_init_append): Renamed from
2352         dbus_g_type_specialized_collection_init_append.  Remove const from
2353         value, since we steal it.
2354         (dbus_g_type_specialized_map_append): New function.
2355
2356         * glib/dbus-gtype-specialized.h: Update prototypes.
2357         Add DBusGTypeSpecializedMapAppendFunc.
2358
2359         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2360         _dbus_gvalue_test.
2361         
2362         * glib/dbus-gtest.h: Prototype it.
2363
2364 2005-07-08  Ross Burton  <ross@openedhand.com>
2365
2366         * dbus/dbus-glib.h:
2367         Add DBysGAsyncData for the async bindings.
2368
2369         * glib/dbus-binding-tool-glib.c:
2370         Re-enable the async bindings.
2371
2372         * test/glib/test-dbus-glib.c:
2373         Add a test for the generated async bindings.
2374
2375 2005-07-08  Colin Walters  <walters@verbum.org>
2376
2377         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2378         connection concept.
2379         
2380 2005-07-08  Colin Walters  <walters@verbum.org>
2381         
2382         * tools/Makefile.am: Kill of print-introspect in favor of using
2383         dbus-send --print-reply=literal.
2384
2385         * test/glib/test-service-glib.xml: 
2386         * test/glib/test-service-glib.c (my_object_get_objs): New test
2387         for "ao".
2388
2389         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2390         (main): Test GetObjs.
2391
2392         * glib/examples/statemachine/Makefile.am:
2393         * glib/examples/statemachine/sm-marshal.list:
2394         * glib/examples/statemachine/statemachine-client.c:
2395         * glib/examples/statemachine/statemachine-server.c:
2396         * glib/examples/statemachine/statemachine-server.xml:
2397         * glib/examples/statemachine/statemachine.c:
2398         * glib/examples/statemachine/statemachine.h:
2399         * glib/examples/statemachine/statemachine.xml:
2400
2401         New example.
2402
2403         * glib/examples/example-service.c (main): Move invocation
2404         of dbus_g_object_type_install_info earlier, to emphasize it
2405         should only be done once.
2406
2407         * glib/examples/example-signal-emitter.c (main): Ditto.
2408
2409         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2410
2411         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2412         (dbus_gvalue_marshal): Update prototypes.
2413
2414         * glib/dbus-gvalue.c: Update all marshalling functions to take
2415         const GValue instead of GValue.
2416         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2417         types.
2418         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2419         change.
2420         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2421         Return a newly-allocated string.
2422         (demarshal_proxy, demarshal_object_path, demarshal_object)
2423         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2424         we get the wrong types from message.
2425         (get_type_demarshaller): New function, extracted from
2426         dbus_gvalue_demarshal.
2427         (demarshal_collection): New function, demarshals generic
2428         collection.
2429         (dbus_gvalue_demarshal): Just invoke result of
2430         get_type_demarshaller.  Throw error if we don't have one.
2431         (marshal_garray_basic): Abort on OOM.
2432         (get_type_marshaller): New function, extracted from
2433         dbus_gvalue_marshal.
2434         (collection_marshal_iterator, marshal_collection): New functions;
2435         implements generic marshalling for an iteratable specialized
2436         collection.
2437         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2438
2439         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2440         G_TYPE_STRING.
2441         (ptrarray_value_from_gvalue): Ditto.
2442         (ptrarray_append, ptrarray_free): New functions.
2443         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2444         (slist_append, slist_end_append, slist_free): New functions.
2445         (dbus_g_type_specialized_builtins_init): Add append fuctions
2446         for GPtrArray and GSList.  Register GSList.
2447         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2448
2449         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2450         New.
2451         (dbus_g_type_specialized_collection_init_append)
2452         (dbus_g_type_specialized_collection_append)
2453         (dbus_g_type_specialized_collection_end_append): Prototype.
2454         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2455         end_append_func.
2456
2457         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2458         (dbus_g_type_specialized_collection_append) 
2459         (dbus_g_type_specialized_collection_end_append): New functions.
2460         (dbus_g_type_map_value_iterate): Take const GValue.
2461         (dbus_g_type_collection_value_iterate): Ditto.
2462
2463         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2464         _dbus_gvalue_utils_test.
2465         
2466         * glib/dbus-gtest.h: Prototype it.
2467
2468         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2469         using uninitialized owner_list.
2470         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2471         public API.
2472         (dbus_g_proxy_end_call_internal): Update to use error set
2473         from dbus_gvalue_demarshal instead of setting it here.
2474         (dbus_g_proxy_begin_call): Move return_if_fail here.
2475
2476         * glib/dbus-gobject.c (write_interface): Update for
2477         dbus_gtype_to_signature returning new string.
2478
2479         * configure.in: Add glib/examples/statemachine.
2480
2481 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2482
2483         * configure.in: Add a configure option, --with-console-auth-dir
2484         
2485         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2486         new setting.  Patch from Kay Sievers.
2487
2488 2005-07-06  Colin Walters  <walters@verbum.org>
2489
2490         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2491         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2492         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2493         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2494         Delete in favor of dbus_g_proxy_begin_call and
2495         dbus_g_proxy_cancel_call.
2496         (DBusGProxyCall, DBusGProxyCallNotify): New.
2497         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2498         data, and destroy function.  This replaces
2499         dbus_g_pending_call_set_notify.
2500         (dbus_g_proxy_cancel_call): Prototype.
2501         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2502
2503         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2504         pending_calls map.
2505         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2506         internal proxy for calls to the bus. Remove
2507         pending_nameowner_calls, now the internal proxy keeps track.
2508         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2509         pending_nameowner_calls.
2510         (got_name_owner_cb): Update prototype, and use
2511         dbus_g_proxy_end_call.
2512         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2513         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2514         favor of using internal proxy.
2515         (dbus_g_proxy_manager_unregister): Update to use
2516         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2517         (dbus_g_proxy_init): Initialize pending calls map.
2518         (dbus_g_proxy_constructor): New.
2519         (dbus_g_proxy_class_init): Add get/set property functions,
2520         constructor, and add NAME, PATH, and INTERFACE properties.
2521         (cancel_pending_call): New function.
2522         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2523         cancel them.
2524         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2525         (GPendingNotifyClosure): New structure.
2526         (d_pending_call_notify, d_pending_call_free): Moved here from
2527         dbus-glib.c.
2528         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2529         ordering.
2530         (manager_begin_bus_call): New internal function for talking to
2531         internal bus proxy.
2532         (dbus_g_proxy_new): Construct object using GObjet properties.
2533         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2534         Create closure of same, and insert call into map of pending calls.
2535         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2536         call.  Look up pending call in current set.  Remove it when we've
2537         completed.
2538         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2539         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2540         and destroy function directly.
2541         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2542         (dbus_g_proxy_call): Invoke with NULL callback.
2543         (dbus_g_proxy_cancel_call): New function, replaces
2544         dbus_g_pending_call_cancel.
2545
2546         * glib/dbus-gparser.c (validate_signature): Fix call to
2547         dbus_set_g_error.
2548
2549         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2550         New quark for attaching metadata to GType.
2551         (info_hash): Delete.
2552         (lookup_object_info): Look up using quark.
2553         (dbus_g_object_type_install_info): Check that a type is classed,
2554         not that it's an object.  Also just install type data using quark
2555         instead of using global hash.
2556
2557         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2558         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2559         (GPendingNotifyClosure): Delete.
2560         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2561         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2562
2563         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2564         client method generation until we can fix it...
2565         
2566         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2567         (load_from_service_thread_func): Ditto.
2568
2569         * tools/dbus-names-model.c (struct NamesModel): Hold
2570         DBusGProxyCall.
2571         (have_names_notify): Update prototype, use
2572         dbus_g_proxy_cancel_call.
2573         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2574
2575         * tools/dbus-monitor.c (filter_func): Update for print_message
2576         API change.
2577
2578         * test/glib/test-dbus-glib.c: Add more tests for async
2579         invocations.  Update many begin_call/end_call pairs to just use
2580         dbus_g_proxy_call.
2581
2582         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2583         allows us to dump print-introspect.c.
2584
2585         * tools/dbus-print-message.h (print_message): Add literal argument
2586         to print_message which is intended to allow printing arguments without
2587         metadata like "string=".
2588
2589         * tools/dbus-print-message.c (print_iter): Add literal argument.
2590         (print_message): Allow printing string messages literally.
2591
2592 2005-07-05  Colin Walters  <walters@verbum.org>
2593
2594         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2595         Remove value refcount leak, original patch from Jorn Baayen
2596         <jorn@openedhand.com>.  Also remove useless extra value in favor
2597         of prepending to value array directly.
2598
2599 2005-07-02  Colin Walters  <walters@verbum.org>
2600
2601         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2602
2603 2005-07-01  Colin Walters  <walters@verbum.org>
2604
2605         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2606         
2607         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2608         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2609         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2610         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2611
2612 2005-06-30  Colin Walters  <walters@verbum.org>
2613
2614         * test/glib/test-dbus-glib.c:
2615         * test/glib/test-service-glib.c:
2616         * test/glib/test-service-glib.xml: Update tests for new error
2617         setting bits, also add async tests (patch from Ross Burton).
2618
2619         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2620         DBUS_GLIB_THREADS_LIBS.
2621
2622         * glib/dbus-gproxy.c (get_name_owner)
2623         (dbus_g_pending_call_end_valist): Ditto.
2624
2625         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2626         domain (GQuark) to DBusGErrorInfo.  
2627         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2628         quark in error_metadata.  Take message interface as default
2629         error message interface.
2630         (gerror_to_dbus_error_message): Pass message interface.
2631         (dbus_set_g_error): Resurrected.
2632         (dbus_g_error_info_free): New function.
2633         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2634         of _peek to actually create the object class if it hasn't been
2635         created yet.
2636         (dbus_g_error_domain_register): New function.
2637
2638         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2639
2640         * glib/dbus-gparser.c (validate_signature): Ditto.
2641
2642         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2643         (dbus_g_error_domain_register): Prototype.
2644
2645         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2646         Update tests.
2647
2648 2005-06-29  Colin Walters  <walters@verbum.org>
2649
2650         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2651         DBUS_TYPE_G_OBJECT_PATH.
2652
2653         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2654         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2655         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2656         (dbus_g_object_path_get_g_type): New function.
2657         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2658         to DBUS_TYPE_G_OBJECT_PATH by default.
2659         (demarshal_proxy): Remove unused name variable.
2660         (demarshal_object_path, marshal_object_path): New functions.
2661         (demarshal_proxy_array, marshal_proxy_array): Delete.
2662         
2663         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2664         DBUS_TYPE_G_OBJECT_PATH to char *.
2665         (dbus_g_type_get_lookup_function): Map builtin
2666         DBUS_TYPE_G_OBJECT_PATH.
2667
2668         * test/glib/test-dbus-glib.c
2669         * test/glib/test-service-glib.c (my_object_objpath): 
2670         Adapt tests to new object path marshalling.
2671
2672 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2673
2674         * configure.in: force check for Python >= 2.4
2675
2676 2005-06-29  Colin Walters  <walters@verbum.org>
2677         
2678         Patch from Ross Burton <ross@openedhand.com>
2679         
2680         * glib/dbus-gobject.c (invoke_object_method): Unset object
2681         value in all cases, not only in async case.
2682
2683 2005-06-29  Colin Walters  <walters@verbum.org>
2684
2685         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2686         name_call for keeping track of any outgoing GetNameOwner call.
2687         Also add for_owner and associated.
2688         (struct _DBusGProxyManager): Add owner_names, which is hash table
2689         that maps a base name to a list of names it owns (that we're
2690         interested in).  Add pending_nameowner_calls which is a list of
2691         all outstanding GetNameOwner; avoids us having to iterate over
2692         every proxy.  Add unassociated_proxies which keeps track of name
2693         proxies with no associated name owner.
2694         (dbus_g_proxy_manager_unref): Destroy owner_names.
2695         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2696         name refcounts.
2697         (find_name_in_info, name_owner_foreach)
2698         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2699         (dbus_g_proxy_manager_monitor_name_owner)
2700         (dbus_g_proxy_manager_unmonitor_name_owner)
2701         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2702         New functions; they manipulate the owner_names mapping.
2703         (got_name_owner_cb): New function.
2704         (get_name_owner): New function, extracted from
2705         dbus_g_proxy_new_for_name_owner.
2706         (dbus_g_proxy_manager_register): For now we need to keep track of
2707         all NameOwnerChanged.  Also if the proxy is for a name, if we
2708         don't already know the name owner, queue a new GetNameOwner
2709         request and add it to our list of unassociated proxies.  Otherwise
2710         inc the refcount.
2711         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2712         cancel any pending GetNameOwner call, etc.
2713         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2714         the owner_names mapping to look up the current names for the
2715         signal source, and dispatch to any proxies for that name.
2716         (dbus_g_proxy_new): Initialize new members.
2717         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2718         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2719         (dbus_g_pending_call_end_valist): New function, extracted from
2720         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2721         but want to use the GLib infrastructure.  Also note how many
2722         arguments in reply were over.
2723         (dbus_g_pending_call_end): New function, just call
2724         dbus_g_pending_call_end_valist.
2725         (dbus_g_proxy_end_call_internal): Just call
2726         dbus_g_pending_call_end_valist.
2727
2728         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2729         of builtin marshaller for STRING_STRING_STRING.
2730
2731         * test/glib/test-dbus-glib.c: 
2732         * test/glib/test-service-glib.c:
2733         * test/glib/test-service-glib.xml:
2734         Extend tests to cover name proxies, destruction of owner proxies,
2735         etc.
2736         
2737         * glib/examples/example-signal-recipient.c
2738         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2739         
2740         * tools/dbus-send.c (main): Print D-BUS error name in addition
2741         to message.
2742
2743 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2744
2745         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2746         cmessage_function_handler): Patch from 
2747         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2748         by using the Py_GILState_Ensure/Release to synchronize with the
2749         python runtime.
2750         
2751 2005-06-28  Ray Strode  <rstrode@redhat.com>
2752
2753         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2754         babysitter helper process on last unref, bug #2813.
2755
2756 2005-06-27  Colin Walters  <walters@verbum.org>
2757
2758         * test/glib/test-dbus-glib.c: 
2759         * test/glib/test-service-glib.c:
2760         * test/glib/test-service-glib.xml:
2761         Test hash table signal emitting.
2762
2763         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2764         types to their fundamental basis types, since this is what
2765         marshallers operate on.  Also add an entry for VOID__BOXED.
2766         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2767
2768 2005-06-26  Havoc Pennington  <hp@redhat.com>
2769
2770         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2771         from Don Park
2772
2773 2005-06-26  Colin Walters  <walters@verbum.org>
2774
2775         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2776         (dbus_g_error_set): New public function from its ashes; used by
2777         both service-side method implementation and GLib bindings
2778         internals.
2779         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2780         (_dbus_glib_test): Add some tests.
2781
2782         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2783
2784         * test/glib/test-service-glib.c (my_object_throw_error): Use
2785         dbus_g_error_set.
2786
2787         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2788         errors thrown by dbus_g_error_set.
2789
2790         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2791
2792         * glib/dbus-gparser.c (validate_signature): Ditto.
2793
2794         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2795         (dbus_g_proxy_end_call_internal): Ditto.
2796
2797         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2798         converts DBUS_ERROR_x to DBUS_GERROR_x.
2799         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2800
2801         * doc/TODO: Remove error TODO.
2802
2803         * doc/dbus-tutorial.xml: Update with documentation about error
2804         handling.
2805
2806         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2807         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2808         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2809
2810 2005-06-22  Colin Walters  <walters@verbum.org>
2811         
2812         Patch from Ross Burton <ross@openedhand.com>
2813
2814         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2815
2816 2005-06-20  Colin Walters  <walters@verbum.org>
2817
2818         * configure.in: Add glib/examples.
2819
2820         * glib/Makefile.am: Add examples/
2821
2822         * glib/examples/.cvsignore
2823         * glib/examples/Makefile.am
2824         * glib/examples/example-client.c
2825         * glib/examples/example-service.c
2826         * glib/examples/example-service.xml
2827         * glib/examples/example-signal-emitter.c
2828         * glib/examples/example-signal-emitter.xml
2829         * glib/examples/example-signal-recipient.c:
2830         New files; GLib binding examples, ported from
2831         python/examples.
2832
2833 2005-06-20  Colin Walters  <walters@verbum.org>
2834
2835         * dbus/dbus-glib.h: 
2836         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2837         dbus_g_proxy_call.
2838
2839         * glib/dbus-binding-tool-glib.c: 
2840         * doc/dbus-tutorial.xml: 
2841         * test/glib/test-dbus-glib.c: Update for rename.
2842         
2843 2005-06-20  Colin Walters  <walters@verbum.org>
2844
2845         Patch suggested by Ross Burton <ross@openedhand.com>
2846
2847         * glib/dbus-gobject.c (export_signals): Free signal name.
2848         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2849         memory leak.  Add a bit of documentation.
2850         (dbus_g_method_return_error): Free context, and note we do
2851         so.
2852
2853 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2854
2855         * dbus/dbus-glib.h:
2856         * glib/dbus-gobject.c:
2857         * glib/dbus-gproxy.c:
2858         * glib/dbus-gvalue.c: Predeclare structs as 
2859         typedef struct _Something Something instead of 
2860         typedef struct Something Something, so we can 
2861         redeclare the prototypes. Other GNOME libraries 
2862         do this already.
2863
2864 2005-06-17  Colin Walters  <walters@verbum.org>
2865
2866         * tools/dbus-names-model.c (have_names_notify): Fix call
2867         to dbus_g_proxy_end_call.
2868         
2869 2005-06-17  Colin Walters  <walters@verbum.org>
2870
2871         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2872         spew warnings if we get malformed remote signals.
2873
2874         * glib/dbus-gobject.c (propsig_iterate): New function.
2875         (lookup_object_info): New function, extracted from
2876         lookup_object_and_method.
2877         (introspect_properties, introspect_signals): Delete; these
2878         are merged into write_interface.
2879         (write_interface): Write out signals and properties here;
2880         dump the org.gtk.object stuff and use the interface given
2881         in the introspection data blob.  Also fix up property XML.
2882         (lookup_values): New function.
2883         (introspect_interfaces): Gather a mapping from interface to a
2884         list of its methods, signals, and properties, then write out
2885         each interface.
2886         (lookup_object_and_method): Use lookup_object_info.
2887         (struct DBusGSignalClosure): Add interface.
2888         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2889         we can just use the constant data.
2890         (dbus_g_signal_closure_finalize): Don't free signal name.
2891         (signal_emitter_marshaller): Use interface from signal closure.
2892         (export_signals): Only export signals mentioned in introspection
2893         blob.
2894         (dbus_g_connection_register_g_object): Warn if we have no
2895         introspection data for an object.
2896         (funcsig_equal): Remove unused variable.
2897         (dbus_g_object_register_marshaller): Take varargs instead of
2898         list.
2899         (dbus_g_object_register_marshaller_array): New function,
2900         extracted from old dbus_g_object_register_marshaller.
2901
2902         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2903         signals and property data.
2904         (write_quoted_string): New function, extracted from generate_glue.
2905         (generate_glue): Write signals and properties to introspection
2906         blob.
2907
2908         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2909         exported_signals and exported_properties.
2910         (dbus_g_object_register_marshaller): Update prototype.
2911         (dbus_g_object_register_marshaller_array): Prototype.
2912         
2913         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2914
2915         * test/glib/test-service-glib.c: Add new test signals and method
2916         to emit them.
2917
2918         * test/glib/test-service-glib.xml: Add some test signals.
2919
2920         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2921         and my-object-marshal.h
2922         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2923         my-object-marshal.c.
2924         (my-object-marshal.c, my-object-marshal.h): Implement.
2925
2926         * test/glib/.cvsignore: Update.
2927
2928         * doc/TODO: Remove two GLib TODO items fixed by this
2929         patch.
2930
2931 2005-06-16  Colin Walters  <walters@verbum.org>
2932
2933         * doc/TODO: Update for GLib bindings.
2934         
2935 2005-06-16  Colin Walters  <walters@verbum.org>
2936
2937         * glib/dbus-binding-tool-glib.c:
2938         * glib/dbus-gobject.c:
2939         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2940         from Ross Burton, for his GLib bindings work.
2941
2942 2005-06-16  Colin Walters  <walters@verbum.org>
2943
2944         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2945         to iterate instead of walking to G_TYPE_INVALID.
2946
2947         Patch based on a patch from Ryan Gammon.
2948
2949 2005-06-16  Colin Walters  <walters@verbum.org>
2950
2951         * bus/bus.c (bus_context_new): Set parser to NULL
2952         after we unref it (Patch from Chris Boscolo, #2174).
2953         
2954 2005-06-16  Colin Walters  <walters@verbum.org>
2955
2956         * python/dbus_bindings.pyx.in: Import size_t,
2957         __int64_t, __uint64_t, and __signed.
2958
2959         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2960         Define cmsg struct, output it.
2961         (_dbus_read_credentials_unix_socket):
2962         Use cmsg struct.
2963         
2964         Patch from Joe Markus Clarke for FreeBSD support.
2965         
2966 2005-06-16  Colin Walters  <walters@verbum.org>
2967
2968         * tools/dbus-send.c (append_array): Use strtok.
2969         (append_dict): New function.
2970         (type_from_name): New function, extracted from main.
2971         (main): Handle sending dicts.
2972
2973         * tools/dbus-print-message.c (print_iter): Print dict
2974         entries.
2975         
2976 2005-06-16  Colin Walters  <walters@verbum.org>
2977
2978         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2979         values as the empty string (#2948).
2980         
2981 2005-06-16  Colin Walters  <walters@verbum.org>
2982
2983         * dbus/Makefile.am:
2984         * mono/doc/Makefile.am:
2985         * test/glib/Makefile.am:
2986
2987         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2988
2989 2005-06-16  Colin Walters  <walters@verbum.org>
2990
2991         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2992         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2993
2994         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2995         Increment pointer after swapping fixed array.  Add assertion
2996         for array length.
2997                 
2998 2005-06-15  Colin Walters  <walters@verbum.org>
2999
3000         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3001         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3002         
3003 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3004
3005         * NEWS: Update to 0.34
3006
3007 2005-06-15  David Zeuthen  <davidz@redhat.com>
3008
3009         * configure.in (LT_CURRENT): Revert back to 1 as the library
3010         hasn't changed and we've certainly not committed to protocol
3011         stability yet.  All this does is to break ABI. See commit note
3012         from hp@redhat.com 2005-05-05 for details.
3013         
3014 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3015
3016         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3017         (_dbus_connection_run_builtin_filters): New method
3018         (dbus_connection_dispatch): Run the builtin filters which in turn
3019         runs the peer filter which handles Ping messages.
3020
3021         * doc/TODO: 
3022          - Ping isn't handled: This patch fixes it
3023          
3024          - Add a test case for the Ping message: added TODO item
3025
3026 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3027
3028         * dbus/dbus-message.c:
3029         (dbus_message_has_path): New method
3030         (dbus_message_has_interface): New method
3031         (dbus_message_has_member): New method
3032
3033         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3034         New method
3035
3036         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3037         the keyring directory is private to the user
3038
3039         * doc/TODO:
3040          - The convenience functions in dbus-bus.h should perhaps have
3041          the signatures that they would have if they were autogenerated
3042          stubs. e.g. the acquire service function. We should also evaluate
3043          which of these functions to include, in light of the fact that
3044          GLib/Qt native stubs will probably also exist.: Punted
3045
3046          - add dbus_message_has_path(), maybe has_member/interface:
3047          fixed in this patch
3048
3049          - in dbus-keyring.c, enforce that the keyring dir is not
3050          world readable/writable: Fixed in this patch
3051
3052 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3053
3054         * dbus/dbus-marshal-validate.h: Added a new validation
3055         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3056         out of memory errors when validating signitures
3057
3058         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3059         in places where we previously used DBUS_VALID and a FALSE return 
3060         value to indicate OOM
3061         
3062         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3063         Use a stack to track the number of elements inside containers.  The 
3064         stack values are then used to validate that dict entries have only two
3065         elements within them.
3066         (validate_body_helper): check the reason for failure when validating
3067         varients
3068         
3069         * dbus/dbus-message.c (load_message): use 
3070         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3071         DBUS_VALID and a FALSE return value to indicate OOM
3072
3073         * doc/TODO: remove "- validate dict entry number of fields" as this
3074         patch fixes it
3075
3076 2005-06-14  David Zeuthen  <davidz@redhat.com>
3077
3078         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3079         watches (if applicable) and add new watches
3080
3081         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3082         (main): Setup SIGIO signal handler if using D_NOTIFY
3083
3084         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3085
3086         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3087         (merge_included): Also merge conf_dirs list
3088         (bus_config_parser_unref): Clear conf_dirs list
3089         (include_dir): Add directory to conf_dirs list
3090         (bus_config_parser_get_conf_dirs): New function
3091
3092         * bus/dir-watch.[ch]: New files
3093
3094         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3095
3096         * configure.in: Add checks for D_NOTIFY on Linux
3097
3098 2005-06-14  Colin Walters  <walters@verbum.org>
3099
3100         * glib/dbus-binding-tool-glib.c:
3101         * glib/dbus-gobject.c:
3102         * glib/dbus-gvalue.c: Fix indentation and brace style.
3103         
3104 2005-06-14  Ross Burton <ross@openedhand.com>.
3105
3106         * glib/dbus-glib.h: Make DBusGMethodInvocation
3107         a private structure.  Rearrange prototypes a bit.
3108         
3109         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3110         documentation for first_arg_type.
3111         
3112         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3113         here, add documentation.  Move dbus_g_method_return
3114         and dbus_g_method_return_error into public API
3115         section.
3116
3117 2005-06-14  Colin Walters  <walters@verbum.org>
3118
3119         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3120         Add missing return statements, noticed by Ross Burton.
3121         
3122 2005-06-13  Ross Burton <ross@openedhand.com>.
3123
3124         * glib/dbus-gobject.c: Handle errors on message
3125         demarshalling by sending error message back.
3126         * glib/dbus-gvalue.c: Initialize return variables.
3127
3128 2005-06-13  Colin Walters  <walters@verbum.org>
3129
3130         * glib/Makefile.am: Fix thinko in last patch.
3131
3132 2005-06-13  Colin Walters  <walters@verbum.org>
3133
3134         * glib/Makefile.am: Move dbus-gtype-specialized.c
3135         and dbus-gtype-specialized.h into a _HEADERS variable,
3136         install them.
3137
3138 2005-06-12  Colin Walters  <walters@verbum.org>
3139
3140         Async signals and various bugfixes and testing by
3141         Ross Burton <ross@openedhand.com>.
3142
3143         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3144         (dbus_gvalue_genmarshal_name_from_type)
3145         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3146         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3147         (dbus_g_value_types_init, dbus_gtype_from_signature)
3148         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3149         (dbus_gtypes_from_arg_signature): New function prototypes.
3150         (dbus_gvalue_demarshal): Take context and error arguments.
3151         (dbus_gvalue_demarshal_variant): New function.
3152         (dbus_gvalue_demarshal_message): New function.
3153         (dbus_gvalue_store): Delete.
3154
3155         * glib/dbus-gvalue.c:
3156
3157         File has been almost entirely rewritten; now we special-case
3158         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3159         hash tables correctly, etc.  Full support for recursive values
3160         is not yet complete.
3161
3162         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3163         argument of signal to G_TYPE_POINTER since we now pass a
3164         structure.
3165         (lookup_g_marshaller): Delete in favor of
3166         _dbus_gobject_lookup_marshaller.
3167         (marshal_dbus_message_to_g_marshaller): Use
3168         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3169         to handle remote signal callbacks.
3170         (dbus_g_proxy_new_from_proxy): New function; creates a new
3171         DBusGProxy by copying an existing one.
3172         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3173         (dbus_g_proxy_get_path): New functions.
3174         (dbus_g_proxy_marshal_args_to_message): New function;
3175         factored out of existing code.
3176         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3177         from a varargs array.
3178         (dbus_g_proxy_begin_call_internal): New function.
3179         (dbus_g_proxy_end_call_internal): New function.
3180         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3181         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3182         after collecting args into value array.
3183         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3184         invoke dbus_g_proxy_end_call_internal.
3185         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3186         end_call_internal.
3187         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3188         types.
3189         (array_free_all): New function.
3190         (dbus_g_proxy_add_signal): Take GTypes.
3191
3192         * glib/dbus-gobject.h:
3193         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3194         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3195         Prototype.
3196
3197         * glib/dbus-gobject.c: Add a global marshal_table hash which
3198         stores mappings from type signatures to marshallers.  Change lots
3199         of invocations of dbus_gtype_to_dbus_type to
3200         dbus_gtype_to_signature.
3201         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3202         (introspect_signals): Fix test for query.return_type.
3203         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3204         (invoke_object_method): Many changes.  Handle asynchronous
3205         invocations.  Convert arguments with
3206         dbus_gvalue_demarshal_message.  Handle errors.  Use
3207         DBusSignatureIter instead of strlen on args. Handle all arguments
3208         generically.  Special-case variants.
3209         (dbus_g_method_return, dbus_g_method_return_error): New function.
3210         (DBusGSignalClosure): New structure, closes over signal
3211         information.
3212         (dbus_g_signal_closure_new): New function.
3213         (dbus_g_signal_closure_finalize): New function.
3214         (signal_emitter_marshaller): New function; is special marshaller
3215         which emits signals on bus.
3216         (export_signals): New function; introspects object signals and
3217         connects to them.
3218         (dbus_g_object_type_install_info): Take GType instead of
3219         GObjectClass.
3220         (dbus_g_connection_register_g_object): Invoke export_signals.
3221         (dbus_g_connection_lookup_g_object): New function.
3222         (DBusGFuncSignature) New structure; used for mapping type
3223         signatures to marshallers.
3224         (funcsig_hash): New function; hashes DBusGFuncSignature.
3225         (funcsig_equal): New function; compares DBusGFuncSignature.
3226         (_dbus_gobject_lookup_marshaller): New function.
3227         (dbus_g_object_register_marshaller): New function; used to
3228         register a marshaller at runtime for a particular signature.
3229
3230         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3231
3232         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3233         which notes a server method implementation should be
3234         asynchronous.
3235
3236         * glib/dbus-binding-tool-glib.c
3237         (dbus_binding_tool_output_glib_server): Call
3238         dbus_g_value_types_init.
3239         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3240         variants specially.
3241         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3242         of a lookup function.
3243         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3244         (write_untyped_out_args): New method; write output arguments.
3245         (write_formal_declarations_for_direction): Function for
3246         writing prototypes.
3247         (write_formal_parameters_for_direction): Function for
3248         writing implementations.
3249         (write_typed_args_for_direction): Function for writing
3250         arguments prefixed with GTypes.
3251         (write_async_method_client): Write out async version
3252         of method.
3253
3254         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3255         (dbus_g_type_get_marshal_name): Move mapping from GType
3256         to marshal name into here.
3257         (dbus_g_type_get_c_name): Move into here.
3258         (compute_marshaller): Convert signature to type with
3259         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3260         (compute_marshaller_name): Ditto.
3261         (compute_marshaller): Handle async signal annotations.
3262         (gather_marshallers): Return if we don't have a known
3263         prefix.
3264         (generate_glue): Collect introspection blob here, and
3265         write all of the blob at the end.  This allows an object
3266         with multiple interfaces to work.
3267         Mark async methods in introspection blob.
3268
3269         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3270         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3271         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3272
3273         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3274         avoids people accidentally using DBUS_TYPE_* which should
3275         not be necessary anymore.
3276         Do include dbus-gtype-specialized.h, which are utilities
3277         for GLib container types.
3278         Add various #defines for types such as
3279         DBUS_TYPE_G_BOOLEAN_ARRAY.
3280         (DBusGValueIterator, DBusGValue): Define, not fully used
3281         yet.
3282         (dbus_g_value_get_g_type): Type for recursive value.
3283         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3284         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3285         (dbus_g_value_free): Prototypes.
3286         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3287         (dbus_g_proxy_set_interface): Prototype.
3288         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3289         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3290         types.
3291         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3292         Accessors.
3293         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3294         doing async invocations.
3295         (dbus_g_method_return, dbus_g_method_return_error):
3296         Prototypes.
3297         * doc/dbus-tutorial.xml: Update GLib section.
3298         
3299         * tools/dbus-viewer.c (load_child_nodes): Update
3300         for new invocation type of dbus_g_proxy_end_call.
3301         (load_from_service_thread_func): Ditto.
3302
3303         * tools/print-introspect.c (main): Ditto.
3304
3305         * tools/dbus-names-model.c (have_names_notify)
3306         (names_model_reload, names_model_set_connection)
3307         Use GTypes.
3308
3309         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3310         needed since Python bindings use GLib bindings.
3311
3312         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3313         Add --prefix argument.
3314
3315         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3316         unneeded --ignore-unsupported arg.
3317         
3318         * test/glib/test-service-glib.c: 
3319         * test/glib/test-service-glib.xml:
3320         * test/glib/test-dbus-glib.c: Add many more tests.
3321
3322 2005-06-06  David Zeuthen  <davidz@redhat.com>
3323
3324         * doc/TODO: Add item about need to remove deprecated functions.
3325
3326         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3327
3328         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3329         to repair the ABI which was broken with the last commit.
3330
3331 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3332
3333         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3334         (dbus_connection_disconnect): renamed to dbus_connection_close 
3335         for API symmetry with dbus_connection_open
3336         (_dbus_connection_open_internal): 
3337         s/dbus_connection_disconnect/dbus_connection_close
3338
3339         * dbus/dbus-bus.c (dbus_bus_get):
3340         s/dbus_connection_disconnect/dbus_connection_close
3341
3342         * bus/connection.c (bus_connections_unref, 
3343         bus_connections_setup_connection, bus_connections_expire_incomplete):
3344         s/dbus_connection_disconnect/dbus_connection_close
3345
3346         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3347         kill_client_connection_unchecked, check_hello_connection):
3348         s/dbus_connection_disconnect/dbus_connection_close
3349
3350         * bus/bus.c (new_connection_callback):
3351         s/dbus_connection_disconnect/dbus_connection_close
3352
3353         * tools/dbus-send.c (main):
3354         s/dbus_connection_disconnect/dbus_connection_close
3355
3356         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3357         s/dbus_connection_disconnect/dbus_connection_close
3358         
3359         * test/test-service.c (path_message_func, filter_func):
3360         s/dbus_connection_disconnect/dbus_connection_close
3361         
3362         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3363         
3364 2005-05-25  Colin Walters  <walters@verbum.org>
3365
3366         * dbus/dbus-protocol.h: Move various bus service #defines such
3367           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3368           dbus/dbus-shared.h.
3369         * dbus/dbus-shared.h: Various defines moved here.
3370         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3371
3372 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3373
3374         * python/__init__.py: Python bindings deserve a minor version
3375         update.  Upped to (0, 40, 2)
3376
3377 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3378
3379         * python/decorators.py: add explicitly_pass_message decorator
3380         for passing in the dbus message as keyword for edge case signal
3381         handling
3382
3383         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3384         to conform with what dbus expects for match rules
3385         (SignalMatchRule.execute): add the dbus message as a keyword
3386         if the signal handler has requested it
3387
3388         * python/examples/example/signal-recipient.py: added some more
3389         examples on how to hook up to signals
3390
3391 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3392
3393         * python/decorators.py: import dbus_bindings
3394
3395         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3396         SignalMatchNode): new classes that implement wildcard signal
3397         callback matching using a tree lookup. Heavily modified from a
3398         patch sent by Celso Pinto (fd.o bug #3241)
3399
3400         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3401         use new match classes to handle signals.
3402
3403 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3404         
3405         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3406
3407 2005-05-18  Havoc Pennington  <hp@redhat.com>
3408
3409         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3410         gettext. Not really worth requiring yet perhaps, but any
3411         production quality 1.0 would require it so we should go ahead and
3412         get things set up. We do have a couple token calls to
3413         bindtextdomain in the code already.
3414
3415 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3416
3417         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3418         when using recursive g_main_loops
3419
3420         * python/_dbus.py (class Bus): add the ProxyObjectClass
3421         alias for ProxyObject to make it easier for the Twisted 
3422         networking framework to integrate dbus.
3423
3424         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3425         alias for ProxyMethod to make it easier for the Twisted 
3426         networking framework to integrate dbus. 
3427
3428 2005-05-11  Ross Burton  <ross@openedhand.com>
3429
3430         * glib/dbus-glib-tool.c: Add --prefix argument.
3431         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3432         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3433         Add prefix argument.
3434         (generate_glue): Pass prefix argument down.
3435         (dbus_binding_tool_output_glib_server): Pass prefix to
3436         glib-genmarshal.
3437         
3438 2005-05-11  Colin Walters  <walters@verbum.org>
3439
3440         * tools/dbus-send.c (append_array): New function.
3441         (append_arg): Broken out from main.
3442         (main): Add cheesy hack to send arrays and variants.
3443         (usage): Update.
3444         * tools/dbus-print-message.c (print_iter): Broken out
3445         from main.
3446
3447 2005-05-11  Colin Walters  <walters@verbum.org>
3448
3449         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3450         New function, returns signature string for signature iter.
3451         * dbus/dbus-signature.h: Prototype it.
3452         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3453         New function, returns signature string for message iter.
3454         (dbus_message_iter_get_array_len): New function, returns
3455         length of array.
3456         (dbus_message_iter_get_fixed_array): Fix assertion; this
3457         function should be used when the iter is pointing to the
3458         contents of an array
3459         * dbus/dbus-message.h: Prototypes.
3460         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3461         New function; returns length of an array.
3462         * dbus/dbus-marshal-recursive.h: Prototype it.
3463         
3464 2005-05-11  Colin Walters  <walters@verbum.org>
3465
3466         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3467         compilation error.
3468         
3469 2005-05-08  Havoc Pennington  <hp@redhat.com>
3470
3471         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3472         daemon's pid, not the parent's pid, to the file descriptor.
3473         Reported by Taj Morton.
3474
3475 2005-05-05  Havoc Pennington  <hp@redhat.com>
3476
3477         * configure.in (LT_*): add notes on how the libtool versioning
3478         works to save thinking. Increment soname to indicate protocol
3479         breakage (though really the library interface hasn't changed I
3480         guess)
3481
3482         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3483         verify the GUID received from server matches what we were
3484         expecting, if we had an expectation
3485
3486         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3487         (_dbus_auth_get_guid_from_server): new function
3488         (send_begin): parse the OK args
3489
3490         * doc/dbus-specification.xml: add GUID to the auth protocol
3491
3492 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3493
3494         * Fix my name in previous changelog ;)
3495
3496         * python/proxies.py (ProxyObject.__getattr__): add further patch
3497         from Anthony Baxter to throw an AttributeError when python 
3498         __special__ functions are called instead of marshling them over 
3499         the bus (Bug#1685 comment 3).
3500
3501 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3502
3503         * python/Makefile.am: changed to use pyexecdir for the binding
3504         shared libraries (Bug#2494)
3505
3506         * python/exceptions.py: bring exceptions over from the bindings
3507         so they can be used in applications (Bug#2036)
3508         Make all exceptions derive from DBusException
3509
3510         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3511         of classes so that print obj doesn't throw an exception (Bug #1685)
3512
3513 2005-05-03  Ross Burton  <ross@openedhand.com>
3514
3515         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3516         Return if we get an error during registration.  Set up a
3517         weak reference on object to unregister if object is destroyed.
3518         (unregister_gobject): New function.
3519         
3520 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3521
3522         * python/dbus_bindings.pyx.in: 
3523         - added new type classes for hinting to the marashaler what type 
3524         to send over the wire
3525         - added int16 and uint16 marshalers
3526         - Fixed a bug in the type constants that caused int32 to go out
3527         as uint16 over the wire
3528         * python/dbus.py: split up into different files and renamed _dbus.py
3529         * python/__init__.py, python/_util.py, python/decorators.py, 
3530         python/exceptions.py, python/proxies.py, python/services.py,
3531         python/types.py: new files split off from dbus.py
3532         * python/Makefile.am: Add new files, remove dbus.py and 
3533         install all python files to <python module dir>/dbus
3534         * python/examples/*: Added #!/usr/bin/env python to the top of
3535         every example.  Patch provided by Tatavarty Kalyan
3536
3537 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3538
3539         * NEWS: Update to 0.33
3540
3541 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3542
3543         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3544         method for doing async calls
3545         (_pending_call_notification): New C function for handling pendning call
3546         callbacks
3547         (set_notify): New method for setting pending call notification
3548         
3549         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3550         Async capabilities added to remote method calls
3551         (Sender): class removed
3552         (RemoteService): class removed
3553         (ObjectTree): class removed for now
3554         (RemoteObject): Renamed to ProxyObject
3555         (RemoteMethod): Renamed to ProxyMethod
3556         (method): Decorator added for decorating python methods as dbus methods
3557         (signal): Decorator added for decorating python methods as signal emitters
3558         (ObjectType): Metaclass added for generating introspection data and the
3559         method callback vtable
3560         (Interface): Wrapper class added to wrap objects in a dbus interface
3561         (Object): Uses ObjectType as its metaclass and exports Introspect
3562         of the org.freedesktop.DBus.Introspectable interface
3563         (ValidationException, UnknownMethodException): new exceptions
3564
3565         * python/examples/*: Modified to fit with the new bindings
3566
3567 2005-04-23  Havoc Pennington  <hp@redhat.com>
3568
3569         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3570         reported by Tony Houghton
3571
3572         * test/test-service.c (main): test
3573         dbus_connection_get_object_path_data()
3574
3575         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3576         the exact_match
3577         (_dbus_object_tree_get_user_data_unlocked): new function used by
3578         dbus_connection_get_object_path_data()
3579         (do_register): add assertion test for get_user_data_unlocked
3580         (object_tree_test_iteration): more tests
3581
3582         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3583         new function from Dan Reed to let you get the user data from 
3584         dbus_connection_register_object_path()
3585
3586 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3587
3588         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3589         in numerous places that did not account for the NULL terminator
3590         (signature_from_seed): changed the manual string copy loop to 
3591         just use strcpy instead
3592         make check should now pass
3593
3594 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3595
3596         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3597         so that it allows messages that are not signals to pass in 
3598         NULL as the interface.
3599
3600 2005-04-18  David Zeuthen  <davidz@redhat.com>
3601
3602         * glib/dbus-gmain.c (io_handler_destroy_source): 
3603         (timeout_handler_destroy_source, connection_setup_free): 
3604         Also unref the source to avoid memory leaks.
3605
3606 2005-04-13  David Zeuthen  <davidz@redhat.com>
3607
3608         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3609         more reasonable, yet still totally arbitrary, value :-). 
3610
3611 2005-04-13  David Zeuthen  <davidz@redhat.com>
3612
3613         * doc/TODO: Added an "important for 1.0" item about selinux
3614         allow/deny messages
3615
3616 2005-04-13  David Zeuthen  <davidz@redhat.com>
3617
3618         * bus/selinux.c: Add c-file-style to top of file
3619         (log_audit_callback): Don't free the data here anymore
3620         (bus_selinux_check): Don't take spid and tpid since appending
3621         that to auxdata may OOM.
3622         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3623         to the caller if we are OOM by taking an error object.
3624         (bus_selinux_allows_send): -do-
3625
3626         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3627         and bus_selinux_allows_send
3628
3629         * bus/bus.c (bus_context_check_security_policy): Pass error and
3630         pass on OOM thrown by bus_selinux_allows_send()
3631
3632         * bus/services.c (bus_registry_acquire_service): Pass error and
3633         pass on OOM thrown by bus_selinux_allows_acquire_service()
3634
3635 2005-04-13  Havoc Pennington  <hp@redhat.com>
3636
3637         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3638         message at a time to avoid monopolizing the main loop, bug 
3639         #2953 from Benjamin Otte
3640
3641 2005-04-09  Havoc Pennington  <hp@redhat.com>
3642
3643         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3644         possible overlap, fix from Daniel Reed
3645         (fixup_alignment): fix signedness warnings
3646         (_dbus_string_append_unichar): ditto
3647
3648 2005-04-09  Havoc Pennington  <hp@redhat.com>
3649
3650         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3651
3652         * glib/dbus-glib-tool.c (main): fix warning
3653
3654         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3655
3656         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3657         add a new function that can be used in simple applications that
3658         don't have a main loop and are willing to block
3659
3660 2005-04-05  David Zeuthen  <davidz@redhat.com>
3661
3662         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3663
3664         * glib/dbus-gmain.c:
3665         (io_handler_destroy_source): Remove from list of IO handlers
3666         of the ConnectionSetup object
3667         (timeout_handler_destroy_source): -do- for timeout handlers
3668         (io_handler_source_finalized): Don't remove from list since
3669         we now do that in io_handler_destroy_source(). Renamed from
3670         io_handler_source_destroyed
3671         (timeout_handler_source_destroyed): -do- for timeout handlers
3672         (connection_setup_free): It is now safe to iterate over all
3673         IO and timeout handlers as the _destroy_source removes them
3674         from the list synchronously
3675
3676 2005-03-30  Havoc Pennington  <hp@redhat.com>
3677
3678         * configure.in: change check to gtk 2.4
3679
3680         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3681         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3682         to 2.4
3683
3684 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3685
3686         * News: Update 0.32
3687
3688         * HACKING: Fixed realease instructions.  configure.in should be updated to
3689           the next release by the person who made the last release.
3690
3691 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3692
3693         * python/lvalue_cast_post_process.py - removed.  Patch has been
3694           submitted to Pyrex maintainers that fixes gcc4.0 errors
3695
3696         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3697
3698 2005-03-24  Daniel Reed  <n@ml.org>
3699
3700         * tools/Makefile.am: Make print-introspect and
3701         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3702
3703 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3704
3705         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3706
3707         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3708           had in Red Hat packages for a while but for some reason never 
3709           got merged upstream
3710           (_dbus_is_a_number): New checks if a string
3711           can be converted to a number and does the conversion if it can
3712           (_dbus_user_database_lookup): Add check to see if the given username
3713           is a udi.  This allows udi's to be used instead of usernames in the
3714           config file.
3715           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3716           is a gdi.  This allows gdi's to be used instead of groupnames in the
3717           config file.
3718
3719 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3720
3721         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3722           code so that it compiles with gcc4.0
3723
3724         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3725           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3726           results back to dbus_binding.c
3727
3728 2005-03-20  Colin Walters  <walters@verbum.org>
3729
3730         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3731
3732         * configure.in: Require GTK+ 2.6.
3733         
3734 2005-03-20  Colin Walters  <walters@verbum.org>
3735
3736         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3737
3738 2005-03-17  Tom Parker  <palfrey@tevp.net>
3739
3740         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3741         print DBUS_UID_UNSET; instead print passed username.  Also
3742         be sure to actually use gid looked up in cache.
3743         
3744         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3745         for DBUS_GID_UNSET and groupname.
3746
3747 2005-03-17  Colin Walters  <walters@verbum.org>
3748
3749         * bus/print-introspect.c: Move to tools/.
3750         * bus/run-with-tmp-session-bus.sh: Ditto.
3751         
3752         * glib/Makefile.am (dbus-glib-bindings.h): Move
3753         generation to tools/Makefile.am.
3754
3755         * test/glib/run-test.sh: Update to handle move
3756         of run-with-tmp-session-bus.sh.
3757
3758         * test/glib/test-service-glib.c: Update to handle
3759         move of dbus-glib-bindings.h.
3760
3761         * tools/print-introspect.c: Moved here
3762         from bus/, and ported to GLib bindings.
3763
3764         * tools/run-with-tmp-session-bus.sh: Moved here
3765         from bus/.
3766
3767         * tools/Makefile.am: Generate dbus-glib-bindings.h
3768         and dbus-bus-introspect.xml here.
3769
3770         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3771         Update.
3772
3773 2005-03-17  Colin Walters  <walters@verbum.org>
3774
3775         * bus/driver.c (write_args_for_direction): Use
3776         _dbus_string_get_const_data to retrieve string;
3777         _dbus_string_get_const_data_len doesn't actually return
3778         a NULL-terminated substring.
3779
3780         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3781         (main): Change to use org_freedesktop_DBus_request_name
3782         instead of using g_proxy_begin_call/end_call.
3783
3784 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3785
3786         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3787         generating the finalizer.  Fixes from Ben Maurer.
3788
3789 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3790
3791         * mono/BusDriver.cs: Update method names: ListServices
3792         becomes ListNames; GetOwner becomes GetNameOwner.
3793
3794         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3795         onto the eval stack when removing the delegate.
3796
3797 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3798
3799         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3800         LT_CURRENT.  Set it to the autoconf variable.
3801                                                                                 
3802         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3803         classes that disconnects the signal handler delegate from the
3804         service object.  Fixes a big leak of proxy objects on the
3805         client side of things.  Patch from Ben Maurer
3806         <bmaurer@ximian.com>
3807
3808 2005-03-12  Colin Walters  <walters@verbum.org>
3809
3810         * bus/driver.c (write_args_for_direction): New function,
3811         parses a type signature into arguments and outputs to
3812         XML.
3813         (bus_driver_handle_introspect): Use it instead of
3814         hardcoding XML for certain signatures.
3815         
3816         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3817         dependency on dbus-daemon.
3818
3819         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3820         argument, pass it to dbus_binding_tool_output_glib_client.
3821
3822         * glib/dbus-binding-tool-glib.c
3823         (generate_client_glue): Protect against multiple inclusion.
3824         (dbus_binding_tool_output_glib_client): Add
3825         G_BEGIN_DECLS/G_END_DECLS.
3826
3827         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3828         Change to just take iface prefix directly.
3829         (write_formal_parameters): Clarify error message.
3830         (check_supported_parameters): New function; checks to see type
3831         signatures of method parameters are supported.
3832         (generate_client_glue): Handle ignore_unsupported flag.
3833         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3834         parameter.
3835
3836         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3837         --ignore-unsupported by default until glib bindings
3838         support arrays.
3839
3840 2005-03-11  Colin Walters  <walters@verbum.org>
3841
3842         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3843         install it.
3844
3845         * bus/print-introspect.c: New file; prints introspection
3846         data for a given name and object path.
3847
3848         * bus/run-with-tmp-session-bus.sh: New file, refactored
3849         from test/glib/run-test.sh.  Creates a temporary session
3850         bus and runs another program.
3851
3852         * test/glib/run-test.sh: Refactor to invoke
3853         run-with-tmp-session-bus.sh.
3854
3855         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3856         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3857         macros instead of hardcoding.
3858
3859         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3860
3861 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3862
3863         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3864         this unref; it doesn't match up evenly in some codepaths.
3865         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3866         this evenly matches with the ref near the top of this function.
3867
3868 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3869
3870         * dbus/dbus-object-tree.c
3871         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3872         and we try to unregister a path that's not registered, still go
3873         through the process of unlocking and don't just return.
3874
3875 2005-03-09  Colin Walters  <walters@verbum.org>
3876
3877         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3878         to this are generated for client-side wrappers.  Invokes a
3879         D-BUS method and returns reply values.  
3880
3881         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3882         function; writes signature string for argument direction.
3883         (write_args_for_direction): Change to pass input values directly
3884         instead of via address, and fix indentation.
3885         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3886         make generated wrappers inlineable.
3887
3888         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3889         note about using dbus_type_is_fixed.
3890
3891         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3892         dbus/dbus-signature.c as dbus_type_is_fixed.
3893
3894         All callers updated.
3895
3896         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3897         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3898
3899         * dbus/dbus-signature.h: Prototype.
3900
3901         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3902         error printf code.
3903
3904         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3905         appropriate instead of just freeing it.
3906         (main): Free returned strings using g_free.
3907
3908         * test/glib/Makefile.am (test-service-glib-glue.h)
3909         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3910
3911         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3912         simply maps a simple D-BUS type to GType.
3913         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3914         GType.
3915         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3916         initialize the value with it.
3917         (dbus_gvalue_binding_type_from_type): Unused, delete.
3918         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3919         various types instead of unmarshalling to value data directly.
3920         Remove can_convert boolean.
3921         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3922         returning directly instead of using can_convert boolean.
3923         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3924         Stores a GValue in a pointer to a value of its corresponding C
3925         type.
3926
3927         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3928         add dbus_gvalue_store.
3929
3930 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3931
3932         Fix a bunch of lifecycle and memory management problems
3933         in the mono bindings.
3934
3935         * mono/Arguments.cs (Arguments): Implement IDisposable
3936
3937         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3938         strictly a static class.
3939
3940         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3941         delegates into this file.
3942         (Connection): Implement IDisposable.
3943         (Dispose): Disconnect the connection and set the raw connection
3944         pointer to IntPtr.Zero.
3945         (~Connection): Call Dispose().
3946         (RegisterObjectPath): Added.  Manages the registration of object
3947         paths so we can cleanly disconnect them at dispose/finalize time.
3948         (UnregisterObjectPath): Ditto.
3949         (set_RawConnection): Unregister all of the object paths when
3950         changing the underlying DBusConnection.  Add them back onto the
3951         new connection, if any.
3952
3953         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3954         more unmanaged resources anymore, so it's not necessary.  Move all
3955         the DBusObjectPathVTable stuff out of here.
3956         (Handler): Save references to our delegates so that they don't get
3957         finalized.  Call Connection.RegisterObjectPath() instead of
3958         dbus_connection_register_object_path() directly.
3959         (Message_Called): Dispose the message after we're finished with
3960         it.
3961
3962         * mono/Message.cs (Message): Implement IDisposable.
3963         (Dispose): Dispose the Arguments, and set the RawMessage to
3964         IntPtr.Zero.
3965         (SendWithReplyAndBlock): We own the ref to the reply that comes
3966         back from dbus_connection_send_with_reply_and_block() so add a
3967         comment about that and unref it after we've constructed a managed
3968         MethodReturn class around it.  Fixes a big, big leak.
3969
3970         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3971         method.
3972         (BuildSignalHandler): After we've sent the Signal message, dispose
3973         of it.
3974         (BuildMethod): Dispose of the method call and reply messages after
3975         we've sent the message and extracted the data we want from the
3976         reply.
3977
3978         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3979         anymore.
3980         (Service_FilterCalled): Dispose of the message after we're
3981         finished with it.
3982
3983 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3984
3985         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3986         After we attach our pending call to the connection, unref
3987         it.  Fixes a leak.
3988  
3989         * mono/Connection.cs (set_RawConnection): Disconnect our
3990         filter and match callbacks from the old connection and
3991         reconnect them to the new connection, if any.
3992
3993         * mono/DBusType/Array.cs: "Code" is a static member, so
3994         don't use "this" to refer to it.  Fix for stricter checking
3995         in Mono 1.1.4.
3996  
3997         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3998         object path that we pass into unmanaged code.
3999  
4000         * mono/DBusType/String.cs (Append): Don't leak the string
4001         that we pass into unmanged code.
4002
4003 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4004         * NEWS: Update for 0.31
4005
4006         * configure.in: Release 0.31
4007         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4008
4009         * qt/Makefile.am: fixed build
4010
4011         * dbus/Makefile.am: soname bump for libdbus
4012
4013         * glib/Makefile.am: soname bump for libdbus-glib
4014
4015 2005-03-05  Havoc Pennington  <hp@redhat.com>
4016
4017         * dbus/dbus-sysdeps.c:
4018         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4019         value
4020         (_dbus_generate_random_bytes_buffer): fix return value
4021
4022         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4023         checks actually work, from Tom Parker <fdo@tevp.net>
4024
4025 2005-03-01  Colin Walters  <walters@verbum.org>
4026
4027         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4028         functions copied from dbus-glib-tool.c.
4029         (main): Convert lots of error code to use them.
4030         Also add some testing for introspection bits.
4031
4032 2005-03-01  Colin Walters  <walters@verbum.org>
4033         
4034         * doc/TODO: Remove introspection signature TODO.
4035
4036 2005-02-27  Colin Walters  <walters@verbum.org>
4037
4038         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4039         Change return value to const char * instead of int so we can do
4040         full signatures.
4041         (struct PropertyInfo, struct ArgInfo): Store char *.
4042         (property_info_new, arg_info_new): Update parameters, strdup.
4043         (property_info_unref, arg_info_unref): Free.
4044
4045         * glib/dbus-gidl.h: Update prototypes.
4046
4047         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4048         (validate_signature): New function, just validates signature and
4049         sets GError.
4050         (parse_property, parse_arg): Invoke validate_signature.  Store
4051         signature instead of just type code.
4052
4053         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4054         function to return a primary type for a signature, dropping
4055         information about types in container types.
4056         (dbus_gvalue_genmarshal_name_from_type)
4057         (dbus_gvalue_binding_type_from_type)
4058         (dbus_gvalue_ctype_from_type): Update to take full signature
4059          instead of type code.
4060         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4061
4062         * glib/dbus-gvalue.h: Update prototypes for above.
4063
4064         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4065         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4066         (introspect_properties, introspect_signals, write_interface):
4067         Update to handle signatures, and remove usage of
4068         _dbus_gutils_type_to_string.
4069         (handle_introspect): Print out type codes instead of e.g. "string"
4070         in hardcoded introspection XML; also use x_AS_STRING constants
4071         instead of hardcoding in string.
4072
4073         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4074         to string.  Remove usage of _dbus_gutils_type_to_string.
4075
4076         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4077
4078         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4079         deletion.
4080         
4081         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4082         (compute_marshaller_name, generate_glue): Handle signature change
4083         to string.
4084         (write_formal_parameters, write_args_for_direction): Ditto, and
4085         remove FIXME.
4086
4087         * tools/dbus-tree-view.c (type_to_string): Delete.
4088         (info_set_func_text): Update to print full signatures.
4089
4090         * test/glib/test-service-glib.xml: Change types to new
4091         introspection format.
4092
4093 2005-02-26  Havoc Pennington  <hp@redhat.com>
4094
4095         * doc/TODO: remove the "guid" item
4096
4097         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4098         (with_bus_thread_func): use open_private
4099
4100         * dbus/dbus-connection.c (dbus_connection_open_private): new
4101         function that works like the old dbus_connection_open()
4102         (dbus_connection_open): now returns an existing connection if
4103         possible
4104
4105         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4106         through the GUID to the transport
4107
4108         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4109         GUID in hex-encoded form.
4110
4111         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4112         pass GUID argument in to the transport
4113
4114         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4115         guid argument
4116
4117         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4118
4119         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4120
4121 2005-02-25  Havoc Pennington  <hp@redhat.com>
4122
4123         * doc/dbus-specification.xml: document the GUID thing
4124
4125         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4126         globally unique ID for the server, and put a "guid=hexencoded"
4127         field in the address
4128
4129         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4130
4131         * dbus/dbus-message.c: ditto
4132
4133         * dbus/dbus-dataslot.c: ditto
4134
4135         * dbus/dbus-list.c: ditto
4136
4137         * dbus/dbus-internals.h: wait, just include
4138         dbus-threads-internal.h here
4139         
4140         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4141         use in main library
4142
4143         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4144
4145 2005-02-24  Colin Walters  <walters@verbum.org>
4146
4147         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4148
4149 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4150
4151         * glib/Makefile.am: added dbus-gobject.h to sources list
4152         so distcheck doesn't fail
4153         
4154 2005-02-24  Havoc Pennington  <hp@redhat.com>
4155
4156         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4157         you must disconnect before unref, since locking and other things
4158         are screwed up otherwise. Fix assorted other locking stuff.
4159
4160         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4161         fix compilation
4162
4163         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4164         into a private header and don't export from the library
4165
4166         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4167
4168 2005-02-24  Colin Walters  <walters@verbum.org>
4169         
4170         * dbus/dbus-signature.c: New file; implements various functions
4171         related to type signatures.  Includes an interator for parsing,
4172         validation functions.
4173         (dbus_type_is_basic): Moved here from
4174         dbus-marshal-basic.c:_dbus_type_is_basic.
4175         (dbus_type_is_container): Moved here from
4176         dbus-marshal-basic.c:_dbus_type_is_container.
4177
4178         All callers of _dbus_type_is_container and _dbus_type_is_basic
4179         updated, and include dbus-signature.h.
4180
4181         * dbus/dbus-signature.h: New file; prototypes for the above.
4182
4183         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4184         dbus-signature.h.
4185
4186         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4187         function factored out of _dbus_first_type_in_signature.
4188         (_dbus_first_type_in_signature_c_str): New function; returns first
4189         type code for a type signature character.
4190
4191         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4192         handle function moves.
4193
4194         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4195
4196         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4197         function; skips to next complete type in type signature.
4198         Implemented using previous skip_one_complete_type.  Now
4199         skip_one_complete_type just delegates to
4200         _dbus_type_signature_next.
4201
4202         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4203         to dbus-signature.c
4204         (_dbus_type_is_container): Ditto.
4205
4206         * doc/dbus-specification.xml: Update introspection sample to
4207         use real type signatures.
4208
4209         * dbus/dbus-test.h: Prototype signature test.
4210
4211         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4212         signature tests.
4213
4214         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4215
4216 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4217
4218         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4219         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4220
4221 2005-02-21  Colin Walters  <walters@verbum.org>
4222
4223         * dbus/dbus-test-main.c (main): Take optional specific test
4224         argument.
4225
4226         * dbus/dbus-test.c (run_test): New function, runs a test function
4227         with no data directory.
4228         (run_data_test): Like above, but takes data directory.
4229         (dbus_internal_do_not_use_run_tests): Take
4230         specific test argument.  Replace lots of cut n' paste code
4231         with run_test and run_data_test.
4232
4233         * dbus/dbus-test.h: Update prototype for
4234         dbus_internal_do_not_use_run_tests.
4235
4236 2005-02-20  Havoc Pennington  <hp@redhat.com>
4237
4238         Fix bugs reported by Daniel P. Berrange
4239         
4240         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4241         (protected_change_watch): new function
4242         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4243         (_dbus_server_add_watch): change to work like the
4244         dbus-connection.c equivalents; like those, probably kind of
4245         busted, but should at least mostly work for now
4246         (dbus_server_disconnect): drop the lock if we were already
4247         disconnected, patch from Daniel P. Berrange
4248
4249         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4250         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4251         same stuff
4252
4253         * doc/TODO: todo about unscrewing this mess
4254
4255 2005-02-19  Colin Walters  <walters@verbum.org>
4256
4257         * glib/dbus-binding-tool-glib.c
4258         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4259
4260         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4261         as errno.h and sys/stat.h.
4262         (lose): New function, prints error with
4263         newline and exits.
4264         (lose_gerror): Similar, but takes GError for message.
4265         (main): Add --output argument to specify output file to write to,
4266         instead of always printing to stdout.  In this mode, determine
4267         timestamps on source files to see whether any are newer than the
4268         target file.  If not, exit.  Also convert a number of error
4269         messages to use lose (since it's shorter), and switch to using
4270         g_io_channel_shutdown.
4271
4272 2005-02-19  Havoc Pennington  <hp@redhat.com>
4273
4274         * glib/dbus-gobject.c
4275         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4276
4277         * glib/dbus-glib.c: fix doxygen warnings
4278
4279         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4280         is found on an <arg>
4281
4282 2005-02-17  Colin Walters  <walters@verbum.org>
4283
4284         * glib/dbus-gobject.h: Don't export
4285         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4286         
4287         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4288         (invoke_object_method): Handle it.
4289
4290         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4291         Handle rename.
4292         
4293 2005-02-17  Colin Walters  <walters@verbum.org>
4294
4295         * bus/.cvsignore, doc/.cvsignore
4296         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4297         Update.
4298
4299 2005-02-17  Colin Walters  <walters@verbum.org>
4300         
4301         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4302         Rename to DBUS_SERVICE_DBUS.
4303         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4304         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4305         Change the value from "org.freedesktop.Local"
4306         to "org.freedesktop.DBus.Local".
4307         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4308         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4309         DBUS_INTERFACE_INTROSPECTABLE.
4310         Change the value from "org.freedesktop.Introspectable"
4311         to "org.freedesktop.DBus.Introspectable".
4312         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4313         DBUS_INTERFACE_PROPERTIES.
4314         Change the value from "org.freedesktop.Properties"
4315         to "org.freedesktop.DBus.Properties".
4316         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4317         DBUS_INTERFACE_PEER.
4318         Change the value from "org.freedesktop.Peer"
4319         to "org.freedesktop.DBus.Peer".
4320         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4321         DBUS_INTERFACE_LOCAL.
4322         Change the value from "org.freedesktop.Local"
4323         to "org.freedesktop.DBus.Local".
4324
4325         All other users of those constants have been changed.
4326
4327         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4328
4329         * glib/dbus-gobject.c (handle_introspect): Use constants.
4330
4331         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4332
4333 2005-02-17  Colin Walters  <walters@verbum.org>
4334
4335         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4336         (parse_node, parse_interface, parse_method, parse_signal)
4337         (parse_property, parse_annotation): Lose if we're currently in an
4338         annotation.
4339         (parse_annotation): New function.
4340         (parser_start_element, parser_end_element): Handle annotation.
4341         (parse_method, parse_interface): Remove support for c_name attribute,
4342         switch to annotations.
4343
4344         * glib/dbus-gidl.h (interface_info_get_binding_names)
4345         (method_info_get_binding_names)
4346         (interface_info_get_binding_name, method_info_get_binding_name)
4347         (interface_info_set_binding_name, method_info_set_binding_name):
4348         Remove.
4349         (interface_info_get_annotations, method_info_get_annotations)
4350         (interface_info_get_annotation, method_info_get_annotation)
4351         (interface_info_add_annotation, method_info_add_annotation):
4352         Prototype.
4353
4354         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4355         for "bindings".
4356         (struct MethodInfo): Ditto.
4357         Straightfoward conversion of binding methods into annotation methods
4358         as prototyped.
4359
4360         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4361
4362         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4363
4364         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4365         Use new annotation API.
4366
4367         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4368         annotation element.
4369         
4370         * doc/dbus-specification.xml: Discuss introspection annotations,
4371         include list of well-known annotations.
4372
4373         * test/glib/test-service-glib.xml: Make validate against new DTD.
4374
4375 2005-02-17  Colin Walters  <walters@verbum.org>
4376
4377         This patch is based on initial work from
4378         Paul Kuliniewicz <kuliniew@purdue.edu>.
4379
4380         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4381         initialization of GValue from dbus type to here.
4382         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4383         for the "glib-genmarshal" program from a DBus type.
4384         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4385         into the C name for it we use in the glib bindings.
4386         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4387         glib C type (not GValue).
4388         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4389
4390         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4391         from dbus-gobject.c.
4392
4393         * glib/dbus-gutils.h: Prototype it.
4394
4395         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4396         (marshal_dbus_message_to_g_marshaller): Use new shared function
4397         dbus_glib_marshal_dbus_message_to_gvalue_array.
4398
4399         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4400         Will be changed once we have annotations.
4401
4402         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4403         GStaticRWLock.  Callers updated.
4404         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4405         (string_table_next): New function for iterating over zero-terminated
4406         string value array.
4407         (string_table_lookup): New function; retrieves specific entry in
4408         array.
4409         (get_method_data): New function; look up method data in object data chunk.
4410         (object_error_domain_prefix_from_object_info)
4411         (object_error_code_from_object_info): New functions, but not implemented yet.
4412         (method_interface_from_object_info): New function; retrieve interface name.
4413         (method_name_from_object_info): New function; retrieve method name.
4414         (method_arg_info_from_object_info): New function; retrieve argument data.
4415         (arg_iterate): New function; iterates over serialized argument data.
4416         (method_dir_signature_from_object_info): New function; returns a
4417         GString holding type signature for arguments for just one
4418         direction (input or output).
4419         (method_input_signature_from_object_info)
4420         (method_output_signature_from_object_info): New functions.
4421         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4422         converts dbus message arguments into a GValue array.  Used for both
4423         signal handling and method invocation.
4424         (struct DBusGlibWriteIterfaceData): New utility structure.
4425         (write_interface): New function; generate introspection XML for
4426         an interface.
4427         (introspect_interfaces): New function; gathers all interface->methods,
4428         generates introspection XML for them.
4429         (handle_introspect): Invoke introspect_interfaces.
4430         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4431         (lookup_object_and_method): New function; examines an incoming message
4432         and attempts to match it up (via interface, method name, and argument
4433         signature) with a known object and method.
4434         (gerror_domaincode_to_dbus_error_name): New function; converts a
4435         GError domain and code into a DBus error name.  Needs GError data
4436         added to object introspection to work well.
4437         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4438         GError.
4439         (invoke_object_method): New function to invoke an object method
4440         looked up via lookup_object_and_method.  Parses the incoming
4441         message, turns it into a GValue array, then invokes the marshaller
4442         specified in the DBusGMethodInfo.  Creates a new message with
4443         either return values or error message as appropriate.
4444         (gobject_message_function): Invoke lookup_object_and_method and
4445         invoke_object_method.
4446
4447         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4448         (enum DBusBindingOutputMode): New enum for binding output modes.
4449         (pretty_print): Print binding names.
4450         (dbus_binding_tool_error_quark): GError bits.
4451         (version): Fix typo.
4452         (main): Create GIOChannel for output.  Parse new --mode argument,
4453         possible values are "pretty-print", "glib-server", "glib-client".
4454         Use mode to invoke appropriate function.
4455         
4456         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4457
4458         * glib/dbus-glib-tool.h: New header, just includes GError bits
4459         for now.
4460
4461         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4462         maps binding style to name.
4463         (struct MethodInfo): Ditto.
4464         (get_hash_keys, get_hash_key): Utility function, returns keys for
4465         a GHashTable.
4466         (interface_info_new, method_info_new): Initialize bindings.
4467         (interface_info_unref, method_info_unref): Destroy bindings.
4468         (method_info_get_binding_names, method_info_get_binding_name)
4469         (interface_info_get_binding_names, interface_info_get_binding_name):
4470         Functions for retrieving binding names.
4471         (method_info_set_binding_name, interface_info_set_binding_name):
4472         Functions for setting binding names.
4473
4474         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4475         for glib binding generation.
4476
4477         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4478         and client-side glib glue generation.
4479
4480         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4481         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4482         dbus-glib-tool.h.
4483
4484         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4485         of using GClosureMarshal directly.
4486         (struct DBusGObjectInfo): Add n_infos member.
4487
4488         * test/glib/test-service-glib.xml: New file; contains introspection data
4489         for MyTestObject used in test-service-glib.c.
4490
4491         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4492         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4493         (my_object_uppercase, my_object_many_args): New test methods.
4494         (main): Use dbus_g_object_class_install_info to include generated object
4495         info.
4496
4497         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4498         as well as client-side bindings.
4499
4500         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4501         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4502         using both the dbus_gproxy stuff directly as well as the generated bindings.
4503
4504 2005-02-15  Havoc Pennington  <hp@redhat.com>
4505
4506         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4507         complete a pending call, don't run filters first.
4508
4509         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4510         dbus_pending_call_steal_reply
4511
4512         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4513         _dbus_connection_block_pending_call
4514         (dbus_pending_call_get_reply): change to steal_reply and return a
4515         ref
4516
4517         * dbus/dbus-connection.c
4518         (dbus_connection_send_with_reply_and_block): port to work in terms
4519         of DBusPendingCall
4520         (_dbus_connection_block_pending_call): replace block_for_reply
4521         with this
4522
4523 2005-02-14  Havoc Pennington  <hp@redhat.com>
4524
4525         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4526         properly handle looking up group information by name; fix 
4527         from j@bootlab.org
4528
4529 2005-02-13  Havoc Pennington  <hp@redhat.com>
4530
4531         * dbus/dbus-connection.c (dbus_connection_return_message) 
4532         (dbus_connection_borrow_message): hold dispatch lock while message
4533         is outstanding
4534         (_dbus_connection_block_for_reply): hold dispatch lock while we
4535         block for the reply, so nobody steals our reply
4536         (dbus_connection_pop_message): hold the dispatch lock while we
4537         pluck the message
4538
4539 2005-02-13  Havoc Pennington  <hp@redhat.com>
4540
4541         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4542         (_dbus_connection_release_dispatch)
4543         (_dbus_connection_acquire_io_path)
4544         (_dbus_connection_release_io_path): make the mutex and condvar
4545         control access to the "acquired" flag. Drop the connection lock
4546         while waiting on the condvar. Hopefully these are baby steps in
4547         roughly the right direction.
4548
4549 2005-02-13  Havoc Pennington  <hp@redhat.com>
4550
4551         * dbus/dbus-connection.c: use separate mutexes for the condition
4552         variables; this is some kind of baseline for sanity, but the
4553         condition variables still aren't used correctly afaict
4554
4555 2005-02-13  Havoc Pennington  <hp@redhat.com>
4556
4557         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4558         fix a double-unlock
4559
4560         * dbus/dbus-connection.c
4561         (_dbus_connection_detach_pending_call_unlocked): add this
4562
4563         Initial semi-correct pass through to fix thread locking; there are
4564         still some issues with the condition variable paths I'm pretty
4565         sure
4566         
4567         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4568         lock/unlock calls
4569
4570         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4571         rename to add _unlocked
4572         (struct DBusConnection): move "dispatch_acquired" and
4573         "io_path_acquired" to use only one bit each.
4574         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4575         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4576         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4577         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4578         (_dbus_connection_remove_timeout) 
4579         (_dbus_connection_toggle_timeout): drop lock when calling out to
4580         user functions; done in a hacky/bad way.
4581         (_dbus_connection_send_and_unlock): add a missing unlock
4582         (_dbus_connection_block_for_reply): add a missing unlock
4583
4584         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4585         drop lock in a hacky probably unsafe way to call out to user
4586         function
4587
4588 2005-02-12  Havoc Pennington  <hp@redhat.com>
4589
4590         * tools/dbus-tree-view.c (info_set_func_text): display more
4591         details on args
4592
4593         * bus/driver.c (bus_driver_handle_list_services): list the bus
4594         driver
4595
4596         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4597
4598         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4599         (method_info_get_n_args): new function
4600
4601 2005-02-12  Havoc Pennington  <hp@redhat.com>
4602
4603         * bus/driver.c (bus_driver_handle_introspect): add introspection
4604         for bus driver
4605
4606 2005-02-12  Havoc Pennington  <hp@redhat.com>
4607
4608         * bus/driver.c: put the signature of each bus driver method in the
4609         table of handlers and check it on incoming calls; this isn't
4610         really useful, but going to add introspect support in a minute.
4611
4612 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4613
4614         * mono/Connection.cs: The unpredictability of finalizers in mono
4615         prevents us from deterministically disconnecting the filters from
4616         the Service class's finalizer, so move tracking of filters and
4617         matches here.  Add API for that.
4618
4619         * mono/Service.cs: Remove the code, add code which calls the
4620         methods now on the Connection class.
4621
4622 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4623
4624         * python/dbus.py (class Sender): added to support dbus signals better
4625         (Bus::add_signal_receiver): added expand_args parameter which defaults
4626         to True.  When expand args is True the signal handler will pass the 
4627         message arguments as parameters to the signal handler.  If False
4628         revert to previous behavior where the signal handler must get the
4629         argument list from the message.  This is to help port applications
4630         like HAL that have a tendancy to send variable length argument lists.
4631         self._match_rule_to_receivers is now a dict of dicts.
4632         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4633         removing it from a list
4634         (Bus::_signal_func): change signal handlers so that interface,
4635         signal_name, service, path and message are packed into a Sender
4636         object and that is passed to the handler.  If expand_args is True
4637         extract the args list from the message and append it to the parameter
4638         list
4639         
4640         * python/dbus_bindings.pyx.in (class Signature): added to support 
4641         signiature types
4642         (MessageIter::__init__): changed iteration limit to match D-BUS
4643         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4644         STRUCT and VARIENT type support
4645         (MessageIter::python_value_to_dbus_sig): made recursive to support
4646         recursive types
4647         (MessageIter::append*): added Signature, dict, tuple 
4648         support
4649
4650         * python/examples/example-client.py: added examples of getting tuples
4651         and dicts
4652
4653         * python/examples/example-service.py: added examples of sending tuples
4654         and dicts
4655
4656         * python/examples/example-signal-recipient.py: Fixed to handle new
4657         signal callback format
4658
4659 2005-02-10  Havoc Pennington  <hp@redhat.com>
4660
4661         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4662         (call dbus_g_proxy_add_signal)
4663
4664         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4665         escape the hostname
4666         (_dbus_server_new_for_domain_socket): escape the path
4667
4668         * dbus/dbus-address.c (dbus_address_escape_value): new
4669         (dbus_address_unescape_value): new
4670         (dbus_parse_address): unescape values
4671
4672         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4673
4674         * doc/dbus-specification.xml: explain how to escape values in
4675         addresses
4676
4677 2005-02-10  Havoc Pennington  <hp@redhat.com>
4678
4679         * dbus/dbus-message-factory.c (generate_special): modify test to
4680         avoid using a non-basic dict key
4681
4682         * dbus/dbus-marshal-validate-util.c: add test for the below
4683
4684         * doc/dbus-specification.xml: require that dict keys are a basic
4685         type
4686
4687         * dbus/dbus-marshal-validate.c
4688         (_dbus_validate_signature_with_reason): require that dict key is a
4689         basic type
4690
4691 2005-02-10  Havoc Pennington  <hp@redhat.com>
4692
4693         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4694         change to be _and_unlock instead of _unlocked
4695
4696         * dbus/dbus-connection.c
4697         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4698         have no_update so we can find this bug quickly in future
4699
4700 2005-02-10  Havoc Pennington  <hp@redhat.com>
4701
4702         * dbus/dbus-message-util.c (verify_test_message): tests for string
4703         array
4704
4705         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4706         support for arrays of string/signature/path
4707
4708 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4709
4710         * dbus/dbus-connection.c
4711         (_dbus_connection_queue_received_message_link,
4712         _dbus_connection_message_sent): Add the path to
4713         the verbose output.
4714         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4715         _dbus_connection_send_preallocated_unlocked(), updated the
4716         dispatch status, and unlocks.  Fixes a bug where certain
4717         situations (like a broken pipe) could cause a Disconnect message
4718         to not be sent, tricking the bus into thinking a service was still
4719         there when the process had quit.
4720         (_dbus_connection_send_preallocated): Call
4721         _dbus_connection_send_preallocated_and_unlock().
4722         (_dbus_connection_send_and_unlock): Added.  Calls
4723         _dbus_connection_send_preallocated_and_unlock().
4724         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4725         (dbus_connection_send_with_reply): Update the dispatch status and
4726         unlock.
4727
4728         * mono/Service.cs (~Service): Added.  Removes the filter so that
4729         we don't get unmanaged code calling back into a GCed delegate.
4730         (RemoveFilter); Added.
4731
4732 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4733
4734         * dbus/dbus-message.c (dbus_message_iter_open_container):
4735         - Removed check for iterator type being an array because
4736         get_arg_type does not work with writer iterators
4737         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4738
4739 2005-02-07  Havoc Pennington  <hp@redhat.com>
4740
4741         * doc/dbus-specification.xml: some more language cleanups; add
4742         stuff about how to deal with invalid protocol and extension
4743         points; add _ to allowed chars in auth commands; add EXTENSION_
4744         auth command prefix
4745
4746 2005-02-06  Havoc Pennington  <hp@redhat.com>
4747
4748         * s/expected/required/ in a couple places for clarity
4749
4750 2005-02-07  Colin Walters  <walters@verbum.org>
4751
4752         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4753         sender or proposed_recipient.
4754
4755 2005-02-06  Havoc Pennington  <hp@redhat.com>
4756
4757         * dbus/dbus-message-factory.c (generate_special): more tests
4758
4759         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4760         array length that exceeds the maximum
4761
4762 2005-02-05  Havoc Pennington  <hp@redhat.com>
4763
4764         * dbus/dbus-message-factory.c (generate_special): more test cases,
4765         increasing coverage
4766
4767         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4768         reason why a signature was invalid
4769
4770         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4771         skip the length of the string before we look at it in validation
4772
4773         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4774         equal_substring
4775
4776         * dbus/dbus-message.c (_dbus_message_loader_new): default
4777         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4778
4779 2005-02-05  Havoc Pennington  <hp@redhat.com>
4780
4781         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4782         if the signature of a variant was empty
4783         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4784         struct with no element type)
4785
4786         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4787         mangled messages to break things
4788
4789 2005-02-04  Havoc Pennington  <hp@redhat.com>
4790
4791         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4792         g_quark_try_string() so it actually can return 0
4793         (dbus_g_proxy_connect_signal): ditto
4794
4795 2005-02-04  Havoc Pennington  <hp@redhat.com>
4796
4797         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4798         bogus warning
4799         (tristring_from_message): assert cleanly on null path/interface
4800         (should not be possible though I decided later)
4801         (dbus_g_proxy_dispose): move proxy manager unregistration here
4802         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4803         g_return_if_fail() checks
4804
4805 2005-02-04  Havoc Pennington  <hp@redhat.com>
4806
4807         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4808
4809         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4810         (with some minor changes)
4811
4812         * doc/dbus-specification.xml: add deprecated attribute to
4813         introspection format
4814
4815 2005-01-31  Havoc Pennington  <hp@redhat.com>
4816
4817         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4818         think it's sort of right
4819
4820 2005-01-30  Havoc Pennington  <hp@redhat.com>
4821
4822         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4823
4824 2005-01-30  Havoc Pennington  <hp@redhat.com>
4825
4826         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4827
4828         * autogen.sh: change to autotools 1.9
4829
4830         * glib/dbus-gproxy.c: completely change how signals work
4831         (dbus_g_proxy_add_signal): new function to specify signature of a
4832         signal
4833         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4834         and g_warning if the incoming message has the wrong signature.
4835
4836 2005-01-30  Havoc Pennington  <hp@redhat.com>
4837
4838         * tools/dbus-names-model.c (have_names_notify): fix this
4839
4840         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4841         up the string array handling a bit 
4842
4843 2005-01-30  Havoc Pennington  <hp@redhat.com>
4844
4845         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4846         (dbus_g_pending_call_cancel): new function
4847
4848         * dbus/dbus-glib.h: move GType decls for connection/message here;
4849         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4850         here, just kind of rationalizing how we handle all that
4851
4852         * tools/dbus-names-model.c: new file for a tree model listing the
4853         services on a bus
4854
4855         * tools/dbus-tree-view.c (model_new): use proper typing on the
4856         model rows
4857
4858 2005-01-30  Havoc Pennington  <hp@redhat.com>
4859
4860         * glib/dbus-gmain.c: add a custom GSource back that just checks
4861         whether the message queue has anything in it; otherwise, there are 
4862         cases where we won't see messages in the queue since there was no 
4863         IO visible to the glib main loop
4864
4865         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4866         increase default message timeout to 25 seconds
4867
4868 2005-01-30  Havoc Pennington  <hp@redhat.com>
4869
4870         * test/glib/test-profile.c (no_bus_stop_server): remove the
4871         warning about the g_warning that I just fixed
4872
4873         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4874         custom source, seems to be a lot easier to understand and work
4875         better.
4876
4877 2005-01-30  Havoc Pennington  <hp@redhat.com>
4878
4879         I think this main loop thing is conceptually broken, but here are 
4880         some band aids. I'll maybe rewrite it in a minute.
4881         
4882         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4883         custom GSource, so don't pass it in; confusing
4884         (gsource_server_finalize, gsource_connection_finalize): add
4885         finalize handlers that remove all the watches.  
4886
4887 2005-01-30  Havoc Pennington  <hp@redhat.com>
4888
4889         * glib/dbus-gobject.c (introspect_properties): fix the XML
4890         generated
4891
4892         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4893         which effectively detects the use of freed messages
4894
4895         * glib/dbus-gobject.c (handle_introspect): modify and return the
4896         reply message instead of the incoming message
4897
4898         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4899         gee, maybe it should SEND THE XML instead of just making a string
4900         and freeing it again ;-)
4901
4902         * tools/dbus-print-message.c (print_message): improve printing of
4903         messages
4904
4905         * configure.in: add debug-glib.service to the output
4906
4907 2005-01-30  Havoc Pennington  <hp@redhat.com>
4908
4909         dbus-viewer introspected and displayed the bus driver
4910         
4911         * dbus/dbus-object-tree.c 
4912         (object_tree_test_iteration): add tests for a handler registered on "/"
4913
4914         * dbus/dbus-object-tree.c
4915         (_dbus_decompose_path): fix to handle path "/" properly
4916         (run_decompose_tests): add tests for path decomposition
4917         
4918         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4919         properly
4920
4921         * glib/dbus-gobject.c (handle_introspect): fix quotes
4922
4923         * test/glib/run-test.sh: support launching the bus, then running
4924         dbus-viewer
4925
4926         * test/glib/test-service-glib.c (main): put in a trivial gobject
4927         subclass and register it on the connection
4928
4929         * bus/driver.c (bus_driver_handle_introspect): implement
4930         introspection of the bus driver service
4931
4932         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4933         identifiers, doctype decl
4934
4935         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4936         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4937         returning the service unchanged.
4938         (bus_driver_handle_message): remove old check for reply_serial in
4939         method calls, now the message type deals with that
4940         (bus_driver_handle_message): handle NULL interface
4941
4942         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4943
4944         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4945         -1 for len
4946
4947         * tools/dbus-viewer.c: add support for introspecting a service on
4948         a bus
4949
4950         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4951         (dbus_g_pending_call_unref): add
4952
4953 2005-01-29  Havoc Pennington  <hp@redhat.com>
4954
4955         * tools/dbus-tree-view.c: add support for displaying properties.
4956         (run dbus-viewer with an introspect xml file as arg, then resize
4957         the window so the tree elements show up, not sure what that is)
4958
4959         * glib/dbus-gobject.c (handle_introspect): return
4960         org.freedesktop.Properties and org.freedesktop.Introspectable
4961         interfaces when we are introspected.
4962
4963         * doc/dbus-specification.xml: allow empty interface name when 
4964         Get/Set a property
4965
4966 2005-01-29  Havoc Pennington  <hp@redhat.com>
4967
4968         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4969         though it uses glib, it could be extended for any binding in
4970         principle
4971
4972         * glib/dbus-gobject.c (gobject_message_function): change to the
4973         new way properties work
4974
4975         * dbus/dbus-protocol.h: add the new interfaces
4976
4977         * doc/dbus-specification.xml: document the introspection format,
4978         Introspectable interface, and add an org.freedesktop.Properties
4979         interface.
4980
4981         * glib/dbus-gparser.c: add support for a <property> element
4982
4983         * glib/dbus-gidl.c: add PropertyInfo
4984
4985         * glib/dbus-gobject.c (handle_introspect): put the outermost
4986         <node> outside the signal and property descriptions.
4987         (introspect_properties): export properties as <property> rather
4988         than as method calls
4989
4990 2005-01-28  Havoc Pennington  <hp@redhat.com>
4991
4992         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4993         related to authentication protocol
4994
4995 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4996
4997         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4998                 - BUS_ACTIVATION -> BUS_STARTER
4999                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5000                 - class MessageIter (__init__): Added recursion checking 
5001                 so we throw a nice error instead of just disconnecting from the
5002                 bus.
5003                 (get): Added arg_type parameter for recursion.
5004                 Removed the nil type
5005                 Added signiture type placeholder (not implemented)
5006                 Added struct type placeholder (not implemented)
5007                 Added varient type placeholder (not implemented)
5008                 Commented out dict type for now     
5009                 (get_element_type): renamed from get_array_type
5010                 (get_*): changed to use the dbus_message_iter_get_basic API
5011                 (get_*_array): removed in favor of recursive get_array method
5012                 (get_array): new recursive method which calls get to marshal
5013                 the elements of the array
5014                 (value_to_dbus_sig): New method returns the corrasponding
5015                 dbus signiture to a python value
5016                 (append): Comment out dict handling for now
5017                 Handle lists with the new recursive API
5018                 Comment out None handling for now
5019                 (append_nil): removed
5020                 (append_*): changed to use dbus_message_iter_append_basic API
5021                 (append_*_array): removed in favor of recursive append_array 
5022                 method
5023                 (__str__): Make it easier to print out recursive iterators
5024                 for debugging
5025                 - class Message (__str__): moved type inspection to the
5026                 MessageIter class' __str__ method
5027                 (get_iter): Added an append parameter wich defaults to False
5028                 If True use the new API's to create an append iterator
5029
5030         * python/dbus.py: Update to use new bindings API
5031                 - TYPE_ACTIVATION -> TYPE_STARTER
5032                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5033                 - class ActivationBus -> class StarterBus
5034                 - class RemoteObject (__call__): get an append iterator
5035                 - (_dispatch_dbus_method_call): get an append iterator
5036                 - class Object (emit_signal): get an append iterator
5037
5038         * python/examples/: Fixed up the examples to work with the new API
5039                 
5040 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5041
5042         * configure.in: Bump version up to 0.30.
5043
5044         * HACKING: Add a release item to bump the version number up after 
5045         a release.
5046
5047 2005-01-28  Havoc Pennington  <hp@redhat.com>
5048
5049         * doc/dbus-specification.xml: update to describe 16-bit types and
5050         dict entries
5051
5052         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5053         assertion
5054
5055         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5056         type
5057
5058         * dbus/dbus-marshal-recursive.c: implement
5059
5060 2005-01-27  Havoc Pennington  <hp@redhat.com>
5061
5062         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5063
5064         * configure.in: find the right type for 16 and 32 bit ints as well
5065         as 64
5066
5067         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5068         the 16-bit types so people don't have to stuff them in 32-bit or
5069         byte arrays.
5070
5071 2005-01-27  Havoc Pennington  <hp@redhat.com>
5072
5073         * dbus/dbus-message.c: byteswap the message if you init an
5074         iterator to read/write from it
5075         
5076         * dbus/dbus-marshal-byteswap.c: new file implementing 
5077         _dbus_marshal_byteswap()
5078
5079         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5080
5081 2005-01-26  Havoc Pennington  <hp@redhat.com>
5082         
5083         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5084         build, apparently - nobody noticed?)
5085         
5086 2005-01-26  Havoc Pennington  <hp@redhat.com>
5087
5088         * dbus/dbus-marshal-recursive.h: remove todo comment
5089
5090 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5091
5092         * Land the mono binding changes to conform to the new APIs.
5093
5094         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5095         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5096
5097         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5098         type code as a string.
5099         (InitAppending): Rename dbus_message_append_iter_init() to
5100         dbus_message_iter_init_append().
5101
5102         * mono/BusDriver.cs: Rename ServiceEventHandler to
5103         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5104         Rename ServiceOwnerChanged to NameOwnerChanged.
5105
5106         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5107         underlying C call.
5108
5109         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5110
5111         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5112         dbus_bus_acquire_service() to dbus_bus_request_name().
5113
5114         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5115         of Type.UnderlyingSystemType to get the correct element type for
5116         the array.
5117         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5118         dbus_message_get_{element|arg}_type() instead of
5119         dbus_message_iter_init_array_iterator().
5120         (Append): Replace dbus_message_iter_append_array() with
5121         dbus_message_iter_open_container() and
5122         dbus_message_iter_close_container().
5123
5124         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5125         types have been removed.
5126         
5127         * mono/DBusType/*.cs: Replace calls of
5128         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5129         but specify the type in the DllImport extern declaration.  Ditto
5130         for dbus_message_iter_append_[type]() ->
5131         dbus_message_iter_append_basic().
5132
5133         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5134         NameOwnerChangedHandler.
5135
5136 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5137
5138         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5139                 - get_base_service -> get_unique_name
5140                 - bus_get_base_service -> bus_get_unique_name
5141                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5142                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5143                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5144                 - bus_activate_service -> bus_start_service_by_name
5145                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5146                 - bus_acquire_service -> bus_request_name
5147                 - dbus_bus_acquire_service -> dbus_bus_request_name
5148                 - bus_service_exists -> bus_name_has_owner
5149                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5150
5151         * python/dbus.py: Rename of methods
5152                 - activate_service -> start_service_by_name
5153                 - bus_acquire_service -> bus_request_name
5154                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5155                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5156
5157         
5158 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5159
5160         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5161         signature for the method that can't be found.
5162
5163         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5164         the message has any arguments, we need to call
5165         _dbus_type_reader_get_current_type(), not
5166         _dbus_type_reader_has_next().
5167
5168 2005-01-24  Havoc Pennington  <hp@redhat.com>
5169
5170         * dbus/dbus-message-factory.c: more testing of message validation
5171
5172         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5173         header
5174
5175 2005-01-23  Havoc Pennington  <hp@redhat.com>
5176
5177         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5178         get this all working, not many tests in the framework yet though
5179
5180 2005-01-22  Havoc Pennington  <hp@redhat.com>
5181
5182         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5183         tutorial, based on work from David Wheeler.
5184
5185 2005-01-21  Havoc Pennington  <hp@redhat.com>
5186
5187         * dbus/dbus-bus.c: add more return_if_fail checks
5188
5189         * dbus/dbus-message.c (load_message): have the "no validation"
5190         mode (have to edit the code to toggle the mode for now though)
5191
5192         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5193         skips all validation; I want to use this at least for benchmark
5194         baseline, I'm not sure if it should be a publicly-available switch.
5195
5196 2005-01-21  Havoc Pennington  <hp@redhat.com>
5197
5198         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5199         toplevel doxygen group as the low-level API stuff
5200
5201         * dbus/dbus.h: note that libdbus is the low-level API
5202
5203 2005-01-20  Havoc Pennington  <hp@redhat.com>
5204
5205         * update-dbus-docs.sh: script to update docs on the web site, only
5206         works for me though. neener.
5207
5208 2005-01-20  Havoc Pennington  <hp@redhat.com>
5209
5210         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5211         code can reveal bugs in it
5212
5213 2005-01-20  Havoc Pennington  <hp@redhat.com>
5214
5215         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5216         select() version, patches from Tor Lillqvist
5217
5218 2005-01-20  Havoc Pennington  <hp@redhat.com>
5219
5220         * doc/dbus-tutorial.xml: replace > with &gt;
5221
5222         * bus/services.c (bus_registry_acquire_service): validate the name
5223         and return a better error if it's no good.
5224
5225         * doc/dbus-specification.xml: note NO_AUTO_START change
5226
5227         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5228         from AUTO_START, we're toggling the default
5229
5230         * bus/dispatch.c: adapt the tests to change of auto-start default
5231
5232 2005-01-18  Havoc Pennington  <hp@redhat.com>
5233
5234         * rename dbus-daemon-1 to dbus-daemon throughout
5235
5236 2005-01-18  Havoc Pennington  <hp@redhat.com>
5237
5238         * Throughout, grand renaming to strip out the use of "service",
5239         just say "name" instead (or "bus name" when ambiguous).  Did not
5240         change the internal code of the message bus itself, only the
5241         programmer-facing API and messages.
5242         
5243         * doc/dbus-specification.xml: further update the message bus section
5244         
5245         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5246         in error case
5247
5248 2005-01-17  Havoc Pennington  <hp@redhat.com>
5249
5250         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5251         ever
5252
5253         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5254         "invalid name character" not only non-ASCII
5255
5256         * doc/dbus-specification.xml: further update spec, message bus 
5257         parts are still out-of-date but the marshaling etc. stuff is now
5258         accurate-ish
5259
5260 2005-01-17  Havoc Pennington  <hp@redhat.com>
5261
5262         * doc/dbus-specification.xml: partially update spec
5263
5264 2005-01-17  Havoc Pennington  <hp@redhat.com>
5265
5266         * Throughout, align variant bodies according to the contained
5267         type, rather than always to 8. Should save a fair bit of space in
5268         message headers.
5269         
5270         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5271         fix handling of case where p == end
5272
5273         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5274
5275 2005-01-17  Havoc Pennington  <hp@redhat.com>
5276
5277         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5278
5279         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5280         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5281         are marshaling/unmarshaling a boolean.
5282
5283 2005-01-16  Havoc Pennington  <hp@redhat.com>
5284
5285         This is about it on what can be disabled/deleted from libdbus
5286         easily, back below 150K anyhow. Deeper cuts are more work than 
5287         just turning the code off as I've done here.
5288         
5289         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5290         signed int convenience funcs
5291
5292         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5293         verbose mode
5294
5295         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5296         things out of libdbus
5297
5298         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5299         
5300         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5301         tests-enabled-only, though it should probably be deleted)
5302
5303         * dbus/dbus-message-util.c: same stuff
5304
5305         * dbus/dbus-auth-util.c: same stuff
5306
5307 2005-01-16  Havoc Pennington  <hp@redhat.com>
5308
5309         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5310
5311         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5312         way for stripping down dbus-userdb.c stuff included in libdbus.
5313         Rename _dbus_parse_uid for consistency.
5314
5315 2005-01-16  Havoc Pennington  <hp@redhat.com>
5316
5317         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5318         name the assertion failed in
5319
5320         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5321         (_dbus_return_val_if_fail): assert that the name of the function
5322         containing the check doesn't start with '_', since we only want to 
5323         use checks on public functions
5324         
5325         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5326         checks to assertions
5327
5328         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5329         change checks to asserts for private function
5330
5331         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5332         to asserts for private function
5333
5334         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5335         broken assertion that was breaking make check
5336         (_dbus_type_reader_array_is_empty): remove this rather than fix
5337         it, was only used in assertions
5338
5339 2005-01-16  Havoc Pennington  <hp@redhat.com>
5340
5341         * test/unused-code-gc.py: hacky script to find code that's used
5342         only by the bus (not libdbus) or used only by tests or not used at
5343         all. It has some false alarms, but looks like we can clean up a
5344         lot of size from libdbus.
5345
5346         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5347         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5348         
5349 2005-01-16  Havoc Pennington  <hp@redhat.com>
5350
5351         * Add and fix docs according to Doxygen warnings throughout
5352         source.
5353         
5354         * dbus/dbus-marshal-recursive.c
5355         (_dbus_type_reader_array_is_empty): change this to just call
5356         array_reader_get_array_len() and make it static
5357
5358         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5359         from get_array_type
5360         (dbus_message_iter_init_append): rename from append_iter_init
5361
5362         * dbus/dbus-marshal-recursive.c
5363         (_dbus_type_reader_get_element_type): rename from
5364         _dbus_type_reader_get_array_type
5365
5366 2005-01-15  Havoc Pennington  <hp@redhat.com>
5367
5368         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5369
5370         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5371         when DBUS_DISABLE_ASSERT
5372         (_dbus_marshal_set_basic): be sure we align for the string length
5373
5374         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5375         this look faster
5376
5377         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5378         inline macro version
5379         (_dbus_string_set_byte): provide inline macro version
5380
5381 2005-01-15  Havoc Pennington  <hp@redhat.com>
5382
5383         * Land the new message args API and type system.
5384
5385         This patch is huge, but the public API change is not 
5386         really large. The set of D-BUS types has changed somewhat, 
5387         and the arg "getters" are more geared toward language bindings;
5388         they don't make a copy, etc.
5389
5390         There are also some known issues. See these emails for details
5391         on this huge patch:
5392         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5393         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5394         
5395         * dbus/dbus-marshal-*: all the new stuff
5396
5397         * dbus/dbus-message.c: basically rewritten
5398
5399         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5400         freed blocks to be all non-nul bytes so using freed memory is less
5401         likely to work right
5402
5403         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5404         DBUS_FAIL_MALLOC=N environment variable, so you can do
5405         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5406         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5407         thorough.
5408
5409         * qt/message.cpp: port to the new message args API
5410         (operator<<): use str.utf8() rather than str.unicode()
5411         (pretty sure this is right from the Qt docs?)
5412
5413         * glib/dbus-gvalue.c: port to the new message args API
5414
5415         * bus/dispatch.c, bus/driver.c: port to the new message args API
5416
5417         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5418         "locked" flag to TRUE and align_offset to 0; I guess we never
5419         looked at these anyhow, but seems cleaner.
5420
5421         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5422         move allocation padding macro to this header; use it to implement
5423         (_DBUS_STRING_STATIC): ability to declare a static string.
5424
5425         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5426         change to return TRUE if the interface is not set.
5427
5428         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5429         to dbus-marshal-validate.[hc]
5430
5431         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5432         dbus-internals.c
5433
5434         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5435         to dbus-marshal-*.[hc]
5436
5437         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5438         function here from dbus-marshal.c
5439
5440 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5441
5442         * NEWS: Update for 0.23.
5443
5444         * configure.in: Release 0.23.
5445
5446 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5447
5448         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5449         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5450         behind.
5451
5452         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5453         uninstall"
5454
5455         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5456         is an enum, get the enum's underlying type.  Another mono
5457         1.1.3 fix.
5458
5459 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5460
5461         Patch from Sjoerd Simons <sjoerd@luon.net>
5462
5463         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5464         DESTDIR.  It breaks stuff.
5465
5466 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5467
5468         Patch from Tambet Ingo <tambet@ximian.com>
5469
5470         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5471         calling type.GetElementType().  The code previously depended on
5472         broken Mono behavior, which was fixed in Mono 1.1.3.
5473
5474         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5475         Activator.CreateInstance() so that the class's constructor is
5476         called with the right parameters.
5477
5478 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5479
5480         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5481
5482         * dbus/dbus-connection.c
5483         (_dbus_connection_queue_received_message_link): Call
5484         _dbus_connection_remove_timeout() instead of the _locked()
5485         variant, since it's always called from
5486         _dbus_connection_handle_watch(), which handles the locking.
5487         Removed the _locked() variant since it's no longer used.
5488
5489 2005-01-03  Havoc Pennington  <hp@redhat.com>
5490
5491         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5492         return
5493         
5494 2004-12-26  Havoc Pennington  <hp@redhat.com>
5495
5496         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5497
5498 2005-01-03  Havoc Pennington  <hp@redhat.com>
5499
5500         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5501         floating point
5502
5503         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5504
5505 2005-01-02  Havoc Pennington  <hp@redhat.com>
5506
5507         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5508
5509 2005-01-01  Havoc Pennington  <hp@redhat.com>
5510
5511         * configure.in: add -Wfloat-equal
5512
5513 2005-01-01  Havoc Pennington  <hp@redhat.com>
5514
5515         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5516         for a variety of reasons '==' doesn't do this.
5517
5518 2004-12-31  Havoc Pennington  <hp@redhat.com>
5519
5520         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5521         I keep wishing I had
5522
5523 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5524
5525         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5526
5527 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5528
5529         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5530         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5531         dbus-protocol.h.  Because they are defines and not enums they are not
5532         autogenerated.
5533
5534 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5535
5536         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5537         dbus_bus_activate_service
5538
5539         * python/dbus.py (Bus.activate_service): activate a service on the
5540         bus.
5541
5542 2004-12-24  Havoc Pennington  <hp@redhat.com>
5543
5544         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5545         file format has also changed and I haven't adapted to that yet
5546         
5547         * Makefile.am: load .gcno files from latest gcc
5548
5549 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5550         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5551
5552         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5553         lowlevel binding
5554
5555         * python/dbus.py (get_unix_user): Added binding to 
5556         call dbus_bindings.bus_get_unix_user
5557
5558         * python/extract.py: Modified the proto_pat regex to
5559         handle unsigned long
5560
5561 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5562
5563         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5564         better POSIX compliance.
5565
5566 2004-12-19  Havoc Pennington  <hp@redhat.com>
5567
5568         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5569         (_dbus_string_insert_8_aligned): new functions
5570
5571         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5572
5573 2004-12-18  Havoc Pennington  <hp@redhat.com>
5574
5575         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5576         macro
5577
5578         * dbus/dbus-message.c: fix a comment, and add a still-unused
5579         not-implemented function
5580
5581         * dbus/dbus-marshal.h: fix comment
5582
5583         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5584
5585 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5586
5587         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5588         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5589         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5590         Type.UnderlyingSystemType to get the actual system type
5591         underneath.  This code previously depended on the broken Mono
5592         behavior, which was fixed in 1.1.3.
5593
5594 2004-11-27  Havoc Pennington  <hp@redhat.com>
5595
5596         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5597         are disabled
5598         (_dbus_string_get_const_data): inline when asserts are disabled
5599
5600         * dbus/dbus-message.c: record the _dbus_current_generation of
5601         creation so we can complain if dbus_shutdown() is used improperly.
5602         Do this only if checks are enabled.
5603
5604         * dbus/dbus-connection.c: ditto
5605         
5606 2004-11-26  Havoc Pennington  <hp@redhat.com>
5607
5608         * test/glib/test-profile.c: add with_bus mode to profile echoes
5609         that go through the bus.
5610
5611         * test/glib/run-test.sh: add ability to run test-profile
5612
5613         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5614         config file reload.
5615
5616 2004-11-26  Havoc Pennington  <hp@redhat.com>
5617
5618         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5619         thing was implemented
5620
5621 2004-11-26  Havoc Pennington  <hp@redhat.com>
5622
5623         * test/glib/test-profile.c: tweak a bit, add support for some
5624         made-up minimal malloc overhead with plain sockets, since in 
5625         real life some sort of buffers are unavoidable thus we could 
5626         count them in the theoretical best case
5627
5628 2004-11-26  Havoc Pennington  <hp@redhat.com>
5629
5630         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5631         where I was trying to cache one too many messages
5632
5633 2004-11-26  Havoc Pennington  <hp@redhat.com>
5634
5635         * dbus/dbus-message.c: reimplement message cache as an array which 
5636         makes the cache about twice as fast and saves maybe 1.5% overall
5637
5638 2004-11-26  Havoc Pennington  <hp@redhat.com>
5639
5640         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5641         message cache lock here
5642
5643 2004-11-26  Havoc Pennington  <hp@redhat.com>
5644
5645         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5646         the "char byte_order" next to each other to save 4 bytes
5647         (dbus_message_new_empty_header): reduce preallocation, since the
5648         message cache should achieve a similar effect
5649         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5650         message cache that keeps a few DBusMessage around in a pool,
5651         another 8% speedup or so.
5652
5653         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5654
5655 2004-11-25  Havoc Pennington  <hp@redhat.com>
5656
5657         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5658         to write, without reading or blocking, try it before the poll()
5659         and skip the poll() if nothing remains to write. This is about a
5660         3% speedup in the echo client/server
5661
5662 2004-11-25  Havoc Pennington  <hp@redhat.com>
5663
5664         The primary change here is to always write() once before adding
5665         the write watch, which gives us about a 10% performance increase.
5666         
5667         * dbus/dbus-transport-unix.c: a number of modifications to cope
5668         with removing messages_pending
5669         (check_write_watch): properly handle
5670         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5671         messages_pending stuff
5672         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5673         AUTHENTICATED cases
5674         (unix_handle_watch): after writing, see if the write watch can be
5675         removed
5676         (unix_do_iteration): assert that write_watch/read_watch are
5677         non-NULL rather than testing that they aren't, since they 
5678         aren't allowed to be NULL. check_write_watch() at the end so 
5679         we add the watch if we did not finish writing (e.g. got EAGAIN)
5680
5681         * dbus/dbus-transport-protected.h: remove messages_pending call,
5682         since it resulted in too much inefficient watch adding/removing; 
5683         instead we now require that the transport user does an iteration 
5684         after queueing outgoing messages, and after trying the first
5685         write() we add a write watch if we got EAGAIN or exceeded our 
5686         max bytes to write per iteration setting
5687
5688         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5689         function
5690
5691         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5692         freed and then accessed, valgrind flagged this bug, fix it
5693
5694         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5695         as the last valid field plus 1, where really it is equal to the
5696         last valid field. Corrects some message corruption issues.
5697
5698         * dbus/dbus-mainloop.c: verbosity changes
5699
5700         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5701         instead of aborting in one of the test codepaths
5702
5703         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5704         caused not printing the pid ever again if a verbose was missing
5705         the newline at the end
5706         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5707
5708         * dbus/dbus-connection.c: verbosity changes; 
5709         (dbus_connection_has_messages_to_send): new function
5710         (_dbus_connection_message_sent): no longer call transport->messages_pending
5711         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5712         try to write() immediately, so we can avoid the write watch. This
5713         is the core purpose of this patchset
5714         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5715         dump the outgoing message queue, so nobody will get confused
5716         trying to send them or thinking stuff is pending to be sent
5717
5718         * bus/test.c: verbosity changes
5719
5720         * bus/driver.c: verbosity/assertion changes
5721
5722         * bus/dispatch.c: a bunch of little tweaks to get it working again
5723         because this patchset changes when/where you need to block.
5724
5725 2004-11-23  Havoc Pennington  <hp@redhat.com>
5726
5727         * test/glib/test-profile.c: modify to accept a plain_sockets
5728         argument in which case it will bench plain sockets instead of
5729         libdbus, for comparison purposes.
5730
5731 2004-11-22  Havoc Pennington  <hp@redhat.com>
5732
5733         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5734         threads for more time, so sysprof can get a grip on it.
5735
5736         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5737         pointless variable
5738
5739 2004-11-13  Havoc Pennington  <hp@redhat.com>
5740
5741         * test/glib/test-profile.c: fix this thing up a bit
5742
5743         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5744         preallocation sizes by a fair bit; not sure if this will be an
5745         overall performance win or not, but it does reduce reallocs.
5746
5747         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5748         the test hack that forced constant realloc if asserts are
5749         disabled, so we can profile sanely. Sprinkle in some
5750         _DBUS_UNLIKELY() which are probably pointless, but before I
5751         noticed the real performance problem I put them in.
5752         (_dbus_string_validate_utf8): micro-optimize this thing a little
5753         bit, though callgrind says it didn't help; then special-case
5754         ascii, which did help a lot; then be sure we detect nul bytes as
5755         invalid, which is a bugfix.
5756         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5757         superstition; use memset to nul the padding instead of a manual
5758         loop.
5759         (_dbus_string_get_length): inline this as a
5760         macro; it showed up in the profile because it's used for loop
5761         tests and so forth
5762
5763 2004-11-10  Colin Walters  <walters@verbum.org>
5764
5765         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5766         for extra paranoia.
5767
5768 2004-11-09  Colin Walters  <walters@verbum.org>
5769
5770         * dbus/dbus-string.c (_dbus_string_get_length): New
5771         function, writes DBusString to C buffer.
5772
5773         * dbus/dbus-string.h: Prototype it.
5774
5775         * dbus/dbus-message.c (dbus_message_type_to_string): New
5776         function, converts message type into C string.
5777
5778         * dbus/dbus-message.h: Prototype it.
5779
5780         * bus/selinux.c (bus_selinux_check): Take source pid,
5781         target pid, and audit data.  Pass audit data to
5782         avc_has_perm.
5783         (log_audit_callback): New function, appends extra
5784         audit information.
5785         (bus_selinux_allows_acquire_service): Also take
5786         service name, add it to audit data.
5787         (bus_selinux_allows_send): Also take message
5788         type, interface, method member, error name,
5789         and destination, and add them to audit data.
5790         (log_cb): Initialize func_audit.
5791         
5792         * bus/selinux.h (bus_selinux_allows_acquire_service)
5793         (bus_selinux_allows_send): Update prototypes 
5794
5795         * bus/services.c (bus_registry_acquire_service): Pass
5796         service name to bus_selinux_allows_acquire_service.
5797
5798         * bus/bus.c (bus_context_check_security_policy): Pass
5799         additional audit data.  Move assignment of dest
5800         to its own line.
5801
5802 2004-11-07  Colin Walters  <walters@verbum.org>
5803
5804         * dbus/dbus-transport-unix.c (do_authentication): Always
5805         initialize auth_completed.
5806         
5807 2004-11-07  Colin Walters  <walters@verbum.org>
5808
5809         * bus/bus.c (load_config): Break into three
5810         separate functions: process_config_first_time_only,
5811         process_config_every_time, and process_config_postinit.
5812         (process_config_every_time): Move call of
5813         bus_registry_set_service_context_table into
5814         process_config_postinit.
5815         (process_config_postinit): New function, does
5816         any processing that needs to happen late
5817         in initialization (and also on reload).
5818         (bus_context_new): Instead of calling load_config,
5819         open config parser here and call process_config_first_time_only
5820         and process_config_every_time directly.  Later, after
5821         we have forked but before changing UID,
5822         invoke bus_selinux_full_init, and then call
5823         process_config_postinit.
5824         (bus_context_reload_config): As in bus_context_new,
5825         load parse file inside here, and call process_config_every_time
5826         and process_config_postinit.
5827
5828         * bus/services.h, bus/services.c
5829         (bus_registry_set_service_context_table): Rename
5830         from bus_registry_set_sid_table.  Take string hash from config
5831         parser, and convert them here into SIDs.
5832
5833         * bus/config-parser.c (struct BusConfigParser): Have
5834         config parser only store a mapping of service->context
5835         string.
5836         (merge_service_context_hash): New function.
5837         (merge_included): Merge context string hashes instead
5838         of using bus_selinux_id_table_union.
5839         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5840         simply create a new string hash.
5841         (bus_config_parser_unref): Unref it.
5842         (start_selinux_child): Simply insert strings into hash,
5843         don't call bus_selinux_id_table_copy_over.
5844
5845         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5846         (bus_selinux_id_table_copy_over): Delete.
5847
5848 2004-11-03  Colin Walters  <walters@verbum.org>
5849
5850         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5851         variables.
5852         
5853 2004-11-03  Colin Walters  <walters@verbum.org>
5854
5855         * bus/test-main.c (test_pre_hook): Fix test logic,
5856         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5857
5858 2004-11-02  Colin Walters  <walters@redhat.com>
5859
5860         * bus/selinux.c (bus_selinux_init): Split into two functions,
5861         bus_selinux_pre_init and bus_selinux_post_init.
5862         (bus_selinux_pre_init): Just determine whether SELinux is
5863         enabled.
5864         (bus_selinux_post_init): Do everything else.
5865
5866         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5867         config file, and bus_selinux_post_init after.  This ensures that
5868         we don't lose the policyreload notification thread that
5869         bus_selinux_init created before forking previously.
5870         
5871         * bus/test-main.c (test_pre_hook): Update for split.
5872
5873 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5874
5875         Patch from Johan Fischer <linux@fischaz.com>
5876         
5877         * mono/doc/Makefile.am (install-data-local): Added directory
5878         install for DESTDIR
5879
5880 2004-10-29  Colin Walters  <walters@redhat.com>
5881
5882         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5883         parameter for fd to write pid to.       
5884
5885         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5886         
5887         * bus/bus.c (bus_context_new): Pass print_pid_fd
5888         to _dbus_become_daemon (bug #1720)
5889
5890 2004-10-29  Colin Walters  <walters@redhat.com>
5891
5892         Patch from Ed Catmur <ed@catmur.co.uk>
5893
5894         * mono/doc/Makefile.am (install-data-local): Handle
5895         DESTDIR.
5896
5897 2004-10-29  Colin Walters  <walters@redhat.com>
5898
5899         * bus/.cvsignore, qt/.cvsignore: Update.
5900
5901 2004-10-29  Colin Walters  <walters@redhat.com>
5902
5903         Patch from Kristof Vansant <de_lupus@pandora.be>
5904
5905         * configure.in: Detect Slackware.
5906         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5907         * bus/rc.messagebus.in: New file.
5908
5909 2004-10-29  Colin Walters  <walters@redhat.com>
5910
5911         * tools/dbus-monitor.c (filter_func): Return
5912         DBUS_HANDLER_RESULT_HANDLED in filter function
5913         for now.  See:
5914         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5915
5916 2004-10-29  Colin Walters  <walters@redhat.com>
5917
5918         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5919
5920         * bus/services.c (bus_registry_acquire_service): 
5921         Correctly retrieve service name from DBusString
5922         for printing.
5923
5924 2004-10-29  Colin Walters  <walters@redhat.com>
5925
5926         * dbus/dbus-glib.h: Update documentation to not
5927         refer to internal APIs.
5928
5929 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5930
5931         * mono/Arguments.cs (GetDBusTypeConstructor):
5932         type.UnderlyingSystemType will return "System.Byte" if you do it
5933         on "byte[]", which is not what we want.  So check the type.IsArray
5934         property and use System.Array instead.
5935
5936 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5937
5938         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5939         the DBusUserInfo structure since this is passed into the function.
5940         This would cause a double free when the function that allocated
5941         the structure would try to free it when an error occured.
5942
5943         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5944         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5945         for service activation to avoid 32bit/64bit parallel install issues
5946
5947 2004-10-21  Colin Walters  <walters@verbum.org>
5948
5949         * AUTHORS: Fix my email address, the @gnu.org one
5950         has been bouncing for some time.  Also add J5.
5951         
5952 2004-10-21  Colin Walters  <walters@verbum.org>
5953
5954         * dbus/dbus-transport-unix.c (do_authentication): Return
5955         authentication status to callers.
5956         (unix_handle_watch): If we completed authentication this round,
5957         don't do another read.  Instead wait until the next iteration,
5958         after we've read any pending data in the auth buffer.
5959         (unix_do_iteration): Ditto.
5960         (unix_handle_watch): Updated for new do_authentication prototype.
5961
5962 2004-10-18  Colin Walters  <walters@verbum.org>
5963
5964         * bus/selinux.c (bus_selinux_enabled): Handle
5965         --disable-selinux case.
5966         
5967 2004-10-18  Colin Walters  <walters@verbum.org>
5968
5969         * bus/selinux.h: Add bus_selinux_enabled.
5970         
5971         * bus/selinux.c (bus_selinux_enabled): Implement it.
5972         
5973         * bus/config-parser.c (struct include): Add
5974         if_selinux_enabled member.
5975         (start_busconfig_child): Parse if_selinux_enabled
5976         attribute for include.
5977         (bus_config_parser_content): Handle it.
5978
5979         * bus/session.conf.in, bus/system.conf.in: Add
5980         inclusion of context mapping to default config files;
5981         conditional on SELinux being enabled.
5982         
5983         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5984         
5985         * test/data/invalid-config-files/badselinux-1.conf, 
5986         test/data/invalid-config-files/badselinux-2.conf:
5987         Test files for bad syntax.
5988         
5989 2004-10-17  Colin Walters  <walters@verbum.org>
5990
5991         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5992         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5993         format specifier mismatches.
5994
5995 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5996
5997         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5998         format string.
5999
6000         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6001         pointer (bug #1540, Leonardo Boiko).
6002
6003 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6004
6005         * mono/BusDriver.cs: Changed BusDriver struct to remove
6006         the ServiceCreated and ServiceDeleted events and replace them
6007         with the new ServiceOwnerChanged event.
6008
6009         * mono/example/BusListener.cs: Added a new example program,
6010         which listens for and reports any ServiceOwnerChanged events
6011         on the bus driver.
6012
6013         * mono/example/Makefile.am (DESTDIR): Build changes for the
6014         new BusListener.cs example.
6015
6016 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6017
6018         * bus/signals.c (bus_match_rule_parse): validate the components of
6019         match rules (bug #1439).
6020
6021         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6022
6023 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6024
6025         * doc/dbus-specification.xml: document ServiceOwnerChanged
6026         signal.
6027         
6028         * bus/driver.c, bus/driver.h, bus/services.c: Use
6029         ServiceOwnerChanged signal instead of ServiceCreated and
6030         ServiceDeleted.
6031         
6032         * bus/dispatch.c: update testcase for the new signal.
6033
6034 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6035
6036         Patch from Nat Friedman <nat@novell.com>
6037
6038         * mono/Makefile.am: A number of small build fixes to allow "make
6039         distcheck" to succeed.
6040
6041         * mono/example/Makefile.am: "make distcheck" fixes.
6042
6043         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6044         key in @srcdir@.
6045
6046         * test/Makefile.am: "make distcheck" fixes.
6047
6048 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6049
6050         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6051
6052         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6053
6054         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6055         messages after the first one (bug #1389).
6056         
6057         * bus/dispatch.c (check_double_hello_message): add a test case for
6058         the double hello message bug.
6059         (check_existent_service_activation): fix check of spawning error.
6060         
6061 2004-09-16  David Zeuthen  <david@fubar.dk>
6062
6063         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6064
6065 2004-09-12  David Zeuthen  <david@fubar.dk>
6066
6067         Patch from Kay Sievers <kay.sievers@vrfy.org>
6068
6069         * bus/bus.c (bus_context_new):
6070         * bus/bus.h:
6071         * bus/main.c (usage)
6072         (main):
6073         Add commandline option --nofork to override configuration file
6074         setting.
6075
6076 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6077
6078         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6079         compilers don't like it (bug #974).
6080
6081 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6082
6083         * qt/connection.*: Applied patch by Jérôme Lodewyck
6084         <lodewyck@clipper.ens.fr> to integrate an existing
6085         connection into the Qt eventloop
6086
6087 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6088
6089         * mono/BusDriver.cs: Added.  This is a class for interacting with
6090         the org.freedesktop.DBus service.
6091
6092         * mono/Message.cs: Added a mechanism to expose the message that is
6093         currently being dispatched via the static Message.Current
6094         property.  Added Message.Sender and Message.Destination
6095         properties.
6096
6097         * mono/Handler.cs: Expose the dispatched message via
6098         Message.Current when handling method calls.
6099
6100         * mono/Service.cs: Expose the dispatched message via
6101         Message.Current when handling signal emissions.
6102         
6103         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6104         Connection.BaseService property.
6105
6106 2004-08-28  Havoc Pennington  <hp@redhat.com>
6107
6108         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6109
6110         More fixes from Steve Grubb
6111         
6112         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6113         (_dbus_listen_tcp_socket): fix fd leak
6114
6115         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6116         EINTR to a bit lower in the code
6117
6118 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6119
6120         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6121         TRUE if we are inquiring about the existence of the built-in
6122         org.freedesktop.DBus service.
6123
6124 2004-08-25  John Palmieri  <johnp@redhat.com>
6125         * bus/config-parser.c:
6126         (struct PolicyType): Add POLICY_CONSOLE
6127         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6128         (start_busconfig_child): Sets up console element when
6129         <policy at_console=""> is encountered in a policy file
6130         (append_rule_from_element): Convert console elements to console
6131         rules.
6132
6133         * bus/policy.c: 
6134         (bus_policy_create_client_policy): Add console rules to the client
6135         policy based on if the client is at the console
6136         (bus_policy_append_console_rule): New function for adding a
6137         console rule to a policy
6138         (bus_policy_merge): Handle console rule merging
6139
6140         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6141         where we check for console user files
6142         
6143         * dbus/dbus-sysdeps.c:
6144         (_dbus_file_exists): New function which checks if the given
6145         file exists
6146         (_dbus_user_at_console): New function which does the system
6147         specific process of checking if the user is at the console
6148
6149         * dbus/dbus-userdb.c:
6150         (_dbus_is_console_user): New function converts a UID to user name
6151         and then calls the system specific _dbus_user_at_console to 
6152         see if the user is at the console and therefor a console user
6153
6154 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6155
6156         * bus/config-parser.c (set_limit):
6157         * bus/dbus-daemon-1.1.in:
6158         * test/data/valid-config-files/many-rules.conf: set the
6159         max_match_rules_per_connection limt from the config file. 
6160
6161         * doc/busconfig.dtd: update the DTD.
6162
6163         * bus/driver.c: remove some unused variables.
6164
6165 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6166
6167         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6168         it's been replaced by dbus_g_bus_get
6169
6170 2004-08-23  Colin Walters  <walters@redhat.com>
6171
6172         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6173
6174         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6175
6176         * bus/selinux.c: Create a thread for policy reload notification.
6177         (bus_selinux_get_policy_root): Implement.
6178
6179         * bus/config-parser.c (start_busconfig_child)
6180         (bus_config_parser_content): Support SELinux-root relative
6181         inclusion.
6182
6183         * configure.in <HAVE_SELINUX>: Add -lpthread.
6184         
6185         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6186         (test_post_hook): Move memory checking into here.
6187         (test_pre_hook, test_post_hook): Move SELinux checks in
6188         here, but conditional on a DBUS_TEST_SELINUX environment
6189         variable.  Unfortunately we can't run the SELinux checks
6190         as a normal user, since they won't have any permissions
6191         for /selinux.  So this will have to be tested manually
6192         for now, until we have virtualization for most of
6193         libselinux.
6194         
6195 2004-08-23  Havoc Pennington  <hp@redhat.com>
6196
6197         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6198         drop supplementary groups, suggested by Steve Grubb
6199
6200 2004-08-20  Colin Walters  <walters@redhat.com>
6201
6202         * bus/config-parser.c (start_busconfig_child): Remove some unused
6203         variables.
6204         
6205         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6206         warning.
6207
6208 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6209
6210         * configure.in: If --enable-mono is passed in, if we can't find
6211         mono error out.
6212
6213         * mono/Makefile.am: Use /gacutil to install assemblies into the
6214         GAC and not /root.
6215
6216 2004-08-12  Havoc Pennington  <hp@redhat.com>
6217
6218         * NEWS: update for 0.22
6219
6220         * configure.in: release 0.22
6221
6222 2004-08-11  Colin Walters  <walters@redhat.com>
6223
6224         * tools/dbus-send.c (main, usage): Add --reply-timeout
6225         argument.
6226
6227 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6228
6229         * bus/bus.c (process_config_first_time_only): get rid of an unused
6230         DBusError that was causing a memoy leak (bug #989).
6231
6232         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6233         fix compilation on Solaris/Forte C (bug #974)
6234
6235         * bus/main.c (main): plug two minuscule memleaks.
6236
6237 2004-08-10  Havoc Pennington  <hp@redhat.com>
6238
6239         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6240
6241 2004-08-09  Havoc Pennington  <hp@redhat.com>
6242
6243         * COPYING: switch to Academic Free License version 2.1 instead of
6244         2.0, to resolve complaints about patent termination clause.
6245
6246 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6247
6248         * README: added documentation for the --enable-python 
6249         configure switch.
6250
6251 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6252
6253         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6254         _unref in the SELinux support.
6255
6256         * doc/busconfig.dtd: update DTD for SELinux support.
6257
6258         * bus/config-loader-libxml.c: fix error handler and parser
6259         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6260
6261         * configure.in: remove the warning about libxml2.
6262
6263         * dbus/dbus-bus.c: silence doxygen warning.
6264
6265 2004-07-31  Colin Walters  <walters@redhat.com>
6266
6267         * configure.in: Move #error in SELinux check to its own line.
6268
6269 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6270
6271         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6272         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6273         dbus_error_set.
6274
6275         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6276         broken by the change in the _SET_OOM macros.
6277
6278 2004-07-31  Colin Walters  <walters@redhat.com>
6279
6280         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6281         BUS_SET_OOM.
6282
6283 2004-07-31  Colin Walters  <walters@redhat.com>
6284
6285         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6286         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6287         AC_MSG_CHECKING.
6288
6289 2004-07-24  Havoc Pennington  <hp@redhat.com>
6290
6291         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6292
6293         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6294         functionality
6295
6296         * configure.in: add --enable-selinux
6297         
6298         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6299
6300         * bus/main.c (main): initialize and shut down selinux
6301
6302         * bus/connection.c: store SELinux ID on each connection, to avoid 
6303         repeated getting of the string context and converting it into 
6304         an ID
6305
6306         * bus/bus.c (bus_context_get_policy): new accessor, though it
6307         isn't used
6308         (bus_context_check_security_policy): check whether the security
6309         context of sender connection can send to the security context of
6310         recipient connection
6311
6312         * bus/config-parser.c: add parsing for <selinux> and <associate>
6313         
6314         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6315         implement dbus_connection_get_unix_fd()
6316
6317         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6318         function, used by the selinux stuff
6319         
6320 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6321
6322         * bus/config-loader-libxml.c: complete the implementation of
6323         libxml backend for config file loader. Doesn't work with full OOM
6324         test yet. 
6325         
6326         * configure.in: change error when selecting libxml into a warning.
6327         
6328         * test/data/invalid-config-files: add two non-well-formed XML
6329         files. 
6330         
6331         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6332         
6333         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6334         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6335         be necessary to read all the buffer. (bug #894)
6336
6337         * bus/activation.c (bus_activation_activate_service): fix a
6338         potential assertion failure (bug #896). Small optimization in the
6339         case of auto-activation messages.
6340
6341         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6342         add test case for byte-through-vararg bug (#901). patch by Kimmo
6343         Hämäläinen. 
6344
6345 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6346
6347         * python/dbus.py:
6348         * python/dbus_bindings.pyx.in:
6349         Add dbus.init_gthreads (), allow emit_signal to pass
6350         arguments to the signal.
6351         
6352 2004-07-24  Havoc Pennington  <hp@redhat.com>
6353
6354         * AUTHORS: add some people, not really comprehensively, let me
6355         know if I missed you
6356
6357 2004-07-24  Havoc Pennington  <hp@redhat.com>
6358
6359         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6360         Owen
6361
6362         * test/Makefile.am (DIST_SUBDIRS): here also
6363
6364 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6365
6366         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6367         breaking build on Solaris, reported by Farhad Saberi on the ML.
6368
6369         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6370         va_arg invocation to account for integer promotion in the case of
6371         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6372
6373         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6374         _dbus_list_get_first_link, not _dbus_list_get_first.
6375
6376         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6377
6378         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6379         handler functions so that the asserts in _dbus_object_subtree_unref
6380         do not fail.
6381
6382         * dbus/dbus-transport-unix.c (do_reading):
6383         _dbus_transport_queue_messages return value is of type
6384         dbus_bool_t, not DBusDispatchStatus.
6385         
6386 2004-07-19  David Zeuthen  <david@fubar.dk>
6387
6388         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6389
6390         * bus/dispatch.c:
6391         (check_get_connection_unix_user): Debug says GetProperty; but the
6392         method is called GetConnectionUnixUser
6393         (check_get_connection_unix_process_id): New function
6394         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6395         also call check_get_connection_unix_process_id()
6396         
6397         * bus/driver.c:
6398         (bus_driver_handle_get_connection_unix_process_id): New function,
6399         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6400         interface
6401         
6402         * dbus/dbus-auth.c:
6403         (handle_server_data_external_mech): Set pid from the credentials
6404         obtained from the socket
6405         
6406         * dbus/dbus-connection.c:
6407         (dbus_connection_get_unix_process_id): New function
6408         
6409         * dbus/dbus-connection.h: 
6410         Add prototype for dbus_connection_get_unix_process_id
6411         
6412         * dbus/dbus-transport.c:
6413         (_dbus_transport_get_unix_process_id): New function
6414         
6415         * dbus/dbus-transport.h:
6416         Add prototype for _dbus_transport_get_unix_process_id
6417         
6418 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6419
6420         * dbus/dbus-message.c: Message counter fix, patch by Christian
6421         Hammond <chipx86@gnupdate.org>
6422
6423 2004-07-18  Seth Nickell  <seth@gnome.org>
6424
6425         * python/dbus.py:
6426         * python/dbus_bindings.pyx.in:
6427         * python/tests/test-client.py:
6428
6429         Add dbus.ByteArray and dbus_bindings.ByteArray
6430         types so that byte streams can be passed back.
6431
6432         Give jdahlin the heaps of credit that are so
6433         rightfully his.
6434         
6435 2004-07-12  Seth Nickell  <seth@gnome.org>
6436
6437         * python/dbus.py:
6438
6439         Add message argument to the default object_method_handler
6440         function.
6441         
6442         * python/dbus_bindings.pyx.in:
6443
6444         Automatically return NIL when passed an empty list
6445         (we can't pass back a list since lists are typed
6446         and we don't have any idea what type the the client
6447         intended the list to be... :-( )
6448         
6449 2004-07-10  Seth Nickell  <seth@gnome.org>
6450
6451         * python/examples/Makefile.am:
6452
6453         Fix distcheck breakage caused by new examples.
6454
6455 2004-07-10  Seth Nickell  <seth@gnome.org>
6456
6457         * python/dbus.py:
6458
6459         Add "message" argument to service-side dbus.Object
6460         methods. This will break existing services written
6461         using the python bindings, but will allow extraction
6462         of all the message information (e.g. who its from).
6463
6464         Add improved "object oriented" signal handling/emission.
6465         
6466         * python/examples/example-service.py:
6467
6468         Nix this example.
6469         
6470         * python/examples/example-signal-emitter.py:
6471         * python/examples/example-signal-recipient.py:
6472
6473         Two new examples that show how to emit and receive
6474         signals using the new APIs.
6475         
6476         * python/examples/example-signals.py:
6477         * python/examples/gconf-proxy-service.py:
6478         * python/examples/gconf-proxy-service2.py:
6479
6480         Add "message" argument to service methods.
6481
6482 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6483
6484         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6485         * dbus/bus.c (dbus_bus_get_unix_user)
6486         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6487         method of org.freedesktop.DBus interface.
6488
6489         * bus/dispatch.c: test case
6490
6491 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6492
6493         * python/Makefile.am: switched include directory from glib/ to dbus/
6494         since dbus-glib.h moved
6495  
6496 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6497
6498         * configure.in: prevent building the gcj stuff and libxml loader
6499         since they are broken.
6500
6501 2004-06-20  Havoc Pennington  <hp@redhat.com>
6502
6503         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6504         codes from the dbus error names
6505         
6506         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6507         as dbus/dbus-glib.h and that breakage is now visible due to 
6508         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6509         
6510         * glib/dbus-glib.h: s/gproxy/g_proxy/
6511
6512         * dbus/dbus-shared.h: new header to hold stuff shared with
6513         binding APIs
6514         
6515         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6516         than dbus-errors.h
6517
6518         * glib/dbus-glib.h (dbus_set_g_error): move to
6519         dbus-glib-lowlevel.h
6520
6521         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6522         of stuff to enable this
6523
6524         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6525
6526         * a bunch of other changes with the same basic "separate glib 
6527         bindings from dbus.h" theme
6528         
6529 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6530
6531         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6532
6533         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6534
6535 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6536
6537         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6538         the reply value of the ServiceExists message.
6539
6540 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6541
6542         * python/dbus_bindings.pyx.in: No longer need to parse path
6543         elements and pass them as arrays of strings.  The C API now
6544         accepts plain path strings.
6545         (_build_parsed_path): removed 
6546
6547 2004-06-07  Havoc Pennington  <hp@redhat.com>
6548
6549         * doc/TODO: remove auto-activation item since it's done; sort
6550         items by importance/milestone
6551
6552 2004-06-07  Havoc Pennington  <hp@redhat.com>
6553
6554         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6555         random signature when using REQUIRED_FIELDS (this hack won't work
6556         in the long term)
6557
6558         * dbus/dbus-message.c: change the signature to be a header field,
6559         instead of message->signature special-case string. Incremental
6560         step forward. Then we can fix up code to send the signature in the
6561         message, then fix up code to validate said signature, then fix up
6562         code to not put the typecodes inline, etc.
6563         (load_one_message): don't make up the signature after the fact
6564         (decode_header_data): require signature field for the known
6565         message types
6566
6567         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6568
6569         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6570
6571 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6572
6573         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6574
6575         * mono/Handler.cs: Updated to follow new path argument for
6576         (un-)registering objects.
6577
6578         * mono/example/Makefile.am:
6579         * mono/Makefile.am:
6580         * configure.in: Bumped required version for mono and use new -pkg
6581         syntax for deps
6582
6583 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6584
6585         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6586         registration functions take the path argument as char* instead of
6587         char**.
6588
6589         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6590         split off the path decompostion part of
6591         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6592         warnings. 
6593
6594         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6595         
6596 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6597  
6598         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6599         machine approach.  A state is implemented as a function that
6600         handles incoming events as specified for that state.
6601         
6602         * doc/dbus-specification.xml: Update auth protocol state machine
6603         specification to match implementation.  Remove some leftover
6604         base64 examples.
6605
6606 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6607
6608         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6609         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6610         quiet doxygen.
6611
6612         * Doxyfile.in: remove deprecated options.
6613
6614         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6615         glib/test-thread.h, glib/test-thread-client.c,
6616         glib/test-thread-server.c, glib/test-profile.c,
6617         glib/test-dbus-glib.c: remove these unused files.
6618
6619 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6620
6621         * dbus/dbus-object-tree.c
6622         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6623         non-fallback handlers (bug #684).
6624         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6625         (find_subtree_recurse): report wether the returned subtree is an
6626         exact match or a "fallback" match higher up in the tree.
6627         (object_tree_test_iteration): update test case.
6628
6629 2004-06-01  Seth Nickell  <seth@gnome.org>
6630
6631         * python/dbus_bindings.pyx.in:
6632         * python/tests/test-client.py:
6633
6634         Round off basic type support. Add dicts (yay!), and 
6635         remaining array types.
6636
6637         Make MessageIter more general so it works for dicts too.
6638
6639         Mark all loop variables as C integers.
6640         
6641 2004-05-31  Havoc Pennington  <hp@redhat.com>
6642
6643         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6644         "in" before "out"
6645
6646         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6647
6648         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6649         option that runs the tests, and start filling in some code
6650         including for starters just dumping the interfaces to stdout
6651
6652         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6653
6654         * test/data/valid-introspection-files/lots-of-types.xml: test of
6655         an example introspection file
6656
6657         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6658         "node" (I think...)
6659
6660 2004-05-31  Seth Nickell  <seth@gnome.org>
6661
6662         * python/dbus_bindings.pyx.in:
6663         * python/tests/test-client.py:
6664
6665         Test Suite: 1
6666         Python Bindings: 0
6667
6668         Fix string array memory trashing bug... oops...
6669
6670 2004-05-30  Seth Nickell  <seth@gnome.org>
6671
6672         * python/dbus.py:
6673
6674         Add a nicer-but-less-flexible alternate API for handling 
6675         calls to virtual objects in dbus.ObjectTree.
6676
6677         Screw up the argument order to the dbus.Object constructor
6678         for consistency with dbus.ObjectTree (and to make dbus_methods
6679         optional for future extension)
6680         
6681         * python/examples/Makefile.am:
6682         * python/examples/gconf-proxy-service.py:
6683         * python/examples/gconf-proxy-service2.py:
6684
6685         Alternate implementation of gconf-proxy-service using the
6686         nicer dbus.ObjectTree API.
6687         
6688         * python/examples/example-service.py:
6689         * python/tests/test-server.py
6690
6691         Reverse the argument order to deal with dbus.Object constructor
6692         changes.
6693         
6694 2004-05-30  Seth Nickell  <seth@gnome.org>
6695
6696         * python/examples/example-client.py:
6697         * python/examples/example-service.py:
6698
6699         Take it back. Lists seem to work but they're broken
6700         in the test suite. Make the base examples use
6701         lists (works fine).
6702
6703 2004-05-30  Seth Nickell  <seth@gnome.org>
6704
6705         * python/dbus_bindings.pyx.in:
6706         * python/tests/test-client.py:
6707
6708         Add some more tests and fix errors that crop up.
6709         Unfortunately, currently it seems like marshalling
6710         and unmarshalling of lists is completely broken :-(
6711
6712 2004-05-30  Seth Nickell  <seth@gnome.org>
6713
6714         * python/dbus_bindings.pyx.in:
6715
6716         Add support for ObjectPath type.
6717
6718         * python/dbus.py:
6719
6720         Refactor message handling code to a common function.
6721         
6722         * python/tests/test-client.py:
6723         * python/tests/test-server.py:
6724
6725         Add tests that check to make sure values of all types
6726         can be echoed from a service w/o mangling.
6727         
6728 2004-05-29  Seth Nickell  <seth@gnome.org>
6729
6730         * python/dbus.py:
6731
6732         Add ObjectTree class which allows implementation
6733         of trees of "virtual" objects. Basically the python
6734         wrapper for "register_fallback".
6735         
6736         * python/examples/Makefile.am
6737         * python/examples/gconf-proxy-client.py:
6738         * python/examples/gconf-proxy-service.py:
6739
6740         Implement a simple GConf proxy service that supports
6741         get/set on string and int GConf keys using the ObjectTree.
6742         
6743 2004-05-29  Seth Nickell  <seth@gnome.org>
6744
6745         * python/dbus.py:
6746         * python/examples/example-client.py:
6747         * python/examples/example-service.py:
6748         * python/examples/list-system-services.py:
6749
6750         Add SessionBus, SystemBus and ActivationBus classes
6751         so you don't need to know the special little BUS_TYPE
6752         flag.
6753         
6754 2004-05-29  Havoc Pennington  <hp@redhat.com>
6755
6756         * bus/config-parser.c (process_test_valid_subdir): temporarily
6757         stop testing config parser OOM handling, since expat has issues
6758         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6759
6760         * bus/dbus-daemon-1.1.in: change requested_reply to
6761         send_requested_reply/receive_requested_reply so we can send the
6762         replies, not just receive them.
6763
6764         * bus/config-parser.c: parse the new
6765         send_requested_reply/receive_requested_reply
6766
6767         * bus/policy.c (bus_client_policy_check_can_send): add
6768         requested_reply argument and use it
6769
6770         * bus/bus.c (bus_context_check_security_policy): pass through
6771         requested_reply status to message send check
6772
6773         * bus/system.conf.in: adapt to requested_reply change
6774         
6775 2004-05-28  Havoc Pennington  <hp@redhat.com>
6776
6777         * test/glib/test-service-glib.c (main): remove unused variable
6778
6779         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6780
6781         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6782         from the enum, no longer in use.
6783
6784         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6785         works right.
6786
6787         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6788         whether error_name passed in is a valid error name.
6789
6790 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6791
6792         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6793         OBJECT_PATH and OBJECT_PATH_ARRAY
6794
6795 2004-05-28  Seth Nickell  <seth@gnome.org>
6796
6797         * python/examples/Makefile.am:
6798
6799         Forget to add Makefile.am. Do not pass go.
6800
6801 2004-05-28  Michael Meeks  <michael@ximian.com>
6802
6803         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6804         fix no int64 case.
6805
6806         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6807
6808         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6809         (_dbus_message_iter_get_basic_type_array): impl.
6810         drastically simplify ~all relevant _get methods to use these.
6811         (_dbus_message_iter_append_basic_array),
6812         (dbus_message_iter_append_basic): impl
6813         drastically simplify ~all relevant _append methods to use these.
6814
6815         * dbus/dbus-message-builder.c (parse_basic_type) 
6816         (parse_basic_array, lookup_basic_type): impl.
6817         (_dbus_message_data_load): prune scads of duplicate /
6818         cut & paste coding.
6819
6820         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6821         (_dbus_demarshal_basic_type): implement,
6822         (demarshal_and_validate_len/arg): beef up debug.
6823         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6824
6825 2004-05-27  Seth Nickell  <seth@gnome.org>
6826
6827         * configure.in:
6828         * python/Makefile.am:
6829
6830         Include the example python apps in the tarball.
6831         
6832         * python/examples/list-system-services.py
6833
6834         Add a python new example that fetches the list of services
6835         from the system bus.
6836         
6837 2004-05-27  Seth Nickell  <seth@gnome.org>
6838
6839         * python/dbus.py:
6840         * python/dbus_bindings.pyx.in:
6841
6842         Fix failure to notify that a signal was not handled,
6843         resulted in hung functions.
6844         
6845 2004-05-25  Colin Walters  <walters@redhat.com>
6846
6847         * tools/dbus-monitor.c (main): Monitor all types of messages.
6848
6849 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6850
6851         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6852         which unregisters the object path and disposes the handler.
6853
6854 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6855  
6856         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6857          
6858         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6859         operands to && so we call dbus_message_iter_next () for the last
6860         argument also.
6861
6862 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6863
6864         * dbus/dbus-object-tree.c
6865         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6866         children even if the requested path isn't registered.
6867         (object_tree_test_iteration): test object_tree_list_registered.
6868
6869         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6870         it to 0.
6871         
6872 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6873
6874         * doc/TODO: Remove resolved items.
6875
6876         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6877         field.
6878         
6879         * bus/connection.c (bus_connections_expect_reply): Enforce the
6880         per-connection limit on pending replies.
6881         
6882         Patch from Jon Trowbridge <trow@ximian.com>:
6883  
6884         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6885         up a watch that triggers a config reload when one end of the pipe
6886         becomes readable.
6887         (signal_handler): Instead of doing the config reload in our SIGHUP
6888         handler, just write to the reload pipe and let the associated
6889         watch handle the reload when control returns to the main loop.
6890  
6891         * bus/driver.c (bus_driver_handle_reload_config): Added.
6892         Implements a ReloadConfig method for requesting a configuration
6893         file reload via the bus driver.
6894  
6895 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6896
6897         * HACKING: Updated release instructions concerning the wiki page.
6898
6899 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6900
6901         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6902         filter against auth->allowed_mechs; we only add allowed mechs in
6903         record_mechanisms().
6904  
6905         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6906         ALLOWED_MECHS to auth-script format so we can set the list of
6907         allowed mechanisms.
6908  
6909         * data/auth/client-out-of-mechanisms.auth-script: New test to
6910         check client disconnects when it is out of mechanisms to try.
6911  
6912         * dbus/dbus-auth.c (process_command): Remove check for lines
6913         longer that 1 MB; we only buffer up maximum 16 kB.
6914  
6915         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6916         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6917         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6918         assume there might be unused bytes.
6919  
6920         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6921         client-out-of-mechs, it is handled in process_reject(). Move check
6922         for max failures to send_rejected(), as it's a server-only thing.
6923
6924         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6925         send_auth(), send_data(), send_rejected(), send_error(),
6926         send_ok(), send_begin() and send_cancel().
6927
6928 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6929
6930         Remove base64 encoding, replace with hex encoding. Original patch
6931         from trow@ximian.com, added error handling.
6932
6933         * dbus/dbus-string.c (_dbus_string_base64_encode)
6934         (_dbus_string_base64_decode): Remove.
6935         (_dbus_string_hex_decode): Add end_return argument so we can
6936         distinguish between OOM and invalid hex encoding.
6937         (_dbus_string_test): Remove base64 tests and add test case for
6938         invalid hex.
6939
6940         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6941         Replace base64 with hex.
6942
6943         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6944         for invalid hex encoded data in auth protocol.
6945
6946 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6947
6948         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6949         leak.
6950
6951 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6952
6953         * mono/dbus-sharp.dll.config.in: Added for GAC
6954         * mono/dbus-sharp.snk: Added for GAC
6955         * mono/Assembly.cs.in: Added for GAC
6956         * mono/Makefile.am: Changes for GAC installation        
6957         * configure.in: Added refs for dbus-sharp.dll.config.in and
6958         Assembly.cs.in. More fixes for mono testing
6959         * mono/example/Makefile.am: Changed var to CSC
6960         * Makefile.am: Changed flag name to DBUS_USE_CSC
6961
6962 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6963
6964         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6965         * mono/doc/*: Added documentation framework
6966         * configure.in: Added monodoc check
6967         * README: Added description of mono configure flags
6968
6969 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6970
6971         * doc/dbus-specification.xml: Added a "Required" column to the 
6972         header fields table and changed the "zero or more" verbage in
6973         the above paragraph to read "The header must contain the required 
6974         named header fields and zero or more of the optional named header 
6975         fields".
6976         * test/data/invalid-messages/*.message: Added the required PATH 
6977         named header field to the tests so that they don't fail on 
6978         'Missing path field'
6979
6980 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6981
6982         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6983         the stack by implicitly defining variable and parameter types and
6984         removing the hack of defining C pointers as python objects and later
6985         casting them.
6986
6987 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6988
6989         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6990
6991 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6992
6993         * mono/DBusType/Dict.cs: Handle empty dicts
6994         * mono/DBusType/Array.cs: Handle empty arrays
6995         * mono/Arguments.cs: Handle empty arguments
6996
6997 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6998
6999         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7000         field
7001
7002 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7003
7004         * test/data/valid-messages/standard-*.message: Update message
7005         test scripts to new header field names.
7006
7007 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7008
7009         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7010         overflow to times_we_did_each_thing array which would chop off the
7011         first character of the failure_dir string. Increased the size of
7012         the array to 7 to reflect the number of random mutation functions
7013         we have.
7014
7015 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7016
7017         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7018         unix_server->watch here, it is unreffed in disconnect.
7019         (_dbus_server_new_for_tcp_socket): convert NULL host to
7020         "localhost" here so we don't append NULL to address.
7021         
7022         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7023         various addresses, including tcp with no explicit host.
7024
7025 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7026
7027         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7028         fix incorrect setting of .name_offset in the HeaderField (it was
7029         off by two bytes, positioned right after the name and typecode)
7030
7031         * bus/bus.c (bus_context_new, bus_context_unref): test before
7032         calling dbus_server_free_data_slot and _dbus_user_database_unref
7033         in case of an error.
7034
7035         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7036         by libdbus-gtool.
7037
7038 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7039
7040         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7041         _dbus_poll() instead of select().
7042
7043 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7044
7045         * bus/main.c (signal_handler): Reload the configuration files
7046         on SIGHUP.
7047         (main): Set up our SIGHUP handler.
7048
7049         * bus/bus.c (struct BusContext): Store the config file, user and
7050         fork flag in the BusContext.
7051         (process_config_first_time_only): Added.  Contains the code
7052         (previously in bus_context_new) for setting up the BusContext from
7053         the BusConfigParser that should only be run the first time the
7054         config files are read.
7055         (process_config_every_time): Added.  Contains the code (previously
7056         in bus_context_new) for setting up the BusContext from the
7057         BusConfigParser that should be run every time the config files are
7058         read.
7059         (load_config): Added.  Builds a BusConfigParser from the config
7060         files and passes the resulting structure off to
7061         process_config_first_time_only (assuming this is the first time)
7062         and process_config_every_time.
7063         (bus_context_new): All of the config-related code has been moved
7064         to process_config_first_time_only and process_config_every_time.
7065         Now this function just does the non-config-related initializations
7066         and calls load_config.
7067         (bus_context_reload_config): Added.
7068
7069 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7070
7071         * bus/driver.c (bus_driver_handle_get_service_owner):
7072         implement a GetServiceOwner method.
7073         * doc/dbus-specification.xml: document it.
7074         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7075         
7076         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7077         implement, using the bus GetServiceOwner method.
7078
7079         * test/glib/test-dbus-glib.c:
7080         use dbus_gproxy_new_for_service_owner so that we can receive the
7081         signal. 
7082
7083 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7084
7085         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7086         dbus/dbus-message.c, dbus/dbus-protocol.h
7087         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7088
7089         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7090         dbus/dbus-message.c, dbus/dbus-protocol.h
7091         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7092
7093         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7094         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7095         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7096
7097         * doc/dbus-specification.xml (Header Fields Table):
7098         s/SERVICE/DESTINATION
7099         s/SENDER_SERVICE/SENDER
7100
7101
7102 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7103
7104         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7105         a few seconds.
7106
7107 2004-04-13  Michael Meeks  <michael@ximian.com>
7108
7109         * glib/dbus-gobject.c (handle_introspect): split out
7110         (introspect_properties): this.
7111         (handle_introspect): implement this.
7112
7113         * test/glib/Makefile.am: use the absolute path so the bus
7114         daemon's chdir ("/") doesn't kill us dead.
7115
7116         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7117
7118 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7119
7120         * bus/config-parser.c (struct BusConfigParser): Added
7121         included_files field.
7122         (seen_include): Added.  Checks whether or not a file has already
7123         been included by any parent BusConfigParser.
7124         (bus_config_parser_new): Copy the parent's included_files.
7125         (include_file): Track which files have been included, and fail on
7126         circular inclusions.
7127         (process_test_valid_subdir): Changed printf to report if we are
7128         testing valid or invalid conf files.
7129         (all_are_equiv): Changed printf to be a bit clearer about
7130         what we are actually doing.
7131         (bus_config_parser_test): Test invalid configuration files.
7132
7133 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7134
7135         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7136         argument.  If non-null, the newly-constructed BusConfigParser will
7137         be initialized with the parent's BusLimits instead of the default
7138         values.
7139         (include_file): When including a config file, pass in
7140         the current parser as the parent and then copy the BusLimits
7141         from the included BusConfigParser pack to the current parser.
7142         (process_test_valid_subdir): Renamed from process_test_subdir.
7143         (process_test_equiv_subdir): Added.  Walks through a directory,
7144         descending into each subdirectory and loading the config files
7145         it finds there.  If any subdirectory contains two config files
7146         that don't produce identical BusConfigParser structs, fail.
7147         For now, the BusConfigParser's BusPolicies are not compared.
7148         (bus_config_parser_test): Call both process_test_valid_subdir and
7149         process_test_equiv_subdir.
7150
7151         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7152         argument and pass it along to the call to bus_config_parser_new.
7153         Also made a few small changes to allow this code to compile.
7154
7155         * bus/config-loader-expat.c (bus_config_load): Take a parent
7156         argument and pass it along to the call to bus_config_parser_new.
7157
7158         * bus/bus.c (bus_context_new): Load the config file
7159         with a NULL parent argument.
7160
7161 2004-03-29  Michael Meeks  <michael@ximian.com>
7162
7163         * glib/dbus-gobject.c (introspect_properties): split
7164         out, fix mangled 'while' flow control.
7165         (introspect_signals): implement.
7166         (handle_introspect): update.
7167
7168 2004-03-29  Michael Meeks  <michael@ximian.com>
7169
7170         * glib/dbus-gobject.c (set_object_property): split out / 
7171         re-work, use the property type, and not the message type(!)
7172         (get_object_property): ditto.
7173
7174         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7175         (dbus_gvalue_marshal): make this code re-usable, needed
7176         for signals too, also on both proxy and server side.
7177         Re-write for more efficiency / readability.
7178
7179 2004-03-29  Michael Meeks  <michael@ximian.com>
7180
7181         * dbus/dbus-message.c
7182         (dbus_message_new_error_printf): impl.
7183
7184         * dbus/dbus-connection.c
7185         (dbus_connection_unregister_object_path): fix warning.
7186
7187         * configure.in: fix no-mono-installed situation.
7188
7189 2004-03-27  Havoc Pennington  <hp@redhat.com>
7190
7191         Patch from Timo Teräs:
7192         
7193         * tools/dbus-send.c (main): if --print-reply, assume type is
7194         method call; support boolean type args
7195         
7196         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7197         bunch of memleak and logic bugs
7198         
7199 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7200
7201         * mono/Arguments.cs:
7202         * mono/Introspector.cs:
7203         * mono/Handler.cs:
7204         * mono/InterfaceProxy.cs:
7205         * mono/Message.cs
7206         * mono/ProxyBuilder.cs:
7207         * mono/Service.cs:
7208         Added InterfaceProxy class to avoid building proxies for every
7209         object.
7210
7211         * dbus-message.h:
7212         * dbus-message.c (dbus_message_append_args_valist)
7213         (dbus_message_iter_get_object_path)
7214         (dbus_message_iter_get_object_path_array)
7215         (dbus_message_iter_append_object_path)
7216         (dbus_message_iter_append_object_path_array):
7217         Added object_path iter functions to handle OBJECT_PATH arguments
7218         
7219 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7220
7221         First checkin of mono bindings.
7222         * configure.in:
7223         * Makefile.am:
7224         Build stuff for the bindings
7225         * dbus-sharp.pc.in: Added for pkgconfig
7226         
7227 2004-03-21  Havoc Pennington  <hp@redhat.com>
7228
7229         * test/test-service.c (main): remove debug spew
7230
7231 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7232
7233         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7234         arrays
7235
7236         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7237         (dbus_message_iter_init_array_iterator)
7238         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7239         indicate whether the iterator is empty
7240
7241         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7242         warnings
7243
7244 2004-03-19  Havoc Pennington  <hp@redhat.com>
7245
7246         * NEWS: 0.21 updates
7247
7248         * configure.in: 0.21
7249
7250         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7251         
7252         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7253         you don't need pyrex to make dist
7254
7255         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7256         sources; run moc
7257         
7258 2004-03-18  Richard Hult  <richard@imendio.com>
7259
7260         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7261         (dbus_message_set_auto_activation): Add doxygen docs.
7262
7263 2004-03-16  Richard Hult  <richard@imendio.com>
7264
7265         * bus/activation.c: (bus_activation_service_created),
7266         (bus_activation_send_pending_auto_activation_messages),
7267         (bus_activation_activate_service):
7268         * bus/activation.h:
7269         * bus/dispatch.c: (bus_dispatch),
7270         (check_nonexistent_service_auto_activation),
7271         (check_service_auto_activated),
7272         (check_segfault_service_auto_activation),
7273         (check_existent_service_auto_activation), (bus_dispatch_test):
7274         * bus/driver.c: (bus_driver_handle_activate_service):
7275         * bus/services.c: (bus_registry_acquire_service):
7276         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7277         (dbus_message_get_auto_activation):
7278         * dbus/dbus-message.h:
7279         * dbus/dbus-protocol.h: Implement auto-activation.
7280         
7281         * doc/dbus-specification.xml: Add auto-activation to the spec.
7282
7283 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7284
7285         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7286         fix a bug with CUSTOM types.
7287
7288         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7289         a unit test for this bug (used to fail).
7290
7291 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7292
7293         * bus/activation.c:
7294         (babysitter_watch_callback): notify all pending activations waiting for
7295           the same exec that the activation failed.
7296         (bus_activation_activate_service): shortcut the activation if we 
7297           already waiting for the same executable to start up.
7298
7299 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7300
7301         * bus/activation.c: 
7302         - Added service file reloading. 
7303           Each service files directory is kept in an hash table in 
7304           BusActivation and each BusActivationEntry knows what .service-file it
7305           was read from. So when you try to activate a service the bus will 
7306           check if it's been updated, removed or if new .service-files has 
7307           been installed.
7308         - Test code at the bottom for the service file reloading.
7309         * bus/test-main.c: (main):
7310         * bus/test.h:
7311         - added service reloading test.
7312         * dbus/dbus-sysdeps.c: 
7313         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7314
7315 2004-03-08  Michael Meeks  <michael@ximian.com>
7316
7317         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7318         bail immediately if disconnected, to avoid busy loop.
7319
7320         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7321         cleanup cut/paste/inefficiency.
7322
7323 2004-03-01  David Zeuthen  <david@fubar.dk>
7324
7325         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7326         bug where args were used twice. This bug resulted in a segfault
7327         on a Debian/PPC system when starting the messagebus daemon. Include
7328         dbus-sysdeps.h for DBUS_VA_COPY
7329
7330         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7331
7332         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7333         appropriate va_copy implementation. From GLib
7334         
7335 2004-02-24  Joe Shaw  <joe@ximian.com>
7336
7337         * bus/services.c (bus_registry_acquire_service): We need to pass
7338         in the service name to dbus_set_error() to prevent a crash.
7339
7340 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7341
7342         * AUTHORS: Reveal my True identity.
7343
7344 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7345
7346         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7347         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7348
7349 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7350
7351         * doc/TODO: Added not about better error check of configuration files.
7352
7353 2003-12-02  Richard Hult  <richard@imendio.com>
7354
7355         * Update AFL version to 2.0 throughout the source files to reflect
7356         the update that was done a while ago.
7357
7358 2003-12-02  Richard Hult  <richard@imendio.com>
7359
7360         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7361         wrote_dict_key to FALSE on the iter that the dict is appended to,
7362         just like when appending other types. Fixes a bug where a dict
7363         couldn't be put inside a dict.
7364         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7365         (message_iter_test, _dbus_message_test): Add test case for dict
7366         inside dict.
7367
7368 2003-12-01  David Zeuthen  <david@fubar.dk>
7369
7370         * python/dbus.py: Add the actual message when calling the reciever
7371         of a signal such that parameters can be inspected. Add the method
7372         remove_signal_receiver
7373         
7374 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7375
7376         * bus/*.[ch]:
7377         * dbus/*.[ch]:
7378         * glib/*.[ch]: Made ref functions return the pointer
7379
7380 2003-11-25  Zack Rusin  <zack@kde.org>
7381
7382         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7383
7384         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7385         wrappers,
7386
7387         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7388         the Integrator and to better fit with the server,
7389
7390 2003-11-24  Zack Rusin  <zack@kde.org>
7391
7392         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7393         the integrator handles it now
7394
7395         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7396         since QTimer wasn't really meant to be used the way DBusTimeout is
7397
7398 2003-11-24  Zack Rusin  <zack@kde.org>
7399
7400         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7401         Integrator class which integrates D-BUS with the Qt event loop,
7402
7403         * qt/connection.h, qt/connection.cpp: Move all the code which
7404         was dealing with D-BUS integration to the Integrator class,
7405         and start using Integrator,
7406
7407 2003-11-23  Zack Rusin  <zack@kde.org>
7408
7409         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7410         wrapper
7411
7412         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7413         switching namespaces to DBusQt, reworking the class,
7414
7415         * Makefile.cvs: switching dependencies so that it matches KDE 
7416         schematics,
7417         
7418         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7419         the library
7420
7421 2003-11-19  Havoc Pennington  <hp@redhat.com>
7422
7423         * NEWS: update
7424
7425         * configure.in: bump version to 0.20
7426
7427         * configure.in (have_qt): add yet another place to look for qt
7428         (someone hand trolltech a .pc file...)
7429
7430 2003-11-01  Havoc Pennington  <hp@redhat.com>
7431
7432         * doc/dbus-specification.xml: add state machine docs on the auth
7433         protocol; just a first draft, I'm sure it's wrong.      
7434
7435 2003-10-28  David Zeuthen  <david@fubar.dk>
7436
7437         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7438         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7439         
7440 2003-10-28  Havoc Pennington  <hp@redhat.com>
7441
7442         * dbus/dbus-message.c (get_next_field): delete unused function
7443
7444 2003-10-28  Havoc Pennington  <hp@redhat.com>
7445
7446         * bus/expirelist.c (do_expiration_with_current_time): detect
7447         failure of the expire_func due to OOM
7448
7449         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7450
7451         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7452         NoReply error that's now created by the bus when the service exits
7453
7454 2003-10-28  Havoc Pennington  <hp@redhat.com>
7455
7456         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7457         tests for set_path, set_interface, set_member, etc.
7458
7459         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7460
7461         * dbus/dbus-message.c (set_string_field): always just delete and
7462         re-append the field; accept NULL for deletion
7463         (re_align_fields_recurse): reimplement
7464         
7465 2003-10-26  Havoc Pennington  <hp@redhat.com>
7466
7467         * dbus/dbus-connection.c: fix docs to properly describe the
7468         disconnected message
7469         (_dbus_connection_notify_disconnected): remove this function; 
7470         we can't synchronously add the disconnected message, we have to 
7471         do it after we've queued any remaining real messages
7472         (_dbus_connection_get_dispatch_status_unlocked): queue the
7473         disconnect message only if the transport has finished queueing all
7474         its real messages and is disconnected.
7475         (dbus_connection_disconnect): update the dispatch status here
7476
7477 2003-10-22  Havoc Pennington  <hp@redhat.com>
7478
7479         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7480
7481         * bus/connection.c (bus_transaction_send_from_driver): set the
7482         destination to the connection's base service
7483
7484 2003-10-20  Havoc Pennington  <hp@redhat.com>
7485
7486         hmm, make check is currently not passing.
7487         
7488         * doc/dbus-specification.xml: add requirement that custom type
7489         names follow the same rules as interface names.
7490
7491         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7492         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7493         'map'
7494
7495         * doc/dbus-specification.xml: update type codes to match
7496         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7497         CUSTOM. Add type OBJECT_PATH to the spec.
7498
7499 2003-10-17  Havoc Pennington  <hp@redhat.com>
7500
7501         * bus/driver.c (create_unique_client_name): use "." as separator
7502         in base service names instead of '-'
7503
7504         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7505         byte at the end of the string
7506
7507         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7508         optimization macros since string validation seems to be a slow
7509         point.
7510         
7511         * doc/dbus-specification.xml: restrict valid
7512         service/interface/member/error names. Add test suite code for the
7513         name validation.
7514
7515         * dbus/dbus-string.c: limit service/interface/member/error names 
7516         to [0-9][A-Z][a-z]_
7517
7518         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7519         format arg to verbose spew
7520
7521         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7522         memory, return instead of g_error
7523
7524         * test/test-service.c (path_message_func): support emitting a
7525         signal on request
7526
7527         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7528         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7529         assuming the activation bus was the session bus so that services
7530         started manually will still register.
7531         (init_connections_unlocked): fix so that in OOM situation we get
7532         the same semantics when retrying the function
7533         
7534         * test/test-service.c (main): change to use path registration, to
7535         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7536         than DBUS_BUS_SESSION
7537
7538 2003-10-16  Havoc Pennington  <hp@redhat.com>
7539
7540         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7541
7542         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7543         coverage of the tests
7544         (coverage-report.txt): don't move the .da and .bbg files around
7545
7546 2003-10-16  Havoc Pennington  <hp@redhat.com>
7547
7548         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7549         to put there
7550
7551 2003-10-16  Havoc Pennington  <hp@redhat.com>
7552
7553         * bus/connection.c (bus_pending_reply_expired): either cancel or
7554         execute, not both
7555         (bus_connections_check_reply): use unlink, not remove_link, as we
7556         don't want to free the link; fixes double free mess
7557
7558         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7559         where no reply was received
7560
7561         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7562         fix a refcount leak
7563
7564         * bus/signals.c (match_rule_matches): add special cases for the
7565         bus driver, so you can match on sender/destination for it.
7566
7567         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7568         DBUS_PRINT_BACKTRACE is set
7569
7570         * dbus/dbus-internals.c: add pid to assertion failure messages
7571
7572         * dbus/dbus-connection.c: add message type code to the debug spew
7573
7574         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7575         sender=foo not service=foo
7576
7577         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7578         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7579         DBUS_ACTIVATION_ADDRESS instead
7580
7581         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7582         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7583
7584         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7585         context struct
7586
7587         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7588         (dbus_message_iter_get_object_path_array): new function (half
7589         finished, disabled for the moment)
7590         
7591         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7592         DBUS_MESSAGE_TYPE_ERROR
7593
7594         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7595         avoid redirecting stderr to /dev/null
7596         (babysit): close stdin if not doing the "exit_with_session" thing
7597
7598         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7599         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7600         stdout/stdin, so things don't get confused
7601         
7602         * bus/system.conf.in: fix to allow replies, I modified .conf
7603         instead of .conf.in again.
7604
7605 2003-10-14  David Zeuthen  <david@fubar.dk>
7606
7607         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7608         argtype to arg_type when raising unknown arg type exception.
7609         Changed type list to reflect the changes in dbus-protocol.h so 
7610         the bindings actually work.
7611
7612 2003-10-14  Havoc Pennington  <hp@redhat.com>
7613
7614         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7615         to have a bug keeping it from outputting the .da files sometimes
7616         (string_get_string): don't append garbage nul bytes to the string.
7617
7618 2003-10-15  Seth Nickell  <seth@gnome.org>
7619
7620         * python/Makefile.am:
7621
7622         Include dbus_h_wrapper.h in the dist tarball.
7623
7624 2003-10-14  Havoc Pennington  <hp@redhat.com>
7625
7626         * bus/bus.c (bus_context_check_security_policy): revamp this to
7627         work more sanely with new policy-based requested reply setup
7628
7629         * bus/connection.c (bus_transaction_send_from_driver): set bus
7630         driver messages as no reply
7631
7632         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7633         requested_reply attribute on allow/deny rules
7634
7635         * bus/system.conf: add <allow requested_reply="true"/>
7636
7637         * bus/driver.c (bus_driver_handle_message): fix check for replies
7638         sent to the bus driver, which was backward. How did this ever work
7639         at all though? I think I'm missing something.
7640
7641         * dbus/dbus-message.c (decode_header_data): require error and
7642         method return messages to have a reply serial field to be valid
7643         (_dbus_message_loader_queue_messages): break up this function;
7644         validate that reply serial and plain serial are nonzero; 
7645         clean up the OOM/error handling.
7646         (get_uint_field): don't return -1 from this
7647         (dbus_message_create_header): fix signed/unsigned bug
7648
7649         * bus/connection.c (bus_connections_expect_reply): save serial of
7650         the incoming message, not reply serial
7651
7652 2003-10-14  Havoc Pennington  <hp@redhat.com>
7653
7654         * bus/connection.c: implement pending reply tracking using
7655         BusExpireList
7656
7657         * bus/bus.c (bus_context_check_security_policy): verify that a
7658         reply is pending in order to allow a reply to be sent. Deny 
7659         messages of unknown type.
7660
7661         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7662
7663         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7664         (bus_context_get_reply_timeout): new
7665
7666 2003-10-13  Seth Nickell  <seth@gnome.org>
7667
7668         * python/Makefile.am:
7669
7670         Pass "make distcheck": remove a couple files from DIST_FILES
7671         that weren't included in the final version.
7672
7673 2003-10-12  Havoc Pennington  <hp@pobox.com>
7674
7675         Added test code that 1) starts an actual bus daemon and 2) uses
7676         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7677         more testing possible, but this is the basic framework.
7678         
7679         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7680         empty proxy lists from the proxy list hash
7681
7682         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7683         couple of return_if_fail checks
7684
7685         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7686         to allocate, so everything is cleared to NULL as it should be.
7687
7688         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7689         source as data to dbus_connection_set_timeout_functions() as the 
7690         timeout functions expected
7691
7692         * test/glib/run-test.sh: add a little script to start up a message
7693         bus and run tests using it
7694
7695         * tools/dbus-launch.1: updates
7696
7697         * tools/dbus-launch.c (main): add --config-file option
7698
7699         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7700         that could never be reached.
7701
7702         * dbus/dbus-message.c (dbus_message_new_method_return) 
7703         (dbus_message_new_error, dbus_message_new_signal): set the
7704         no-reply-expected flag on all these. Redundant, but may
7705         as well be consistent.
7706
7707 2003-10-11  Havoc Pennington  <hp@pobox.com>
7708
7709         * test/decode-gcov.c (function_solve_graph): make broken block
7710         graph a nonfatal error since it seems to be broken. Need to debug
7711         this.
7712
7713         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7714         can't just check type > INVALID < LAST anymore
7715
7716         * dbus/dbus-message.c (dbus_message_get_signature): new function
7717         (dbus_message_has_signature): new function
7718         (struct DBusMessage): add signature field (right now it isn't sent
7719         over the wire, just generated on the fly)
7720         (dbus_message_copy): copy the signature, and init strings to
7721         proper length to avoid some reallocs
7722         (dbus_message_iter_init_array_iterator): return void, since it
7723         can't fail
7724         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7725         (_dbus_message_loader_queue_messages): add silly temporary hack to
7726         fill in message->signature on load
7727
7728         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7729         characters, so they are relatively human-readable.
7730
7731 2003-10-11  Havoc Pennington  <hp@pobox.com>
7732
7733         * dbus/dbus-message.c (_dbus_message_test): add more test
7734         coverage, but #if 0 for now since they uncover a bug 
7735         not fixed yet; I think in re_align_field_recurse()
7736         (re_align_field_recurse): add FIXME about broken assertion
7737
7738         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7739
7740         * bus/connection.c: share a couple code bits with expirelist.c
7741
7742         * bus/expirelist.h, bus/expirelist.c: implement a generic
7743         expire-items-after-N-seconds facility, was going to share between
7744         expiring connections and replies, decided not to use for expiring
7745         connections for now.
7746
7747         * COPYING: include AFL 2.0 (still need to change all the file headers)
7748
7749 2003-10-09  Havoc Pennington  <hp@redhat.com>
7750
7751         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7752         gcc 3.3. Not that we do anything about it yet.
7753
7754         * bus/signals.c (bus_match_rule_parse): impose max length on the
7755         match rule text
7756
7757         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7758
7759 2003-10-09  Havoc Pennington  <hp@redhat.com>
7760
7761         Make matching rules theoretically work (add parser).
7762         
7763         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7764         the case where destination is explicitly specified as bus driver
7765         and someone else is eavesdropping.
7766         
7767         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7768         definition of eavesdropping and assertion
7769
7770         * tools/dbus-send.c (main): use dbus_message_type_from_string
7771
7772         * bus/signals.c (bus_match_rule_parse): implement
7773
7774         * dbus/dbus-message.c (dbus_message_type_from_string): new
7775
7776         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7777
7778 2003-10-02  Havoc Pennington  <hp@pobox.com>
7779
7780         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7781         dbus_gproxy_oneway_call
7782
7783         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7784         (dbus_server_setup_with_g_main): fix to allow calling them more
7785         than once on the same args
7786         (dbus_bus_get_with_g_main): new function
7787
7788 2003-10-02  Havoc Pennington  <hp@redhat.com>
7789
7790         * doc/dbus-tutorial.xml: write some stuff
7791
7792 2003-09-29  Havoc Pennington  <hp@pobox.com>
7793
7794         * configure.in: split checks for Doxygen from XML docs, check for
7795         xmlto
7796
7797         * doc/Makefile.am: XML-ify all the docs, and add a blank
7798         dbus-tutorial.xml
7799
7800 2003-09-29  Havoc Pennington  <hp@pobox.com>
7801
7802         * Merge dbus-object-names branch. To see the entire patch 
7803         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7804         it's huuuuge though.
7805         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7806         
7807 2003-09-28  Havoc Pennington  <hp@pobox.com>
7808
7809         * HACKING: update to reflect new server
7810
7811 2003-09-26  Seth Nickell  <seth@gnome.org>
7812
7813         * python/dbus.py:
7814         * python/examples/example-signals.py:
7815
7816         Start implementing some notions of signals. The API
7817         is really terrible, but they sort of work (with the
7818         exception of being able to filter by service, and to
7819         transmit signals *as* a particular service). Need to
7820         figure out how to make messages come from the service
7821         we registered :-(
7822         
7823         * python/dbus_bindings.pyx.in:
7824
7825         Removed duplicate message_handler callbacks.
7826         
7827 2003-09-25  Havoc Pennington  <hp@redhat.com>
7828
7829         * bus/session.conf.in: fix my mess
7830
7831 2003-09-25  Havoc Pennington  <hp@pobox.com>
7832
7833         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7834
7835 2003-09-25  Seth Nickell  <seth@gnome.org>
7836
7837         * python/examples/example-service.py:
7838
7839         Johan notices complete wrong code in example-service, but
7840         completely wrong in a way that works exactly the same (!).
7841         Johan is confused, how could this possibly work? Example
7842         code fails to serve purpose of making things clear.
7843         Seth fixes.
7844
7845 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7846
7847         * doc/dbus-specification.sgml: don't require header fields
7848         to be 4-byte aligned and specify that fields should be
7849         distinguished from padding by the fact that zero is not
7850         a valid field name.
7851         
7852         * doc/TODO: remove re-alignment item and add item to doc
7853         the OBJECT_PATH type.
7854         
7855         * dbus/dbus-message.c:
7856         (HeaderField): rename the original member to value_offset
7857         and introduce a name_offset member to keep track of where
7858         the field actually begins.
7859         (adjust_field_offsets): remove.
7860         (append_int_field), (append_uint_field),
7861         (append_string_field): don't align the start of the header
7862         field to a 4-byte boundary.
7863         (get_next_field): impl finding the next marhsalled field
7864         after a given field.
7865         (re_align_field_recurse): impl re-aligning a number of
7866         already marshalled fields.
7867         (delete_field): impl deleting a field of any type and
7868         re-aligning any following fields.
7869         (delete_int_or_uint_field), (delete_string_field): remove.
7870         (set_int_field), (set_uint_field): no need to re-check
7871         that we have the correct type for the field.
7872         (set_string_field): ditto and impl re-aligning any
7873         following fields.
7874         (decode_header_data): update to take into account that
7875         the fields aren't 4-byte aligned any more and the new
7876         way to distinguish padding from header fields. Also,
7877         don't exit when there is too much header padding.
7878         (process_test_subdir): print the directory.
7879         (_dbus_message_test): add test to make sure a following
7880         field is re-aligned correctly after field deletion.
7881         
7882         * dbus/dbus-string.[ch]:
7883         (_dbus_string_insert_bytes): rename from insert_byte and
7884         allow the insert of multiple bytes.
7885         (_dbus_string_test): test inserting multiple bytes.
7886
7887         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7888         warning note to docs about having to re-align any
7889         marshalled values following the string.
7890         
7891         * dbus/dbus-message-builder.c:
7892         (append_string_field), (_dbus_message_data_load):
7893         don't align the header field.
7894         
7895         * dbus/dbus-auth.c: (process_test_subdir): print the
7896         directory.
7897         
7898         * test/break-loader.c: (randomly_add_one_byte): upd. for
7899         insert_byte change.
7900         
7901         * test/data/invalid-messages/bad-header-field-alignment.message:
7902         new test case.
7903         
7904         * test/data/valid-messages/unknown-header-field.message: shove
7905         a dict in the unknown field.
7906
7907 2003-09-25  Seth Nickell  <seth@gnome.org>
7908
7909         * python/dbus.py:
7910         * python/dbus_bindings.pyx.in:
7911
7912         Handle return values.
7913         
7914         * python/examples/example-client.py:
7915         * python/examples/example-service.py:
7916
7917         Pass back return values from the service to the client.
7918         
7919 2003-09-24  Seth Nickell  <seth@gnome.org>
7920
7921         * python/dbus.py:
7922
7923         Connect Object methods (when you are sharing an object) up... pass
7924         in a list of methods to be shared. Sharing all the methods just
7925         worked out too weird. You can now create nice Services over the
7926         DBus in Python. :-)
7927         
7928         * python/dbus_bindings.pyx.in:
7929
7930         Keep references to user_data tuples passed into C functions so 
7931         Python doesn't garbage collect on us.
7932
7933         Implement MethodReturn and Error subclasses of Message for creating
7934         DBusMessage's of those types.
7935         
7936         * python/examples/example-client.py:
7937         * python/examples/example-service.py:
7938
7939         Simple example code showing both how create DBus services and objects,
7940         and how to use them.
7941
7942 2003-09-23  Havoc Pennington  <hp@pobox.com>
7943
7944         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7945
7946 2003-09-23  Havoc Pennington  <hp@redhat.com>
7947
7948         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7949         (dbus_gproxy_disconnect_signal): implement
7950         (dbus_gproxy_manager_remove_signal_match): implement
7951         (dbus_gproxy_manager_add_signal_match): implement
7952         (dbus_gproxy_oneway_call): implement
7953
7954 2003-09-23  Havoc Pennington  <hp@pobox.com>
7955
7956         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7957         subclass. This means dropping the transparent thread safety of the
7958         proxy; you now need a separate proxy per-thread, or your own
7959         locking on the proxy. Probably right anyway.
7960         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7961
7962 2003-09-22  Havoc Pennington  <hp@redhat.com>
7963
7964         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7965
7966 2003-09-21  Seth Nickell  <seth@gnome.org>
7967
7968         First checkin of the Python bindings.
7969         
7970         * python/.cvsignore:
7971         * python/Makefile.am:
7972         * python/dbus_bindings.pyx.in:
7973         * python/dbus_h_wrapper.h:
7974
7975         Pieces for Pyrex to operate on, building a dbus_bindings.so
7976         python module for low-level access to the DBus APIs.
7977         
7978         * python/dbus.py:
7979
7980         High-level Python module for accessing DBus objects.
7981
7982         * configure.in:
7983         * Makefile.am:
7984
7985         Build stuff for the python bindings.
7986
7987         * acinclude.m4:
7988
7989         Extra macro needed for finding the Python C header files.
7990
7991 2003-09-21  Havoc Pennington  <hp@pobox.com>
7992
7993         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7994         implementing the proxy manager, didn't get very far.
7995
7996         * dbus/dbus-bus.c (dbus_bus_add_match): new
7997         (dbus_bus_remove_match): new
7998
7999         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8000         path_name argument; adjust the other not-yet-implemented 
8001         gproxy constructors to be what I think they should be.
8002
8003 2003-09-21  Havoc Pennington  <hp@pobox.com>
8004
8005         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8006         by default for message bus connections.
8007
8008         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8009         exit_on_disconnect flag is set and we process the disconnected
8010         signal.
8011         (dbus_connection_set_exit_on_disconnect): new function
8012
8013 2003-09-21  Havoc Pennington  <hp@pobox.com>
8014
8015         Get matching rules mostly working in the bus; only actually
8016         parsing the rule text remains. However, the client side of
8017         "signal connections" hasn't been started, this patch is only the
8018         bus side.
8019         
8020         * dbus/dispatch.c: fix for the matching rules changes
8021         
8022         * bus/driver.c (bus_driver_handle_remove_match)
8023         (bus_driver_handle_add_match): send an ack reply from these
8024         method calls
8025
8026         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8027         arguments, reported by Seth Nickell
8028
8029         * bus/config-parser.c (append_rule_from_element): support
8030         eavesdrop=true|false attribute on policies so match rules 
8031         can be prevented from snooping on the system bus.
8032
8033         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8034         and "destination" in attribute names; fix some docs bugs; 
8035         add eavesdrop=true|false attribute
8036
8037         * bus/driver.c (bus_driver_handle_add_match)
8038         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8039         messages
8040
8041         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8042         rid of broadcast service concept, signals are just always broadcast
8043
8044         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8045         mostly implement matching rules stuff (currently only exposed as signal
8046         connections)
8047
8048 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8049
8050         * doc/dbus-specification.sgml: Change the header field name
8051         to be an enum and update the rest of the spec to reference
8052         the fields using the conventinal name.
8053
8054         * dbus/dbus-protocol.h: update to reflect the spec.
8055
8056         * doc/TODO: add item to remove the 4 byte alignment requirement.
8057         
8058         * dbus/dbus-message.c: Remove the code to generalise the
8059         header/body length and serial number header fields as named
8060         header fields so we can reference field names using the 
8061         protocol values.
8062         (append_int_field), (append_uint_field), (append_string_field):
8063         Append the field name as a byte rather than four chars.
8064         (delete_int_or_uint_field), (delete_string_field): reflect the
8065         fact that the field name and typecode now occupy 4 bytes instead
8066         of 8.
8067         (decode_string_field), (decode_header_data): update to reflect
8068         protocol changes and move the field specific encoding from
8069         decode_string_field() back into decode_header_data().
8070         
8071         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8072         Add utility to aid debugging.
8073         
8074         * dbus/dbus-message-builder.c:
8075         (append_string_field), (_dbus_message_data_load): Update to
8076         reflect protocol changes; Change the FIELD_NAME directive
8077         to HEADER_FIELD and allow it to take the field's conventional
8078         name rather than the actual value.
8079         
8080         * test/data/*/*.message: Update to use HEADER_FIELD instead
8081         of FIELD_NAME; Always align the header on an 8 byte boundary
8082         *before* updating the header length.
8083
8084 2003-09-15  Havoc Pennington  <hp@pobox.com>
8085
8086         * dbus/dbus-pending-call.c: add the get/set object data
8087         boilerplate as for DBusConnection, etc. Use generic object data
8088         for the notify callback.
8089
8090         * glib/dbus-gparser.c (parse_node): parse child nodes
8091
8092         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8093         
8094         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8095         contain functions shared between the convenience lib and the
8096         installed lib
8097
8098         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8099         -export-symbols-regex to the GLib library
8100
8101         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8102         fix the locking in here, and add a default handler for
8103         Introspect() that just returns sub-nodes.
8104
8105 2003-09-14  Havoc Pennington  <hp@pobox.com>
8106
8107         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8108         rather than gfoo consistent
8109
8110         * glib/dbus-gproxy.h: delete for now, move contents to
8111         dbus-glib.h, because the include files don't work right since we
8112         aren't in the dbus/ subdir.
8113         
8114         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8115         (dbus_gproxy_end_call): finish
8116         (dbus_gproxy_begin_call): finish
8117
8118         * glib/dbus-gmain.c (dbus_set_g_error): new
8119
8120         * glib/dbus-gobject.c (handle_introspect): include information
8121         about child nodes in the introspection
8122
8123         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8124         function to help in implementation of introspection
8125
8126         * dbus/dbus-object-tree.c
8127         (_dbus_object_tree_list_registered_and_unlock): new function
8128
8129 2003-09-12  Havoc Pennington  <hp@pobox.com>
8130
8131         * glib/dbus-gidl.h: add common base class for all the foo_info
8132         types
8133
8134         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8135         similar to kdcop
8136
8137         * test/Makefile.am: try test srcdir -ef . in addition to test
8138         srcdir = ., one of them should work (yeah lame)
8139         
8140         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8141         library
8142         
8143         * glib/dbus-gparser.h: make description_load routines return
8144         NodeInfo* not Parser*
8145
8146         * Makefile.am (SUBDIRS): build test dir after all library dirs
8147
8148         * configure.in: add GTK+ detection
8149
8150 2003-09-07  Havoc Pennington  <hp@pobox.com>
8151
8152         * Make Doxygen contented.
8153
8154 2003-09-07  Havoc Pennington  <hp@pobox.com>
8155
8156         * doc/dbus-specification.sgml: more updates
8157
8158 2003-09-06  Havoc Pennington  <hp@pobox.com>
8159
8160         * doc/dbus-specification.sgml: partial updates
8161
8162         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8163         zillionth time; hopefully I edited the right file this time.
8164
8165         * bus/config-parser.c (append_rule_from_element): support
8166         send_type, send_path, receive_type, receive_path
8167
8168         * bus/policy.c: add message type and path to the list of things
8169         that can be "firewalled"
8170
8171 2003-09-06  Havoc Pennington  <hp@pobox.com>
8172
8173         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8174         (dbus_connection_register_object_path): make this not handle
8175         messages to paths below the given path
8176
8177 2003-09-03  Havoc Pennington  <hp@pobox.com>
8178
8179         * test/glib/Makefile.am: add this with random glib-linked test
8180         programs
8181
8182         * glib/Makefile.am: remove the random test programs from here,
8183         leave only the unit tests
8184
8185         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8186         uscore/javacaps conversion, and fix     
8187         (get_object_property, set_object_property): change to .NET
8188         convention for mapping props to methods, set_FooBar/get_FooBar, 
8189         since one language has such a convention we may as well copy it. 
8190         Plus real methods in either getFooBar or get_foo_bar style won't 
8191         collide with this convention.
8192
8193 2003-09-01  Havoc Pennington  <hp@pobox.com>
8194
8195         * glib/dbus-gparser.c: implement
8196
8197         * glib/dbus-gobject.c: start implementing skeletons support
8198
8199         * configure.in: when disabling checks/assert, also define
8200         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8201
8202 2003-09-01  Havoc Pennington  <hp@pobox.com>
8203
8204         * glib/Makefile.am: rearrange a bunch of files and get "make
8205         check" framework set up
8206
8207 2003-08-31  Havoc Pennington  <hp@pobox.com>
8208
8209         * fix build with --disable-tests
8210
8211 2003-08-30  Havoc Pennington  <hp@pobox.com>
8212
8213         * dbus/dbus-connection.c: purge DBusMessageHandler
8214
8215         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8216         use callbacks everywhere
8217
8218 2003-08-30  Havoc Pennington  <hp@pobox.com>
8219
8220         * test/data/valid-config-files/system.d/test.conf: change to 
8221         root for the user so warnings don't get printed
8222
8223         * dbus/dbus-message.c: add dbus_message_get_path,
8224         dbus_message_set_path
8225         
8226         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8227         dispatching to a path
8228
8229         * dbus/dbus-string.c (_dbus_string_validate_path): add
8230
8231         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8232         (_dbus_marshal_object_path): implement
8233
8234         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8235         to contain the path to the target object
8236         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8237         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8238
8239 2003-08-30  Havoc Pennington  <hp@pobox.com>
8240
8241         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8242
8243 2003-08-29  Havoc Pennington  <hp@pobox.com>
8244
8245         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8246         registered
8247         (struct DBusObjectSubtree): shrink this
8248         a lot, since we may have a lot of them
8249         (_dbus_object_tree_free_all_unlocked): implement
8250         (_dbus_object_tree_dispatch_and_unlock): implement
8251
8252 2003-08-29  Havoc Pennington  <hp@pobox.com>
8253
8254         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8255
8256 2003-08-28  Havoc Pennington  <hp@pobox.com>
8257
8258         purge DBusObjectID
8259         
8260         * dbus/dbus-connection.c: port to no ObjectID, create a
8261         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8262
8263         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8264         everything except UnregisterFunction and MessageFunction
8265         
8266         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8267         add DBUS_TYPE_OBJECT_PATH
8268         
8269         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8270         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8271         path-based object IDs
8272
8273 2003-08-25  Havoc Pennington  <hp@pobox.com>
8274
8275         Just noticed that dbus_message_test is hosed, I wonder when I
8276         broke that. I thought make check was passing earlier...
8277         
8278         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8279         container tree, will replace most of dbus-object-registry
8280
8281         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8282         screwup
8283
8284 2003-08-19  Havoc Pennington  <hp@pobox.com>
8285
8286         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8287         (dbus_message_is_error): fix this function
8288
8289         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8290         match
8291
8292         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8293         reflect clarified man page
8294         (bus_client_policy_check_can_send): ditto
8295         
8296         * bus/session.conf.in: fixup
8297
8298         * bus/system.conf.in: fixup
8299
8300 2003-08-18  Havoc Pennington  <hp@redhat.com>
8301
8302         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8303
8304         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8305         dumb bug created earlier (wrong order of args to
8306         decode_header_data())
8307         
8308         * tools/dbus-send.c: port
8309
8310         * tools/dbus-print-message.c (print_message): port
8311
8312         * test/data/*messages: port all messages over
8313         
8314         * dbus/dbus-message-builder.c: support including 
8315         message type
8316         
8317         * bus/driver.c: port over
8318         
8319         * bus/dispatch.c: port over to new stuff
8320
8321         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8322         rename disconnect signal to "Disconnected"
8323
8324 2003-08-17  Havoc Pennington  <hp@pobox.com>
8325
8326         This doesn't compile yet, but syncing up so I can hack on it from
8327         work. What are branches for if not broken code? ;-)
8328         
8329         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8330         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8331         DBUS_HEADER_FIELD_ERROR_NAME
8332         
8333         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8334         for the interface+member pairs
8335         (string_hash): change to use g_str_hash algorithm
8336         (find_direct_function, find_string_function): refactor these to
8337         share most code.
8338         
8339         * dbus/dbus-message.c: port all of this over to support 
8340         interface/member fields instead of name field
8341
8342         * dbus/dbus-object-registry.c: port over
8343         
8344         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8345         from _dbus_string_validate_name
8346
8347         * bus/dbus-daemon-1.1: change file format for the 
8348         <deny>/<allow> stuff to match new message naming scheme
8349
8350         * bus/policy.c: port over
8351
8352         * bus/config-parser.c: parse new format
8353         
8354 2003-08-16  Havoc Pennington  <hp@pobox.com>
8355
8356         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8357         broken assertion
8358
8359         * glib/dbus-gproxy.c: some hacking
8360
8361 2003-08-15  Havoc Pennington  <hp@redhat.com>
8362
8363         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8364
8365         * dbus/dbus-connection.c
8366         (dbus_connection_send_with_reply_and_block): factor out internals;
8367         change to convert any error replies to DBusError instead of 
8368         returning them as a message
8369
8370 2003-08-15  Havoc Pennington  <hp@pobox.com>
8371
8372         * dbus/dbus-connection.c, 
8373         dbus/dbus-pending-call.c: Finish the pending call stuff
8374
8375 2003-08-14  Havoc Pennington  <hp@redhat.com>
8376
8377         * dbus/dbus-pending-call.c: start on new object that will replace
8378         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8379         replies
8380
8381         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8382         with remote interfaces
8383
8384         * dbus/dbus-gidl.c: do the boring boilerplate in here
8385         
8386 2003-08-12  Havoc Pennington  <hp@pobox.com>
8387
8388         * bus/dispatch.c (bus_dispatch): make this return proper 
8389         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8390
8391         * dbus/dbus-errors.c (dbus_set_error): use
8392         _dbus_string_append_printf_valist
8393
8394         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8395         (_dbus_string_append_printf): new
8396
8397         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8398         UNKNOWN_METHOD
8399
8400         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8401         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8402         message is unhandled.
8403
8404 2003-08-11  Havoc Pennington  <hp@pobox.com>
8405
8406         * bus/test.c (client_disconnect_handler): change to return
8407         HANDLED (would have been REMOVE_MESSAGE)
8408
8409         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8410         HANDLED/NOT_YET_HANDLED instead of
8411         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8412         should be used.
8413
8414 2003-08-10  Havoc Pennington  <hp@pobox.com>
8415
8416         * tools/dbus-send.c (main): add --type argument, for now
8417         supporting only method_call and signal types.
8418
8419         * tools/dbus-print-message.c: print message type
8420
8421         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8422         init connection->objects
8423
8424         * doc/dbus-specification.sgml: fix sgml
8425
8426         * bus/*.c: port over to object-instance API changes
8427
8428         * test/test-service.c: ditto
8429         
8430         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8431         name, we will have to fix up the rest of the code to also handle
8432         this
8433         (dbus_message_new): generic message-creation call
8434         (set_string_field): allow appending name field
8435
8436 2003-08-06  Havoc Pennington  <hp@pobox.com>
8437
8438         * dbus/dbus-object-registry.c: implement signal connection 
8439         and dispatch
8440
8441         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8442
8443         * dbus/dbus-internals.c (_dbus_memdup): new function
8444
8445 2003-08-02  Havoc Pennington  <hp@pobox.com>
8446
8447         * dbus/dbus-message.c (dbus_message_get_no_reply)
8448         (dbus_message_set_no_reply): add these and remove
8449         set_is_error/get_is_error
8450
8451         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8452         remove the ERROR flag, since there's now an ERROR type
8453
8454 2003-08-01  Havoc Pennington  <hp@pobox.com>
8455
8456         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8457         implement
8458
8459         * dbus/dbus-message.c (dbus_message_get_type): new function
8460
8461         * doc/dbus-specification.sgml: add "type" byte to messages
8462
8463 2003-08-01  Havoc Pennington  <hp@pobox.com>
8464
8465         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8466         a message type enum to distinguish kinds of message
8467         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8468         that need not be replied to
8469
8470 2003-08-01  Havoc Pennington  <hp@pobox.com>
8471
8472         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8473         (unpack_8_octets): fix no-64-bit-int bug
8474
8475         * dbus/dbus-object-registry.c (validate_id): validate the 
8476         connection ID bits, not just the instance ID.
8477
8478         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8479         the connection-global 33 bits of the object ID
8480
8481         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8482         object ID in the new way
8483
8484         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8485         define server/client/instance bits.
8486
8487 2003-07-30  Havoc Pennington  <hp@pobox.com>
8488
8489         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8490         build
8491
8492 2003-07-13  Havoc Pennington  <hp@pobox.com>
8493
8494         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8495         fields to DBusObjectVTable and DBusObjectInfo
8496
8497 2003-07-12  Havoc Pennington  <hp@pobox.com>
8498
8499         * dbus/dbus-object-registry.c: implement unit test,
8500         fix bugs discovered in process
8501
8502         * dbus/dbus-connection.c: remove handler_table and
8503         register_handler(), add DBusObjectRegistry usage
8504
8505         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8506         (dbus_object_id_set_null): new functions
8507
8508 2003-07-08  Havoc Pennington  <hp@pobox.com>
8509
8510         * dbus/dbus-object.c: implement some of this
8511
8512         * dbus/dbus-object-registry.c
8513         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8514         param
8515         (_dbus_object_registry_new): handle OOM
8516
8517 2003-07-08  Havoc Pennington  <hp@pobox.com>
8518
8519         * dbus/dbus-object.h: sketch out an API for registering objects
8520         with a connection, that allows us to use as little as 24 bytes
8521         per object and lets application code represent an object in 
8522         any conceivable way.
8523
8524         * dbus/dbus-object-registry.c: implement the hard bits of the
8525         DBusConnection aspect of object API. Not yet wired up.
8526         
8527 2003-07-06  Havoc Pennington  <hp@pobox.com>
8528
8529         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8530         (_dbus_marshal_object_id): new
8531         (_dbus_demarshal_object_id): new
8532         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8533         consolidate identical switch cases. Don't conditionalize handling
8534         of DBUS_TYPE_UINT64, need to handle the type always.
8535         (_dbus_marshal_validate_arg): consolidate identical cases, and
8536         handle DBUS_TYPE_OBJECT_ID
8537
8538         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8539
8540         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8541
8542 2003-09-28  Havoc Pennington  <hp@pobox.com>
8543
8544         * real 0.13 release
8545
8546 2003-09-28  Havoc Pennington  <hp@pobox.com>
8547
8548         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8549         to work with Debian db2html
8550
8551 2003-09-28  Havoc Pennington  <hp@pobox.com>
8552
8553         * configure.in: 0.13
8554
8555         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8556         stylesheet-images for benefit of Debian
8557         
8558         Change back to using filesystem-linked sockets for the system
8559         bus, so only root can create the default system bus address.
8560         
8561         * bus/system.conf.in: change to use
8562         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8563
8564         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8565         from here.
8566
8567         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8568         here, and AC_DEFINE DBUS_SYSTEM_PATH
8569
8570 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8571
8572         * doc/TODO:
8573         * doc/busconfig.dtd:
8574         Add busconfig DTD.
8575         
8576 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8577
8578         * doc/dbus-specification.sgml:
8579         Add activation reply values.
8580         
8581 2003-08-05  Havoc Pennington  <hp@redhat.com>
8582
8583         * configure.in: 0.12
8584
8585 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8586
8587         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8588         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8589         (add_watch), (remove_watch), (create_source):
8590         Refcount fds, fixes some reentrancy issues.
8591         
8592 2003-07-30  Havoc Pennington  <hp@redhat.com>
8593
8594         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8595         bus address to be abstract if we have abstract sockets
8596
8597         * NEWS: update
8598
8599 2003-07-28  Havoc Pennington  <hp@redhat.com>
8600
8601         * bus/messagebus.in: fix to avoid processname/servicename 
8602         confusion, from Michael Kearey
8603         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8604         
8605 2003-07-23  Havoc Pennington  <hp@pobox.com>
8606
8607         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8608         fix from Andy Hanton to remove broken "+1"
8609
8610 2003-07-16  Havoc Pennington  <hp@pobox.com>
8611
8612         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8613         babysitter process, as suggested by Thomas Leonard, so 
8614         an "eval `dbus-launch --exit-with-session`" will actually 
8615         return
8616
8617 2003-07-16  Havoc Pennington  <hp@pobox.com>
8618
8619         * configure.in: print out EXPANDED_* variables in the summary at
8620         the end; clean up the code that computes EXPANDED_ variables and
8621         get the ones using exec_prefix right. Should make things work
8622         when you build without --prefix
8623
8624 2003-06-29  Havoc Pennington  <hp@pobox.com>
8625
8626         * mono/Test.cs (class Test): fire up a main loop and run it
8627
8628         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8629         done once, the app has to do it
8630
8631 2003-06-26  Havoc Pennington  <hp@pobox.com>
8632
8633         * mono/Connection.cs: set up connection with the glib main loop
8634
8635 2003-07-01  Havoc Pennington  <hp@redhat.com>
8636
8637         * doc/dbus-specification.sgml: clarify the format of a type code,
8638         change suggested by Jim Blandy
8639
8640 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8641
8642         * doc/Makefile.am:
8643         * tools/Makefile.am: Don't assume srcdir == builddir.
8644
8645         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8646         the allocated block.
8647         (_dbus_memory_test): New function.
8648         * dbus/dbus-test.h: Add _dbus_memory_test ().
8649         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8650
8651         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8652         of %c%c%c%c.
8653         (dbus_message_new): Remove obsolete @todo.
8654
8655         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8656         (_dbus_marshal_set_uint64): Fix comment.
8657
8658         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8659         hardcode FIELD_REPLY_SERIAL.
8660
8661         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8662         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8663
8664         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8665         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8666
8667 2003-06-24  Havoc Pennington  <hp@pobox.com>
8668
8669         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8670
8671 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8672
8673         * configure.in:
8674         * gcj/.cvsignore:
8675         * gcj/Hello.java:
8676         * gcj/Makefile.am:
8677         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8678         * gcj/org/.cvsignore:
8679         * gcj/org/Makefile.am:
8680         * gcj/org/freedesktop/.cvsignore:
8681         * gcj/org/freedesktop/Makefile.am:
8682         * gcj/org/freedesktop/dbus/.cvsignore:
8683         * gcj/org/freedesktop/dbus/Makefile.am:
8684         * gcj/org/freedesktop/dbus/Message.java: (Message),
8685         (Message.Message):
8686         * gcj/org/freedesktop/dbus/natMessage.cc:
8687         Fix the build system.
8688
8689 2003-06-22  Havoc Pennington  <hp@pobox.com>
8690
8691         * mono/Connection.cs: add more bindings
8692
8693         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8694         more than once.
8695
8696 2003-06-22  Havoc Pennington  <hp@pobox.com>
8697
8698         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8699         Start wrapping more stuff.
8700
8701 2003-06-22  Havoc Pennington  <hp@pobox.com>
8702
8703         * mono/Message.cs: implement Message.Wrap() that ensures we only
8704         have a single C# wrapper per DBusMessage, assuming it works which
8705         it probably doesn't.
8706
8707         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8708         (dbus_message_free_data_slot): new
8709         (dbus_message_set_data): new
8710         (dbus_message_get_data): new
8711
8712 2003-06-22  Havoc Pennington  <hp@pobox.com>
8713
8714         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8715         (_dbus_data_slot_allocator_alloc): rework these to keep a
8716         reference count on each slot and automatically manage a global
8717         slot ID variable passed in by address
8718
8719         * bus/bus.c: convert to new dataslot API
8720
8721         * dbus/dbus-bus.c: convert to new dataslot API
8722
8723         * dbus/dbus-connection.c: convert to new dataslot API
8724
8725         * dbus/dbus-server.c: convert to new dataslot API
8726
8727         * glib/dbus-gmain.c: ditto
8728
8729         * bus/test.c: ditto
8730
8731         * bus/connection.c: ditto
8732
8733 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8734
8735         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8736         after the gcj checks so that the correct configuration tags
8737         will be added to libtool.
8738
8739         * dbus-glib-1.pc.in: No need to specify any includes since
8740         dbus-1.pc.in has those.
8741
8742 2003-06-22  Havoc Pennington  <hp@pobox.com>
8743
8744         * mono/*, gcj/*, configure.in, Makefile.am:
8745         Check in makefiles and subdirs for mono and gcj bindings.
8746         Neither binding actually exists, just trying to get through
8747         all the build and other boring bits.
8748
8749 2003-06-21  Philip Blundell  <philb@gnu.org>
8750
8751         * tools/dbus-monitor.1: Updated.
8752
8753         * tools/dbus-send.1: Likewise.
8754
8755 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8756
8757         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8758         for hangup and error after checking read so we won't discard
8759         pending data if both hangup and read are set.
8760
8761 2003-06-19  Philip Blundell  <philb@gnu.org>
8762
8763         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8764
8765         * tools/dbus-send.c: Accept both --system and --session.
8766
8767         * tools/dbus-monitor.c: Same here.
8768
8769 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8770
8771         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8772         from C++ (Patch by Miloslav Trmac).
8773
8774 2003-06-15  Joe Shaw  <joe@assbarn.com>
8775
8776         * configure.in: Check for socklen_t.
8777
8778         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8779
8780         * test/test-segfault.c: Add #include <sys/time.h>
8781
8782         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8783         dbus-launch needs it.
8784
8785 2003-06-09  Havoc Pennington  <hp@redhat.com>
8786
8787         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8788         SUN_LEN, it breaks abstract socket usage
8789
8790         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8791         starts of lines.
8792
8793 2003-06-04  Havoc Pennington  <hp@pobox.com>
8794
8795         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8796         using unix:abstract=/foo, and when listening in a tmpdir
8797         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8798
8799         * dbus/dbus-transport.c (_dbus_transport_open): support
8800         unix:abstract=/foo
8801
8802         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8803         support abstract sockets
8804
8805         * dbus/dbus-transport-unix.c
8806         (_dbus_transport_new_for_domain_socket): support abstract sockets
8807
8808         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8809         toggle as an argument, implement abstract namespace support
8810         (_dbus_listen_unix_socket): ditto
8811
8812         * configure.in: add --enable-abstract-sockets and implement
8813         a configure check for autodetection of the right value.
8814
8815 2003-06-01  Havoc Pennington  <hp@pobox.com>
8816
8817         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8818         in /tmp (though on Linux this will end up being useless,
8819         when we add abstract namespace support)
8820
8821         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8822         subst'ing it
8823
8824 2003-05-28  Colin Walters  <walters@verbum.org>
8825
8826         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8827
8828 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8829
8830         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8831
8832 2003-05-17  Colin Walters  <walters@gnu.org>
8833
8834         * tools/dbus-send.c: Don't exit with an error code if --help was
8835         passed.  Default to using the session bus instead of the system
8836         one.
8837
8838         * tools/dbus-launch.c: Ditto.
8839
8840         * tools/dbus-monitor.c: Ditto.
8841
8842         * tools/dbus-send.1: Update with new arguments.
8843
8844         * tools/dbus-launch.c: Emit code to export variables.  New
8845         arguments -s and -c to specify shell syntax, and a bit of code to
8846         autodetect syntax.  Also, allow specifying a program to run.
8847
8848         * tools/dbus-launch.1: Update with new arguments.
8849
8850         * tools/dbus-send.1: Ditto.
8851
8852         * tools/dbus-monitor.1: Ditto.
8853
8854 2003-05-17  Havoc Pennington  <hp@pobox.com>
8855
8856         * bus/config-parser.c (merge_included): merge in policies from
8857         child configuration file.
8858
8859         * bus/policy.c (bus_policy_merge): function to merge two policies
8860         together
8861
8862 2003-05-16  Havoc Pennington  <hp@redhat.com>
8863
8864         * dbus/dbus-connection.c: disable verbose lock spew
8865
8866         * tools/dbus-send.c: add --print-reply command line option
8867
8868         * tools/dbus-print-message.h (print_message): new util function
8869         shared by dbus-send and dbus-monitor
8870
8871         * tools/dbus-monitor.c (handler_func): exit on disconnect
8872
8873         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8874         disconnected, don't try to use the read_watch
8875
8876         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8877         so we can find this bug more easily
8878
8879 2003-05-16  Havoc Pennington  <hp@redhat.com>
8880
8881         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8882         NULL as DBusHashTable is annoyingly likely to do.
8883
8884 2003-05-16  Colin Walters  <walters@verbum.org>
8885
8886         * tools/dbus-monitor.c: Add --session argument and usage()
8887         function.
8888
8889         * tools/dbus-monitor.1: Update with new --session arg.
8890
8891         * bus/Makefile.am (install-data-hook): Create
8892         $(libdir)/dbus-1.0/services so that the session bus is happy.
8893
8894 2003-05-15  Havoc Pennington  <hp@redhat.com>
8895
8896         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8897         on non-x86. ifdef's are evil.
8898
8899 2003-05-15  Havoc Pennington  <hp@redhat.com>
8900
8901         * configure.in: 0.11
8902
8903         * NEWS: update
8904
8905         * bus/Makefile.am (initddir): apparently we are supposed to put
8906         init scripts in /etc/rc.d/init.d not /etc/init.d
8907
8908         * bus/Makefile.am: remove the "you must --enable-tests to make
8909         check" as it broke distcheck
8910
8911         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8912
8913 2003-05-13  James Willcox  <jwillcox@gnome.org>
8914
8915         * configure.in:
8916         * bus/activation.c: (bus_activation_service_created),
8917         (bus_activation_activate_service):
8918         * bus/driver.c: (bus_driver_send_service_deleted),
8919         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8920         (bus_driver_send_service_acquired),
8921         (bus_driver_send_welcome_message),
8922         (bus_driver_handle_list_services):
8923         * bus/session.conf.in:
8924         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8925         (dbus_bus_service_exists), (dbus_bus_activate_service):
8926         * dbus/dbus-bus.h:
8927
8928         Add some convenience API which lets you activate a service, and did a
8929         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8930         and dbus_message_get_args()
8931
8932 2003-05-11  Havoc Pennington  <hp@pobox.com>
8933
8934         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8935         calling _dbus_marshal_validate_arg() for every byte in a byte
8936         array, etc.
8937
8938         * dbus/dbus-message-handler.c: use atomic reference counting to
8939         reduce number of locks slightly; the global lock in here sucks
8940
8941         * dbus/dbus-connection.c
8942         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8943         update_dispatch_status that can be called with lock held; then use
8944         in a couple places to reduce locking/unlocking
8945         (dbus_connection_send): hold the lock over the whole function
8946         instead of acquiring it twice.
8947
8948         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8949
8950         * bus/connection.c (bus_connections_setup_connection): fix access
8951         to already-freed memory.
8952
8953         * dbus/dbus-connection.c: keep a little cache of linked list
8954         nodes, to avoid using the global linked list alloc lock in the
8955         normal send-message case. Instead we just use the connection lock
8956         that we already have to take.
8957
8958         * dbus/dbus-list.c (_dbus_list_find_last): new function
8959
8960         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8961         change to use a struct for the atomic type; fix docs,
8962         they return value before increment, not after increment.
8963
8964         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8965         (_dbus_string_append_8_aligned): new functions to try to
8966         microoptimize this operation.
8967         (reallocate_for_length): break this out of set_length(), to
8968         improve profile info, and also so we can consider inlining the
8969         set_length() part.
8970
8971         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8972         strings with some preallocation, cuts down on our calls to realloc
8973         a fair bit. Though if we can get the "move entire string to empty
8974         string" optimization below to kick in here, it would be better.
8975
8976         * dbus/dbus-string.c (_dbus_string_move): just call
8977         _dbus_string_move_len
8978         (_dbus_string_move_len): add a special case for moving
8979         an entire string into an empty string; we can just
8980         swap the string data instead of doing any reallocs.
8981         (_dbus_string_init_preallocated): new function
8982
8983 2003-05-11  Havoc Pennington  <hp@pobox.com>
8984
8985         Write a "test-profile" that does echo client-server with threads;
8986         profile reveals lock contention, memcpy/realloc of buffers, and
8987         UTF-8 validation as hot spots. 20% of lock contention eliminated
8988         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8989         contention is global mempool locks for GList and DBusList.
8990
8991         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8992         x86 implementation
8993
8994         * dbus/dbus-connection.c (struct DBusConnection): use
8995         dbus_atomic_t for the reference count
8996
8997         * dbus/dbus-message.c (struct DBusMessage): declare
8998         dbus_atomic_t values as volatile
8999
9000         * configure.in: code to detect ability to use atomic integer
9001         operations in assembly, from GLib patch
9002
9003         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9004         time, tired of it being wrong in threads and forked processes
9005
9006         * glib/test-profile.c: a little program to bounce messages back
9007         and forth between threads and eat CPU
9008
9009         * dbus/dbus-connection.c: add debug spew macros for debugging
9010         thread locks; include config.h at top; fix deadlock in
9011         dbus_connection_flush()
9012
9013 2003-05-08  Havoc Pennington  <hp@pobox.com>
9014
9015         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9016         data from getting written, and there wasn't a good reason to
9017         use _exit really.
9018
9019         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9020         dbus_verbose lines in test coverage
9021         (main): add list of functions sorted by # of untested blocks
9022         to the coverage report
9023
9024         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9025
9026         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9027
9028         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9029         extend test coverage
9030
9031         * test/data/auth/cancel.auth-script: test canceling an
9032         authentication
9033
9034         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9035         aren't used. in CVS history if we end up needing them.
9036
9037 2003-05-04  Havoc Pennington  <hp@pobox.com>
9038
9039         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9040         unit test
9041
9042         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9043         function, which assumed length was in # of strings, not bytes
9044
9045         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9046         missing coverage
9047
9048         * dbus/dbus-connection.c
9049         (_dbus_connection_queue_received_message): disable function for
9050         now, we are only using it in test mode
9051
9052         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9053         remove a mistaken FIXME
9054
9055 2003-05-04  Havoc Pennington  <hp@pobox.com>
9056
9057         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9058         unlock mutex on successful return, patch from Anders Gustafsson
9059
9060 2003-05-04  Havoc Pennington  <hp@pobox.com>
9061
9062         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9063         Anders Gustafsson
9064
9065 2003-05-04  Havoc Pennington  <hp@pobox.com>
9066
9067         * tools/dbus-launch.c: implement
9068
9069         * bus/main.c (main), bus/bus.c (bus_context_new):
9070         implement --print-pid and --fork
9071
9072 2003-05-03  Havoc Pennington  <hp@redhat.com>
9073
9074         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9075         the address had no value, and add to test suite. Fix and
9076         regression test from Miloslav Trmac
9077
9078 2003-05-03  Havoc Pennington  <hp@pobox.com>
9079
9080         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9081         watch is invalid when handled
9082
9083         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9084         dbus-launch utility to launch the bus from a shell script.  Didn't
9085         actually implement dbus-launch yet, it's just a placeholder still.
9086
9087 2003-05-03  Havoc Pennington  <hp@pobox.com>
9088
9089         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9090         daemon; also documents daemon config file, so replaces
9091         doc/config-file.txt. Corrected some stuff from config-file.txt in
9092         the process of moving it.
9093
9094 2003-05-03  Havoc Pennington  <hp@pobox.com>
9095
9096         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9097         add some man pages
9098
9099 2003-05-03  Colin Walters  <walters@verbum.org>
9100
9101         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9102         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9103
9104         * Makefile.am: Update to use new .pc versioning scheme.
9105
9106 2003-05-02  Havoc Pennington  <hp@redhat.com>
9107
9108         * bus/system.conf.in: allow send/receive to/from message bus
9109         service
9110
9111 2003-04-30  Havoc Pennington  <hp@redhat.com>
9112
9113         * configure.in: print a note when building with unit tests and
9114         without assertions
9115
9116 2003-04-30  Havoc Pennington  <hp@redhat.com>
9117
9118         * Makefile.am: add a check-local that complains if you didn't
9119         configure with --enable-tests
9120
9121 2003-04-29  Havoc Pennington  <hp@redhat.com>
9122
9123         * glib/dbus-gmain.c: docs cleanups
9124
9125         * dbus/dbus-types.h: add docs on int64 types
9126
9127         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9128         public API docs section
9129
9130 2003-04-29  Havoc Pennington  <hp@redhat.com>
9131
9132         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9133         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9134         parallel install API version, not with the D-BUS package version.
9135
9136         * HACKING: move some of README over here
9137
9138         * README: updates, and document API/ABI policy
9139
9140         * configure.in: reindentation
9141
9142 2003-04-29  Havoc Pennington  <hp@redhat.com>
9143
9144         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9145         to use this library" to be sure people have the right
9146         expectations.
9147
9148 2003-04-28  Havoc Pennington  <hp@redhat.com>
9149
9150         * configure.in: add --enable-docs which by default is auto yes if
9151         doxygen and db2html found, no otherwise; but can be forced on/off
9152
9153         * doc/Makefile.am: conditionalize whether to build docs on
9154         --enable-docs
9155
9156 2003-04-28  Havoc Pennington  <hp@redhat.com>
9157
9158         * configure.in: 0.10
9159
9160         * NEWS: update
9161
9162         * bus/system.conf.in: add <includedir>system.d</includedir>
9163
9164         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9165         username was provided but not uid
9166
9167         * bus/config-parser.c (struct BusConfigParser): keep track of
9168         whether the parser is toplevel or was included; change some
9169         of the error handling if it's included.
9170
9171 2003-04-27  Havoc Pennington  <hp@pobox.com>
9172
9173         Unbreak my code...
9174
9175         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9176         report correct status if we finish processing authentication
9177         inside this function.
9178
9179         * bus/activation.c (try_send_activation_failure): use
9180         bus_transaction_send_error_reply
9181
9182         * bus/connection.c (bus_connection_get_groups): return an error
9183         explaining the problem
9184
9185         * bus/bus.c (bus_context_check_security_policy): implement
9186         restriction here that inactive connections can only send the
9187         hello message. Also, allow bus driver to send anything to
9188         any recipient.
9189
9190         * bus/connection.c (bus_connection_complete): create the
9191         BusClientPolicy here instead of on-demand.
9192         (bus_connection_get_policy): don't return an error
9193
9194         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9195         sender field in message being replied to
9196
9197         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9198         causing it to return FALSE always
9199
9200         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9201         we checked sender rather than destination
9202
9203 2003-04-25  Havoc Pennington  <hp@redhat.com>
9204
9205         test suite is slightly hosed at the moment, will fix soon
9206
9207         * bus/connection.c (bus_connections_expire_incomplete): fix to
9208         properly disable the timeout when required
9209         (bus_connection_set_name): check whether we can remove incomplete
9210         connections timeout after we complete each connection.
9211
9212         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9213         probably still broken.
9214
9215         * bus/services.c (bus_registry_acquire_service): implement max
9216         number of services owned, and honor allow/deny rules on which
9217         services a connection can own.
9218
9219         * bus/connection.c (bus_connection_get_policy): report errors here
9220
9221         * bus/activation.c: implement limit on number of pending
9222         activations
9223
9224 2003-04-25  Havoc Pennington  <hp@redhat.com>
9225
9226         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9227         where we used >= 0 instead of != DBUS_UID_UNSET.
9228
9229 2003-04-25  Havoc Pennington  <hp@redhat.com>
9230
9231         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9232         were toggled without add/remove, fix from Anders Gustafsson
9233
9234 2003-04-24  Havoc Pennington  <hp@redhat.com>
9235
9236         * test/data/valid-config-files/basic.conf: add <limit> tags to
9237         this test
9238
9239         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9240         <limit> tag in configuration file.
9241
9242 2003-04-24  Havoc Pennington  <hp@redhat.com>
9243
9244         * bus/dispatch.c: somehow missed some name_is
9245
9246         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9247         (_dbus_timeout_set_interval): new
9248
9249         * bus/connection.c (bus_connections_setup_connection): record time
9250         when each connection is first set up, and expire them after the
9251         auth timeout passes.
9252
9253 2003-04-24  Havoc Pennington  <hp@redhat.com>
9254
9255         * dbus/dbus-message.c (dbus_message_name_is): rename
9256         (dbus_message_service_is): rename
9257         (dbus_message_sender_is): rename
9258         (dbus_message_get_service): rename
9259
9260 2003-04-24  Havoc Pennington  <hp@redhat.com>
9261
9262         * configure.in: add --enable-checks
9263
9264         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9265
9266         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9267         to use thread locks.
9268         (_dbus_connection_handler_destroyed_locked): move some private
9269         functions into proper docs group
9270
9271         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9272         _dbus_return_val_if_fail
9273
9274         Throughout: use dbus_return_if_fail
9275
9276 2003-04-23  James Willcox  <jwillcox@gnome.org>
9277
9278         * glib/dbus-glib.h:
9279         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9280         (dbus_connection_setup_with_g_main),
9281         (dbus_server_setup_with_g_main):
9282         * glib/test-dbus-glib.c: (main):
9283         * glib/test-thread-client.c: (main):
9284         * glib/test-thread-server.c: (new_connection_callback), (main):
9285         * tools/dbus-monitor.c: (main):
9286
9287         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9288         and dbus_server_setup_with_g_main().
9289
9290 2003-04-20  Havoc Pennington  <hp@pobox.com>
9291
9292         * doc/dbus-specification.sgml: document the restrictions on
9293         message and service names
9294
9295 2003-04-22  Havoc Pennington  <hp@redhat.com>
9296
9297         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9298         support, and do some code cleanups to share more code and
9299         speed up array marshal/demarshal.
9300
9301         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9302
9303         * configure.in: generate dbus-arch-deps.h
9304
9305         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9306         64-bit typecodes
9307
9308 2003-04-22  Havoc Pennington  <hp@redhat.com>
9309
9310         * test/data/valid-messages/opposite-endian.message: fix test
9311         to use proper type for rply field
9312
9313         * test/data/invalid-messages: add tests for below validation
9314
9315         * dbus/dbus-message.c (decode_header_data): validate field types,
9316         and validate that named fields are valid names
9317         (decode_name_field): consider messages in the
9318         org.freedesktop.Local. namespace to be invalid.
9319
9320         * dbus/dbus-string.c (_dbus_string_validate_name): new
9321
9322 2003-04-19  Havoc Pennington  <hp@pobox.com>
9323
9324         * bus/driver.c (bus_driver_handle_hello): check limits and
9325         return an error if they are exceeded.
9326
9327         * bus/connection.c: maintain separate lists of active and inactive
9328         connections, and a count of each. Maintain count of completed
9329         connections per user. Implement code to check connection limits.
9330
9331         * dbus/dbus-list.c (_dbus_list_unlink): export
9332
9333         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9334         number of bytes in the message queue for a connection
9335
9336 2003-04-18  Havoc Pennington  <hp@pobox.com>
9337
9338         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9339
9340         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9341         memleaks
9342
9343         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9344         on realloc be sure to update the pointer in the keyring
9345
9346         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9347         offset to avoid writing to unallocated memory
9348
9349         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9350         try the next mechanism, so we properly handle OOM
9351
9352         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9353         on OOM.
9354         (_dbus_keyring_new): fix OOM bug
9355         (_dbus_keyring_new_homedir): always set error; impose a maximum
9356         number of keys we'll load from the file, mostly to speed up the
9357         test suite and make its OOM checks more useful, but also for
9358         general sanity.
9359
9360         * dbus/dbus-auth.c (process_error_server): reject authentication
9361         if we get an error from the client
9362         (process_cancel): on cancel, send REJECTED, per the spec
9363         (process_error_client): send CANCEL if we get an error from the
9364         server.
9365
9366 2003-04-18  Havoc Pennington  <hp@pobox.com>
9367
9368         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9369         debug spew
9370
9371         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9372         handling problem
9373
9374         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9375         about DBUS_TEST_HOMEDIR once
9376
9377         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9378         the environment
9379
9380         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9381         config file so we test the right thing
9382
9383         Throughout: assorted docs improvements
9384
9385 2003-04-18  Havoc Pennington  <hp@pobox.com>
9386
9387         * glib/dbus-gmain.c: adapt to watch changes
9388
9389         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9390
9391         * dbus/dbus-server.h: remove dbus_server_handle_watch
9392
9393         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9394
9395         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9396         like DBusTimeout, so we don't need dbus_connection_handle_watch
9397         etc.
9398
9399 2003-04-17  Havoc Pennington  <hp@redhat.com>
9400
9401         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9402         database usage so it all goes via the DBusUserDatabase cache.
9403
9404 2003-04-17  Havoc Pennington  <hp@redhat.com>
9405
9406         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9407         there was an OOM watch we skipped, we always return TRUE so we
9408         iterate again to have a look at it again. Fixes test suite hang.
9409         Code rearrangement also lets us lose some memset and only iterate
9410         over callbacks once.
9411
9412         * bus/driver.c (bus_driver_handle_message): sense of test for
9413         reply was backward
9414
9415 2003-04-16  Havoc Pennington  <hp@pobox.com>
9416
9417         * doc/dbus-specification.sgml: make spec say serials are unsigned
9418
9419         * dbus/dbus-message.h: change message serials to unsigned
9420
9421         * dbus/dbus-connection.c: adapt to message serials being unsigned
9422
9423 2003-04-15  Havoc Pennington  <hp@pobox.com>
9424
9425         * bus/bus.c: create and keep around a shared DBusUserDatabase
9426         object.
9427
9428         * bus/connection.c (bus_connection_get_groups): don't cache
9429         groups for user in the connection object, since user database
9430         object now does that.
9431
9432 2003-04-16  Havoc Pennington  <hp@redhat.com>
9433
9434         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9435         list of size counters
9436         (_dbus_message_loader_putback_message_link): put back a popped link
9437
9438         * dbus/dbus-connection.c
9439         (dbus_connection_set_max_live_messages_size): rename
9440         max_received_size
9441         (dbus_connection_get_outgoing_size): get size of outgoing
9442         queue
9443         (_dbus_connection_set_connection_counter): remove this cruft
9444
9445 2003-04-14  Havoc Pennington  <hp@redhat.com>
9446
9447         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9448         caching, but at some point we might want to be able to use a
9449         different database.
9450
9451         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9452         SHA1 conf file to test the sha1 auth mechanism, since the regular
9453         test always uses EXTERNAL when available.
9454
9455         * configure.in,
9456         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9457         add conf file that requires use of sha1 auth
9458
9459 2003-04-13  Havoc Pennington  <hp@pobox.com>
9460
9461         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9462         from Philip Blundell to send messages and monitor them.
9463
9464 2003-04-13  Havoc Pennington  <hp@pobox.com>
9465
9466         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9467         callbacks
9468
9469         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9470         users
9471
9472         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9473         fix to only recover unused bytes if we're already authenticated
9474         (_dbus_transport_get_is_authenticated): fix to still mark us
9475         authenticated if there are unused bytes.
9476
9477         * bus/dispatch.c: implement security policy checking
9478
9479         * bus/connection.c (bus_transaction_send_from_driver): new
9480
9481         * bus/bus.c (bus_context_check_security_policy): new
9482
9483         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9484         now we just set the DBusError and it gets converted to an error
9485         reply.
9486
9487         * bus/connection.c (allow_user_function): enable code using actual
9488         data from the config file
9489
9490         * bus/policy.c (list_allows_user): handle wildcard rules for
9491         user/group connection perms
9492
9493 2003-04-13  Havoc Pennington  <hp@pobox.com>
9494
9495         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9496
9497         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9498
9499         * bus/policy.c (bus_policy_append_mandatory_rule)
9500         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9501         (bus_policy_append_group_rule): new functions
9502
9503 2003-04-12  Havoc Pennington  <hp@pobox.com>
9504
9505         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9506
9507         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9508         the pid/gid/uid, just for paranoia.
9509
9510         * test/break-loader.c (randomly_do_n_things): find a byte
9511         containing a type code, and randomly change it to a different
9512         type code.
9513
9514 2003-04-12  Havoc Pennington  <hp@pobox.com>
9515
9516         * bus/policy.h: change BusPolicy to be the thing from the config
9517         file, and rename old BusPolicy to BusClientPolicy
9518
9519         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9520         match change in how policy works
9521
9522         * dbus/dbus-internals.h: mark assert_not_reached as
9523         __attribute((noreturn))__
9524
9525 2003-04-11  Havoc Pennington  <hp@redhat.com>
9526
9527         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9528         the broadcast service. Use boolean return for ServiceExists.
9529
9530 2003-04-11  Havoc Pennington  <hp@redhat.com>
9531
9532         * configure.in: add another directory to look for qt in.
9533
9534 2003-04-11  Havoc Pennington  <hp@redhat.com>
9535
9536         * AUTHORS: add Colin Walters
9537
9538 2003-04-11  Havoc Pennington  <hp@redhat.com>
9539
9540         * NEWS: update
9541
9542         * configure.in: 0.9
9543
9544 2003-04-11  Havoc Pennington  <hp@redhat.com>
9545
9546         * bus/messagebus.in: remove pid file when stopping the
9547         message bus, since the bus won't have privileges to remove it
9548         itself.
9549
9550 2003-04-11  Havoc Pennington  <hp@redhat.com>
9551
9552         * bus/bus.c (bus_context_new): move credentials change after
9553         creating pidfile
9554
9555 2003-04-11  Havoc Pennington  <hp@pobox.com>
9556
9557         * test/decode-gcov.c: add "below average functions" to the
9558         coverage report, and change how some of the code works.
9559
9560         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9561         not in the coverage stats.
9562
9563         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9564         couple places so running the test suite doesn't result in megaspam.
9565
9566 2003-04-11  Havoc Pennington  <hp@pobox.com>
9567
9568         * bus/dispatch.c (check_existent_service_activation): accept a no
9569         memory error in a place we didn't before
9570
9571         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9572         in case the first one failed," since the test suite is less
9573         broken now.
9574
9575 2003-04-10  Havoc Pennington  <hp@pobox.com>
9576
9577         * bus/dispatch.c (check_segfault_service_activation): add test
9578         for launching an executable that just crashes.
9579
9580         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9581         don't leave a million cores. We'll see how portable this is.
9582
9583 2003-04-10  Havoc Pennington  <hp@pobox.com>
9584
9585         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9586         the possible parent failures before we fork, so that we don't
9587         fail to create a babysitter after creating the child.
9588
9589         * bus/activation.c (bus_activation_activate_service): kill child
9590         if we don't successfully complete the activation.
9591
9592 2003-04-10  Havoc Pennington  <hp@redhat.com>
9593
9594         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9595         the connection if it's disconnected
9596
9597         * bus/activation.c (bus_activation_service_created): use new
9598         transaction features to roll back removal of pending activation if
9599         we don't successfully create the service after all. Don't remove
9600         pending activation if the function fails.
9601
9602         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9603         (_dbus_list_insert_after_link): new code to facilitate
9604         services.c fixes
9605
9606         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9607         new functionality, so we can preallocate the ability to insert
9608         into a hash table.
9609
9610         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9611         allowing us to put custom hooks in a transaction to be used for
9612         cancelling said transaction
9613
9614         * doc/dbus-specification.sgml: add some discussion of secondary
9615         service owners, and disallow zero-length service names
9616
9617         * bus/services.c (bus_registry_acquire_service): new function,
9618         splits out part of bus_driver_handle_acquire_service() and fixes
9619         a bug where we didn't remove the service doing the acquiring
9620         from the secondary queue if we failed to remove the current owner
9621         from the front of the queue.
9622
9623 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9624
9625         * doc/dbus-specification.sgml:
9626         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9627
9628 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9629
9630         * bus/.cvsignore:
9631         * glib/.cvsignore:
9632         * test/.cvsignore:
9633         Added files to cvsignore
9634
9635         * dbus/dbus-message.h:
9636         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9637         Make get_named() take two out argument and return a boolean.
9638         (dbus_message_iter_get_args_valist):
9639         Update usage of get_named().
9640         (dbus_message_iter_append_byte):
9641         Fix typo
9642         (dbus_message_iter_append_named)
9643         Fix typo
9644         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9645         More tests.
9646
9647 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9648
9649         * dbus/dbus-marshal.[ch]:
9650         Add array_type_pos argument to _dbus_marshal_validate_arg.
9651         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9652
9653         * dbus/dbus-message.[ch]:
9654         Multi-dimensional arrays have full type specification in the
9655         outermost array. Iter code re-arranged to handle this.
9656         Added some more iter tests.
9657
9658         * doc/dbus-specification.sgml:
9659         Add me to authors.
9660         Remove old FIXME.
9661         Update new array encoding description.
9662         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9663
9664         * test/data/invalid-messages/array-with-mixed-types.message:
9665         * test/data/valid-messages/array-of-array-of-uint32.message:
9666         Change to the new array format.
9667
9668         * test/data/invalid-messages/too-short-dict.message:
9669         Fix bug in test.
9670
9671         * test/data/valid-messages/recursive-types.message:
9672         Fix up and extend test.
9673
9674 2003-04-10  Havoc Pennington  <hp@pobox.com>
9675
9676         * bus/dispatch.c: lots of fixes
9677
9678         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9679         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9680         that was crack, broke the test service.
9681
9682         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9683         handling to avoid piling up errors if we get a failure on the
9684         first address.
9685
9686         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9687         pid in assertion failures.
9688
9689         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9690         to some fixed size of file descriptor array. Don't return TRUE
9691         anytime a timeout exists, that led to lots of busy loop silliness
9692         in the tests.
9693
9694 2003-04-09  Havoc Pennington  <hp@redhat.com>
9695
9696         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9697         I'd checked this in earlier but hadn't.
9698
9699 2003-04-09  Havoc Pennington  <hp@redhat.com>
9700
9701         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9702         the activation test (man this is getting old!)
9703
9704 2003-04-09  Havoc Pennington  <hp@redhat.com>
9705
9706         * test/test-utils.c: use dispatch status function to fix this up
9707
9708         * bus/connection.c (connection_watch_callback): don't dispatch
9709         from here
9710         (connection_timeout_callback): don't dispatch from here
9711         (bus_connections_setup_connection): set the dispatch status function
9712         (bus_connection_disconnected): unset it
9713
9714         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9715         used to add a connection to be dispatched
9716         (_dbus_loop_iterate): do the dispatching at the end of each
9717         iteration
9718
9719         * dbus/dbus-connection.c
9720         (dbus_connection_set_dispatch_status_function): new function
9721         allowing us to fix up main loop usage
9722         (_dbus_connection_last_unref): free all the various function
9723         user data
9724         (dbus_connection_dispatch): call the DispatchStatusFunction
9725         whenever this function returns
9726         (dbus_connection_handle_watch): call DispatchStatusFunction
9727         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9728         (reply_handler_timeout): call DispatchStatusFunction
9729         (dbus_connection_flush): call DispatchStatusFunction
9730
9731 2003-04-09  Havoc Pennington  <hp@redhat.com>
9732
9733         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9734         a memory leak
9735
9736         * bus/dispatch.c (check_service_activated): fix bug in test
9737
9738         * dbus/dbus-mainloop.c (check_timeout): fix this up
9739
9740         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9741         verbose output so we can sort out output from different processes,
9742         e.g. in the activation case.
9743
9744 2003-04-08  Colin Walters  <walters@gnu.org>
9745
9746         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9747         the pid file.
9748         (bus_context_new): Set it.
9749         (bus_context_unref): Use it to delete the pid file.
9750
9751 2003-04-08  Havoc Pennington  <hp@redhat.com>
9752
9753         * test/data/invalid-messages/array-with-mixed-types.message:
9754         regression test that fails for the moment
9755
9756         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9757         tests for convenience
9758
9759         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9760         array of nil, it broke things.
9761
9762         * test/data/invalid-messages/array-of-nil.message: regression test
9763
9764         * test/data/valid-messages/array-of-array-of-uint32.message:
9765         happened to write this so added it to suite
9766
9767 2003-04-08  Havoc Pennington  <hp@redhat.com>
9768
9769         * bus/driver.c (bus_driver_handle_acquire_service): init
9770         retval/reply before checking name
9771
9772         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9773         recursion depth argument
9774
9775         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9776         in the public struct for future extension
9777
9778         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9779         typo
9780
9781         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9782         message
9783
9784         * doc/dbus-specification.sgml: fix typo
9785
9786 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9787
9788         Implemented recursive types, named types and new-style iters
9789
9790         * bus/driver.c:
9791         * glib/test-thread-client.c: (thread_func):
9792         * glib/test-thread-server.c: (handle_test_message):
9793         * test/test-service.c: (handle_echo):
9794         Update to new api
9795
9796         * dbus/Makefile.am:
9797         * dbus/dbus-dict.c:
9798         * dbus/dbus-dict.h:
9799         * dbus/dbus.h
9800         Remove DBusDict
9801
9802         * dbus/dbus-internals.c: (_dbus_type_to_string):
9803         Update for new types.
9804
9805         * dbus/dbus-marshal.[ch]:
9806         Implement recursive types and the new marshalling format.
9807         Remove hardcoded dict marshalling.
9808         Marshal named types.
9809
9810         * dbus/dbus-message-builder.c:
9811         Add BYTE_ARRAY.
9812         Remove references to old types
9813
9814         * dbus/dbus-message.[ch]:
9815         New non-refcounted iter API that supports recursive iters.
9816         Use iters for appending, including support for recursive
9817         iters.
9818         Add byte and named type support.
9819         Update everything to new marshalling formats.
9820         Add tests for new API.
9821
9822         * dbus/dbus-protocol.h:
9823         Remove old array types.
9824         Add types: BYTE, ARRAY, DICT, NAMED
9825
9826         * dbus/dbus-string.c:
9827         * dbus/dbus-sysdeps.c:
9828         Make parse_double locale safe.
9829
9830         * dbus/dbus-test-main.c:
9831         Call setlocale.
9832
9833         * dbus/dbus-test.c:
9834         Kill dict test
9835
9836         * doc/dbus-specification.sgml:
9837         Update spec
9838
9839         * test/data/incomplete-messages/missing-body.message:
9840         * test/data/invalid-messages/bad-boolean.message:
9841         * test/data/invalid-messages/bad-boolean-array.message:
9842         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9843         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9844         * test/data/invalid-messages/too-short-dict.message:
9845         * test/data/valid-messages/dict-simple.message:
9846         * test/data/valid-messages/dict.message:
9847         * test/data/valid-messages/emptiness.message:
9848         * test/data/valid-messages/lots-of-arguments.message:
9849         * test/data/valid-messages/no-padding.message:
9850         * test/data/valid-messages/recursive-types.message:
9851         Add missing NAME fields
9852         Fix up dicts & arrays
9853
9854         * test/data/invalid-messages/dict-with-nil-value.message:
9855         Removed, this is not invalid anymore.
9856
9857         * test/data/valid-messages/recursive-types.message:
9858         Add new test for deeply recursive types.
9859
9860 2003-04-07  Havoc Pennington  <hp@pobox.com>
9861
9862         * bus/driver.c (bus_driver_handle_acquire_service): return an
9863         error if you try to acquire a service that starts with ':'
9864
9865 2003-04-07  Havoc Pennington  <hp@redhat.com>
9866
9867         * doc/dbus-specification.sgml: require that base service names
9868         start with ':' and that the base service is created/deleted
9869         as first and last things a connection does on the bus
9870
9871         * bus/dispatch.c (check_existent_service_activation): lots more
9872         work on the activation test; it doesn't fully pass yet...
9873
9874         * test/test-service.c (main): fix so we don't memleak the
9875         connection to the message bus
9876         (filter_func): accept a message asking us to exit
9877
9878 2003-04-06  Havoc Pennington  <hp@pobox.com>
9879
9880         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9881         from Colin Walters
9882
9883         * configure.in: fixes to Qt detection from Colin Walters
9884
9885         * doc/Makefile.am: Only remove generated docbook dirs if they
9886         exist, from Colin Walters
9887
9888         * dbus/dbus-bus.c: change how we set well-known connections to
9889         NULL, so that it works if a single connection is stored in
9890         two well-known array slots.
9891
9892         * test/Makefile.am: remove a lot of stuff that isn't immediately
9893         useful, it's in CVS history if we want it.
9894
9895         * test/test-service.c: use dbus-mainloop instead of that
9896         watch.[hc] crack
9897
9898 2003-04-06  Havoc Pennington  <hp@pobox.com>
9899
9900         * dbus/Makefile.am: split lists of sources into stuff that goes in
9901         the library, util functions that go in the lib and are also used
9902         elsewhere, and util functions that are used in tests/daemon but
9903         don't go in the lib.
9904
9905         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9906         here so it can be used in test binaries also
9907
9908 2003-04-06  Havoc Pennington  <hp@pobox.com>
9909
9910         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9911         here in the parent process, so we can return an error if it
9912         fails. Also, move some of the code into the child so the parent
9913         is less hosed if we fail midway through.
9914
9915         * bus/bus.c (bus_context_new): move pidfile detection further up
9916         in the function, before we start overwriting sockets and such.
9917
9918         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9919
9920         * configure.in: add --with-system-pid-file and --with-system-socket
9921
9922 2003-04-06  Colin Walters  <walters@verbum.org>
9923
9924         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9925
9926         * bus/system.conf.in: Declare a pidfile.
9927
9928         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9929         create one (if appropriate).
9930
9931         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9932         (struct BusConfigParser) [pidfile]: New.
9933         (element_type_to_name, merge_included, start_busconfig_child)
9934         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9935         (bus_config_parser_unref): Free it.
9936         (bus_config_parser_get_pidfile): New function.
9937
9938         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9939
9940         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9941
9942         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9943
9944         * dbus/dbus-sysdeps.h: Prototype it.
9945
9946 2003-04-06  Havoc Pennington  <hp@pobox.com>
9947
9948         * bus/bus.c (bus_context_new): print the address in here, rather
9949         than in main(), because we need to do it before forking the daemon
9950
9951         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9952         on the service nonexistent error
9953
9954         * bus/driver.c (bus_driver_handle_acquire_service): set the
9955         sender on the AcquireService reply
9956
9957         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9958         server also listen on a UNIX socket so services can connect to it.
9959
9960 2003-04-06  Havoc Pennington  <hp@pobox.com>
9961
9962         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9963         so it detects deadlocks and also we actually init threads when
9964         debugging.
9965
9966 2003-04-06  Havoc Pennington  <hp@pobox.com>
9967
9968         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9969         save the domain socket name, and unlink it when we disconnect the
9970         server. Means that at least when we exit normally, we won't leave
9971         a bunch of junk in /tmp
9972
9973         * dbus/dbus-transport-unix.c
9974         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9975         memory management). (I was making a real change here but then
9976         didn't)
9977
9978 2003-04-06  Havoc Pennington  <hp@pobox.com>
9979
9980         * bus/bus.c (bus_context_new): fix wrong handling of
9981         server_data_slot_unref() in the error case.
9982
9983         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9984         "(condition) != 0" to _dbus_real_assert so that
9985         "_dbus_assert (pointer)" doesn't cause a warning
9986
9987         * bus/main.c (main): accept --print-address option to print out
9988         the message bus address
9989
9990         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9991
9992         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9993         "tmpdir" option to unix: address on client side
9994
9995         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9996         to unix: address
9997
9998         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9999         we can use to create sockets in the test suite.
10000
10001         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10002         cleanly. To be used for testing.
10003
10004         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10005
10006         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10007
10008         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10009         handle trying to call this when there's no servers active
10010
10011 2003-04-05  Havoc Pennington  <hp@pobox.com>
10012
10013         * NEWS: update
10014
10015         * configure.in: 0.8
10016
10017 2003-04-05  Havoc Pennington  <hp@pobox.com>
10018
10019         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10020         crash on startup. Need to get "try starting the daemon"
10021         in the test suite I guess. ;-)
10022
10023         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10024         tracked the number of open connections; it's better done in
10025         application-specific code as you want it to span all servers etc.
10026
10027 2003-04-05  Havoc Pennington  <hp@pobox.com>
10028
10029         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10030         patch from Colin Walters
10031
10032 2003-04-05  Havoc Pennington  <hp@pobox.com>
10033
10034         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10035         reality; in fact multiple mechanisms are allowed.
10036
10037         * dbus/dbus-internals.c (_dbus_real_assert)
10038         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10039         _dbus_assert_not_reached() into functions, so that they don't show
10040         up in basic block counts for test coverage, and don't use up as
10041         much disk space. Does mean slower execution speed though, so
10042         assumes --disable-asserts is the normal production case.
10043
10044 2003-04-05  Havoc Pennington  <hp@pobox.com>
10045
10046         * test/Makefile.am (dist-hook): also dist *.in files
10047
10048         * NEWS: update
10049
10050         * configure.in: 0.7
10051
10052 2003-04-05  Havoc Pennington  <hp@pobox.com>
10053
10054         * dbus/dbus-string.c: docs warning
10055
10056         * dbus/dbus-spawn.c: missing docs
10057
10058         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10059
10060 2003-04-05  Havoc Pennington  <hp@pobox.com>
10061
10062         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10063         magic from GLib
10064
10065         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10066         to -1 once we've reaped the babysitter
10067         (_dbus_babysitter_handle_watch): do as much work as we can, not
10068         just one go of it
10069
10070         * bus/activation.c: add code using DBusBabysitter so that we
10071         handle it when a service fails to start up properly.
10072         (bus_activation_service_created): don't remove the activation
10073         entries as we go, just let them get removed when we free the pending
10074         activation. Unref reply messages after sending them.
10075
10076 2003-04-05  Havoc Pennington  <hp@pobox.com>
10077
10078         * test/decode-gcov.c (main): print per-directory stats in the report
10079
10080         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10081
10082 2003-04-05  Havoc Pennington  <hp@pobox.com>
10083
10084         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10085
10086         * test/decode-gcov.c: hack up a little program to suck data
10087         out of gcov files. Yes this is sort of silly.
10088
10089         * configure.in: define something in config.h and do an
10090         AM_CONDITIONAL when gcov is enabled
10091
10092 2003-04-04  Havoc Pennington  <hp@redhat.com>
10093
10094         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10095         return a "babysitter" object that is used to monitor the status of
10096         the spawned process and reap it when required.
10097
10098         * test/test-segfault.c, test/test-exit.c,
10099         test/test-sleep-forever.c: binaries that do various lame things,
10100         used in the test suite.
10101
10102         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10103
10104 2003-04-03  Havoc Pennington  <hp@pobox.com>
10105
10106         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10107         in preparation for modifying it, dbus-sysdeps is getting
10108         a bit unmanageable.
10109
10110 2003-04-03  Havoc Pennington  <hp@redhat.com>
10111
10112         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10113         have multiple ones
10114
10115         * bus/*.[hc]: adapt to mainloop change
10116
10117 2003-04-03  Havoc Pennington  <hp@redhat.com>
10118
10119         * bus/activation.c (load_directory): fix up memleaks
10120         (bus_activation_entry_free): free the entry
10121
10122         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10123         we get one from the message bus; fix memleaks.
10124
10125         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10126
10127 2003-04-03  Havoc Pennington  <hp@pobox.com>
10128
10129         * bus/config-parser.c (bus_config_parser_unref): free
10130         list of mechanisms, bug discovered by test suite enhancements
10131         (putting system.conf and session.conf into suite)
10132
10133         * test/Makefile.am, test/test-service.c: add placeholder for a
10134         test service that we'll activate as part of test suite. Doesn't
10135         do anything yet.
10136
10137         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10138         setting NULL value, and use system malloc not dbus_malloc()
10139         when we have unavoidable memleakage.
10140
10141         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10142         didn't work, and support DBUS_BUS_ACTIVATION.
10143
10144         * bus/activation.c (child_setup): pass our well-known bus type to
10145         the child
10146
10147         * bus/config-parser.c: support <type> to specify well-known type
10148
10149         * doc/dbus-specification.sgml: document the env variables to
10150         locate well-known buses and find service activator
10151
10152 2003-04-02  Havoc Pennington  <hp@redhat.com>
10153
10154         * test/Makefile.am (all-local): add a rule to copy tests to
10155         builddir, so we can have generated tests. Use this to remove the
10156         silly hack for testing system.conf and session.conf. Will use this
10157         shortly to generate .service files pointing to test binaries.
10158
10159 2003-04-02  Havoc Pennington  <hp@redhat.com>
10160
10161         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10162         current alloc and needed new length, not max of the doubled
10163         allocation and needed new length. Also, when building tests,
10164         don't do the double-allocation stuff, just realloc every time.
10165
10166 2003-04-02  Havoc Pennington  <hp@redhat.com>
10167
10168         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10169         in error messages
10170         (_dbus_string_get_dirname): new
10171         (_dbus_sysdeps_test): new
10172         (_dbus_directory_open): include dirnames in error messages
10173
10174         * bus/config-parser.c: interpret <include> and <includedir> and
10175         <servicedir> relative to config file location if the given
10176         filename is not absolute.
10177
10178         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10179
10180 2003-04-02  Havoc Pennington  <hp@redhat.com>
10181
10182         * bus/connection.c (bus_transaction_send_error_reply): set sender
10183         service for the error, and unref the reply on success
10184
10185         * bus/activation.c: convert to use BusTransaction so OOM can be
10186         handled correctly
10187         (bus_activation_service_created): set sender of the message
10188
10189 2003-04-01  Havoc Pennington  <hp@redhat.com>
10190
10191         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10192         <includedir> (at least mostly)
10193
10194         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10195         first, then the user ID
10196
10197 2003-04-01  Havoc Pennington  <hp@pobox.com>
10198
10199         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10200         function
10201
10202         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10203
10204         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10205
10206         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10207         socket 0777, and unlink any existing socket.
10208
10209         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10210         the configuration file so specifies; set up auth mechanism
10211         restrictions
10212
10213         * bus/config-parser.c (bus_config_parser_content): add support
10214         for <fork> option and fill in code for <auth>
10215
10216         * bus/system.conf.in: add <fork/> to default configuration,
10217         and limit auth mechanisms to EXTERNAL
10218
10219         * doc/config-file.txt (Elements): add <fork>
10220
10221         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10222         (_dbus_change_identity): new function
10223
10224 2003-03-31  Havoc Pennington  <hp@redhat.com>
10225
10226         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10227         (_dbus_listen_unix_socket): fix off-by-one error in null
10228         termination spotted by Nalin
10229
10230 2003-03-31  Havoc Pennington  <hp@redhat.com>
10231
10232         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10233         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10234         having a real home directory available.
10235
10236 2003-03-31  Havoc Pennington  <hp@redhat.com>
10237
10238         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10239
10240         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10241
10242         * configure.in: add support for specifying a style of init script
10243         to install
10244
10245 2003-03-31  Havoc Pennington  <hp@redhat.com>
10246
10247         Fix some annoying DBusString API and fix all affected code.
10248
10249         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10250         max_length argument
10251         (_dbus_string_get_data): change to return string instead of using
10252         an out param
10253         (_dbus_string_get_const_data): ditto
10254         (_dbus_string_get_data_len): ditto
10255         (_dbus_string_get_const_data_len): ditto
10256
10257 2003-03-31  Havoc Pennington  <hp@redhat.com>
10258
10259         * bus/main.c (main): fix up the command line arguments to be nicer
10260
10261 2003-03-31  Havoc Pennington  <hp@redhat.com>
10262
10263         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10264         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10265         final location that lands in the config file
10266
10267         * bus/config-loader-expat.c (bus_config_load): fix type of
10268         XML_Parser variable
10269
10270         * doc/TODO: remove TODO item for dbus_bus_get()
10271
10272         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10273
10274 2003-03-31  Havoc Pennington  <hp@pobox.com>
10275
10276         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10277         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10278         argument since they are always client side
10279
10280         * dbus/dbus-server.c (dbus_server_get_address): new function
10281
10282         * bus/main.c (main): take the configuration file as an argument.
10283
10284         * test/data/valid-config-files/debug-allow-all.conf: new file to
10285         use with dispatch.c tests for example
10286
10287         * bus/test-main.c (main): require test data dir
10288
10289         * bus/bus.c (bus_context_new): change this to take a
10290         configuration file name as argument
10291
10292         * doc/config-file.txt (Elements): add <servicedir>
10293
10294         * bus/system.conf, bus/session.conf: new files
10295
10296         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10297         well-known socket if none set
10298
10299         * configure.in: create system.conf and session.conf
10300
10301 2003-03-30  Havoc Pennington  <hp@pobox.com>
10302
10303         * bus/config-parser.c: hacking
10304
10305         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10306         to shut down, since it could cause weirdness with the DBusList
10307         lock
10308
10309         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10310         link-oriented stack routines
10311         (alloc_link): free the mempool if the first alloc from it fails
10312
10313         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10314
10315         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10316         from GLib
10317         (_dbus_string_skip_white): new
10318
10319         * doc/config-file.txt (Elements): add <includedir>
10320
10321 2003-03-28  Havoc Pennington  <hp@pobox.com>
10322
10323         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10324         (_dbus_string_copy_data): new functions
10325
10326 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10327
10328         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10329         * dbus/dbus-bus.h:
10330         Add dbus_bus_get.
10331
10332         * dbus/dbus-memory.c:
10333         Fix a doc comment.
10334
10335 2003-03-28  Havoc Pennington  <hp@pobox.com>
10336
10337         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10338         I think it may have just been superstition. Not sure.
10339
10340         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10341         failures that were not being handled.
10342
10343         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10344
10345         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10346         row that will fail on out-of-memory.
10347
10348         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10349         function for testing out-of-memory handling.
10350
10351         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10352         allocation functions, they do map exactly to the expat ones.
10353
10354 2003-03-27  Havoc Pennington  <hp@redhat.com>
10355
10356         * bus/config-loader-libxml.c (bus_config_load): add another error
10357         check
10358
10359 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10360
10361         * doc/TODO:
10362         Add note about automatic service activation.
10363
10364         * doc/dbus-specification.sgml:
10365         Rename the specification and clarify a few things.
10366
10367 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10368
10369         * Doxyfile.in:
10370         * dbus/dbus-address.c:
10371         * dbus/dbus-dict.c:
10372         * dbus/dbus-marshal.c:
10373         * dbus/dbus-server-debug-pipe.c:
10374         * dbus/dbus-transport-unix.c:
10375         Fix documentation warnings.
10376
10377 2003-03-26  Havoc Pennington  <hp@pobox.com>
10378
10379         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10380         after every test so it's quick and easy to see which leaked, and
10381         so we test multiple dbus_shutdown() calls
10382
10383         * configure.in: change configure.in XML stuff to also support
10384         expat
10385
10386         * config-loader-libxml.c: some hacking
10387
10388         * config-loader-expat.c: some hacking
10389
10390         * config-parser.c: some hacking, plus tests
10391
10392 2003-03-25  Havoc Pennington  <hp@redhat.com>
10393
10394         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10395
10396         * configure.in: add --with-xml option to specify XML library,
10397         right now only libxml is supported.
10398
10399         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10400         nonworking code between home and work, still just stubs
10401
10402 2003-03-24  Havoc Pennington  <hp@redhat.com>
10403
10404         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10405         file
10406
10407         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10408         NULL argument for "message" if the error is a well-known one,
10409         fill in a generic message in this case.
10410
10411         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10412         favor of DBusError
10413
10414         * bus/test.c (bus_test_flush_bus): add
10415
10416         * bus/policy.c (bus_policy_test): test code stub
10417
10418 2003-03-24  Havoc Pennington  <hp@pobox.com>
10419
10420         * bus/connection.c (bus_connections_setup_connection): set up
10421         the "can this user connect" function, but it always returns
10422         TRUE until we have a config file parser so we can have a config
10423         file that allows connections.
10424
10425 2003-03-23  Havoc Pennington  <hp@pobox.com>
10426
10427         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10428         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10429         the mutex, so we can check for proper memory management
10430         and OOM handling.
10431
10432         * dbus/dbus-dataslot.c: remove the mutex from
10433         DBusDataSlotAllocator and lock it manually when using it,
10434         to simplify fitting it into the global slots framework.
10435
10436         * dbus/dbus-threads.c (init_static_locks): rework how we're
10437         handling global locks so they are easily shut down.
10438
10439         * bus/policy.c (bus_policy_append_rule): fix
10440
10441         * bus/test-main.c (main): check for memleaks
10442
10443         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10444         test suite check for memleaks
10445
10446         * dbus/dbus-memory.c: add support in test mode for tracking
10447         number of outstanding blocks
10448
10449 2003-03-23  Havoc Pennington  <hp@pobox.com>
10450
10451         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10452         policies code
10453
10454         * dbus/dbus-hash.h: add ULONG hash keys
10455
10456         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10457         (_dbus_get_group_id): new function
10458
10459 2003-03-20  Havoc Pennington  <hp@redhat.com>
10460
10461         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10462         new function
10463         (dbus_connection_get_unix_user): new function
10464
10465 2003-03-20  Havoc Pennington  <hp@pobox.com>
10466
10467         * bus/connection.c (bus_connection_send_oom_error): assert that
10468         message has a sender
10469         (connection_execute_transaction): ditto
10470         (bus_connection_preallocate_oom_error): fix to set the sender, and
10471         set recipient to the destination service, not the bus driver
10472
10473         * bus/policy.c: hacking
10474
10475         * dbus/dbus-message.c (dbus_message_service_is): new function
10476         (dbus_message_sender_is): new
10477
10478 2003-03-19  Havoc Pennington  <hp@redhat.com>
10479
10480         * bus/policy.c: start sketching code for policy restrictions on
10481         what connections can do.
10482
10483 2003-03-18  Havoc Pennington  <hp@redhat.com>
10484
10485         * doc/TODO: some notes on high-level todo items. Little nitpick
10486         stuff is all in @todo, so no need to add it here.
10487
10488         * doc/config-file.txt: some notes on how config file might look
10489
10490 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10491
10492         * configure.in: 0.6
10493
10494         * NEWS: Update.
10495
10496 2003-03-17  Havoc Pennington  <hp@redhat.com>
10497
10498         * dbus/dbus-internals.h: add gcc attributes so that
10499         our printf-style functions warn on bad arguments to
10500         format
10501
10502         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10503         format bug
10504
10505         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10506         printf format bug
10507
10508 2003-03-17  Havoc Pennington  <hp@redhat.com>
10509
10510         * bus/test-main.c (main): make it print something as it runs
10511         so make check doesn't look stuck
10512
10513         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10514         from CVS, now obsolete
10515
10516 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10517
10518         * bus/dispatch.c: (bus_dispatch):
10519         Refetch the service name since it may have been reallocated
10520         when dbus_message_set_sender was called.
10521
10522         * dbus/dbus-sysdeps.c: (_dbus_accept):
10523         Add address and address length variables and use them to stop
10524         valgrind from complaining.
10525
10526 2003-03-17  Havoc Pennington  <hp@pobox.com>
10527
10528         All tests pass, no memleaks, no valgrind complaints.
10529
10530         * bus/test.c: refcount handler_slot
10531
10532         * bus/connection.c (bus_connections_new): refcount
10533         connection_data_slot
10534
10535         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10536         bytes so that auth scripts pass.
10537
10538         * bus/dispatch.c: init message_handler_slot so it gets allocated
10539         properly
10540
10541         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10542
10543         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10544         dealloc server_pipe_hash when no longer used for benefit of
10545         leak checking
10546
10547         * dbus/dbus-auth.c (process_command): memleak fix
10548
10549         * bus/dispatch.c (check_hello_message): memleak fix
10550
10551 2003-03-16  Havoc Pennington  <hp@pobox.com>
10552
10553         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10554
10555 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10556
10557         * bus/activation.c (bus_activation_activate_service): Append
10558         the pending activation entry to the list of pending activations.
10559
10560 2003-03-16  Havoc Pennington  <hp@pobox.com>
10561
10562         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10563         connections
10564
10565         * dbus/dbus-address.c (create_entry): fix OOM handling when
10566         failing to alloc entry->method
10567
10568 2003-03-16  Havoc Pennington  <hp@pobox.com>
10569
10570         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10571         the watch
10572
10573         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10574         add some missing dbus_set_result
10575
10576         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10577         alloc the DBusMessageHandler
10578
10579         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10580         the transport here, since we call this from the finalizer; it
10581         resulted in a double-finalize.
10582
10583         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10584         where we tried to use transport->connection that was NULL,
10585         happened when transport was disconnected early on due to OOM
10586
10587         * bus/*.c: adapt to handle OOM for watches/timeouts
10588
10589         * dbus/dbus-transport-unix.c: port to handle OOM during
10590         watch handling
10591
10592         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10593         reference to unused bytes instead of a copy
10594
10595         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10596         out of memory
10597
10598         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10599         FALSE on OOM
10600
10601         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10602         of memory
10603
10604 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10605
10606         * doc/dbus-specification.sgml:
10607         Document reply message for ActivateService.
10608
10609 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10610
10611         * bus/activation.c: (bus_pending_activation_entry_free),
10612         (bus_pending_activation_free), (bus_activation_new),
10613         (bus_activation_unref), (bus_activation_service_created),
10614         (bus_activation_activate_service):
10615         * bus/activation.h:
10616         * bus/bus.c: (bus_context_new):
10617         * bus/desktop-file.c: (new_section):
10618         * bus/driver.c: (bus_driver_send_service_deleted),
10619         (bus_driver_handle_activate_service):
10620         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10621         * bus/services.h:
10622         * dbus/dbus-connection.c:
10623         (dbus_connection_send_with_reply_and_block):
10624         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10625         * dbus/dbus-protocol.h:
10626         Make activation work better. Now pending activations will be queued
10627         and the daemon won't try to activate services that are already registered.
10628
10629 2003-03-16  Havoc Pennington  <hp@pobox.com>
10630
10631         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10632         connection data
10633
10634         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10635         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10636
10637 2003-03-16  Havoc Pennington  <hp@pobox.com>
10638
10639         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10640         this. always run the test suite before commit...
10641
10642         * bus/*: adapt to DBusConnection API changes
10643
10644         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10645         requires renaming stuff to avoid dbus_connection_dispatch name
10646         conflict.
10647
10648         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10649         function
10650
10651         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10652         separate from _dbus_message_loader_return_buffer()
10653
10654         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10655         this, because it's now always broken to use; the number of
10656         messages in queue vs. the number still buffered by the message
10657         loader is undefined/meaningless. Should use
10658         dbus_connection_get_dispatch_state().
10659         (dbus_connection_dispatch): rename from
10660         dbus_connection_dispatch_message
10661
10662 2003-03-16  Havoc Pennington  <hp@pobox.com>
10663
10664         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10665         implementation
10666
10667 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10668
10669         * dbus/dbus-connection.c:
10670         (dbus_connection_send_with_reply_and_block):
10671         Decrease connection->n_incoming when removing an entry
10672         from the list.
10673         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10674         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10675         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10676         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10677         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10678         (dbus_dict_get_byte_array):
10679         Handle NULL arrays and strings. Also add support for byte arrays.
10680
10681         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10682         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10683         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10684         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10685         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10686         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10687         * dbus/dbus-marshal.h:
10688         Add support for marshalling and demarshalling empty arrays and strings.
10689
10690         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10691         (dbus_message_append_string_array),
10692         (dbus_message_iter_get_boolean),
10693         (dbus_message_iter_get_boolean_array),
10694         (dbus_message_iter_get_int32_array),
10695         (dbus_message_iter_get_uint32_array),
10696         (dbus_message_iter_get_double_array),
10697         (dbus_message_iter_get_byte_array),
10698         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10699         (check_message_handling):
10700         Add support for getting empty arrays and dicts.
10701
10702         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10703         Don't do any validation at all for now, that's better than just checking
10704         for ASCII.
10705
10706         * test/data/valid-messages/emptiness.message:
10707         New test message with lots of empty arrays.
10708
10709 2003-03-16  Havoc Pennington  <hp@pobox.com>
10710
10711         * dbus/dbus-connection.c
10712         (_dbus_connection_queue_received_message_link): new function that
10713         can't fail due to OOM
10714
10715         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10716         new function pops a message together with a list link
10717         containing it.
10718
10719         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10720         message queuing functions to avoid needing to alloc memory
10721
10722 2003-03-16  Havoc Pennington  <hp@pobox.com>
10723
10724         Oops - test code was only testing failure of around 30 of the
10725         mallocs in the test path, but it turns out there are 500+
10726         mallocs. I believe this was due to misguided linking setup such
10727         that there was one copy of dbus_malloc etc. in the daemon and one
10728         in the shared lib, and only daemon mallocs were tested. In any
10729         case, the test case now tests all 500+ mallocs, and doesn't pass
10730         yet, though there are lots of fixes in this patch.
10731
10732         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10733         this so that it doesn't need to allocate memory, since it
10734         has no way of indicating failure due to OOM (and would be
10735         annoying if it did).
10736
10737         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10738
10739         * bus/Makefile.am: rearrange to create two self-contained
10740         libraries, to avoid having libraries with overlapping symbols.
10741         that was resulting in weirdness, e.g. I'm pretty sure there
10742         were two copies of global static variables.
10743
10744         * dbus/dbus-internals.c: move the malloc debug stuff to
10745         dbus-memory.c
10746
10747         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10748         empty.
10749
10750         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10751
10752         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10753         on failure.
10754
10755         * bus/dispatch.c (bus_dispatch_add_connection): free
10756         message_handler_slot when no longer using it, so
10757         memory leak checkers are happy for the test suite.
10758
10759         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10760
10761         * bus/bus.c (new_connection_callback): disconnect in here if
10762         bus_connections_setup_connection fails.
10763
10764         * bus/connection.c (bus_connections_unref): fix to free the
10765         connections
10766         (bus_connections_setup_connection): if this fails, don't
10767         disconnect the connection, just be sure there are no side
10768         effects.
10769
10770         * dbus/dbus-string.c (undo_alignment): unbreak this
10771
10772         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10773         leaking
10774         (_dbus_auth_new): fix the order in which we free strings
10775         on OOM failure
10776
10777         * bus/connection.c (bus_connection_disconnected): fix to
10778         not send ServiceDeleted multiple times in case of memory
10779         allocation failure
10780
10781         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10782         get the base service name
10783         (dbus_bus_register_client): don't return base service name,
10784         instead store it on the DBusConnection and have an accessor
10785         function for it.
10786         (dbus_bus_register_client): rename dbus_bus_register()
10787
10788         * bus/dispatch.c (check_hello_message): verify that other
10789         connections on the bus also got the correct results, not
10790         just the one sending hello
10791
10792 2003-03-15  Havoc Pennington  <hp@pobox.com>
10793
10794         Make it pass the Hello handling test including all OOM codepaths.
10795         Now to do other messages...
10796
10797         * bus/services.c (bus_service_remove_owner): fix crash when
10798         removing owner from an empty list of owners
10799         (bus_registry_ensure): don't leave service in the list of
10800         a connection's owned services if we fail to put the service
10801         in the hash table.
10802
10803         * bus/connection.c (bus_connection_preallocate_oom_error): set
10804         error flag on the OOM error.
10805
10806         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10807         handle _dbus_transport_set_connection failure
10808
10809         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10810         to create watches up front and simply enable/disable them as
10811         needed.
10812         (unix_connection_set): this can now fail on OOM
10813
10814         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10815         of enabling/disabling a watch or timeout.
10816
10817         * bus/loop.c (bus_loop_iterate): don't touch disabled
10818         watches/timeouts
10819
10820         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10821
10822 2003-03-15  Havoc Pennington  <hp@pobox.com>
10823
10824         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10825         write useful test code, after all that futzing around ;-)
10826
10827         Test does not yet pass because we can't handle OOM in
10828         _dbus_transport_messages_pending (basically,
10829         dbus_connection_preallocate_send() does not prealloc the write
10830         watch). To fix this, I think we need to add new stuff to
10831         set_watch_functions, namely a SetEnabled function so we can alloc
10832         the watch earlier, then enable it later.
10833
10834         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10835         dbus-memory.c to the convenience lib
10836
10837         * bus/test.c: rename some static functions to keep them clearly
10838         distinct from stuff in connection.c. Handle client disconnection.
10839
10840 2003-03-14  Havoc Pennington  <hp@pobox.com>
10841
10842         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10843         transport, tests more of the real codepath. Set up clients
10844         with bus_setup_debug_client.
10845
10846         * bus/test.c (bus_setup_debug_client): function to set up debug
10847         "clients" on the main loop
10848
10849         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10850         support
10851
10852         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10853         server type
10854
10855         * dbus/dbus-server-debug.c: support a debug server based on pipes
10856
10857         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10858         (_dbus_close): new function
10859
10860         * configure.in: check for socketpair
10861
10862 2003-03-14  Havoc Pennington  <hp@redhat.com>
10863
10864         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10865         cheesy hack
10866
10867         * dbus/dbus-transport-debug.c: rework this a good bit to be
10868         less complicated. hopefully still works.
10869
10870         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10871         manually
10872
10873         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10874         after running it
10875
10876         * dbus/dbus-message.c (dbus_message_copy): rename from
10877         dbus_message_new_from_message, fix it up to copy
10878         all the message fields, add test case
10879
10880         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10881         not quite passing yet
10882
10883 2003-03-14  Havoc Pennington  <hp@pobox.com>
10884
10885         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10886         until no work remains" in test code. (the large diff here
10887         is just code movement, no actual changes)
10888
10889         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10890         1, no point waiting around for test code.
10891         (_dbus_server_debug_accept_transport): unref the timeout
10892         after adding it (right?)
10893
10894         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10895
10896 2003-03-13  Havoc Pennington  <hp@redhat.com>
10897
10898         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10899         out of memory
10900
10901         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10902         of memory
10903
10904         * dbus/dbus-connection.h: Make AddWatchFunction and
10905         AddTimeoutFunction return a bool so they can fail on out-of-memory
10906
10907         * bus/bus.c (bus_context_new): set up timeout handlers
10908
10909         * bus/connection.c (bus_connections_setup_connection): set up
10910         timeout handlers
10911
10912         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10913         can fail
10914
10915         * bus/bus.c (bus_context_new): adapt to changes
10916
10917         * bus/connection.c: adapt to changes
10918
10919         * test/watch.c: adapt to DBusWatch changes
10920
10921         * bus/dispatch.c (bus_dispatch_test): started adding this but
10922         didn't finish
10923
10924 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10925
10926         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10927
10928 2003-03-13  Havoc Pennington  <hp@pobox.com>
10929
10930         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10931         set up a test framework as for the library
10932
10933 2003-03-12  Havoc Pennington  <hp@pobox.com>
10934
10935         Throughout: purge global variables, introduce BusActivation,
10936         BusConnections, BusRegistry, etc. objects instead.
10937
10938         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10939         message bus object
10940
10941         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10942         going to redo this a bit differently I think
10943
10944 2003-03-12  Havoc Pennington  <hp@redhat.com>
10945
10946         Mega-patch that gets the message bus daemon initially handling
10947         out-of-memory. Work still needed. Also lots of random
10948         moving stuff to DBusError instead of ResultCode.
10949
10950         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10951
10952         * dbus/dbus-connection.c
10953         (dbus_connection_send_with_reply_and_block): use DBusError
10954
10955         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10956         DBusResultCode
10957
10958         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10959         code here, as the only failure possible is OOM.
10960
10961         * bus/connection.c (bus_connection_disconnect):
10962         rename bus_connection_disconnected as it's a notification only
10963
10964         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10965         "name" on get_args failure, should be done by get_args;
10966         don't disconnect client for bad args, just return an error.
10967         (bus_driver_handle_service_exists): ditto
10968
10969         * bus/services.c (bus_services_list): NULL-terminate returned array
10970
10971         * bus/driver.c (bus_driver_send_service_lost)
10972         (bus_driver_send_service_acquired): send messages from driver to a
10973         specific client to the client's unique name, not to the broadcast
10974         service.
10975
10976         * dbus/dbus-message.c (decode_header_data): reject messages that
10977         contain no name field
10978         (_dbus_message_get_client_serial): rename to
10979         dbus_message_get_serial and make public
10980         (_dbus_message_set_serial): rename from set_client_serial
10981         (_dbus_message_set_reply_serial): make public
10982         (_dbus_message_get_reply_serial): make public
10983
10984         * bus/connection.c (bus_connection_foreach): allow stopping
10985         iteration by returning FALSE from foreach function.
10986
10987         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10988         (dbus_connection_free_preallocated_send)
10989         (dbus_connection_preallocate_send): new API for sending a message
10990         without possibility of malloc failure.
10991         (dbus_connection_send_message): rename to just
10992         dbus_connection_send (and same for whole function family)
10993
10994         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10995
10996         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10997
10998         * bus/activation.c: handle/return errors
10999
11000         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11001
11002         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11003         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11004         (_dbus_result_from_errno): move to this file
11005
11006 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11007
11008         * dbus/dbus-marshal.c:
11009         (_dbus_marshal_set_string):
11010         Take a length argument so we can marshal the correct string
11011         length.
11012
11013         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11014         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11015         (_dbus_marshal_test):
11016         * dbus/dbus-marshal.h:
11017         Add support for marshalling and demarshalling dicts.
11018
11019         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11020         Add support for TYPE DICT.
11021
11022         * dbus/dbus-message.c: (set_string_field):
11023         Adjust header padding.
11024
11025         (dbus_message_append_args_valist), (dbus_message_append_dict),
11026         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11027         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11028         (check_message_handling), (check_have_valid_message):
11029         * dbus/dbus-message.h:
11030         Add functions for setting and getting dicts.
11031
11032         * dbus/dbus-protocol.h:
11033         Add DBUS_TYPE_DICT.
11034
11035         * dbus/dbus.h:
11036         Add dbus-dict.h
11037
11038         * doc/dbus-specification.sgml:
11039         Add information about how dicts are marshalled.
11040
11041         * test/data/invalid-messages/dict-with-nil-value.message:
11042         * test/data/invalid-messages/too-short-dict.message:
11043         * test/data/valid-messages/dict-simple.message:
11044         * test/data/valid-messages/dict.message:
11045         Add sample messages containing dicts.
11046
11047 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11048
11049         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11050
11051 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11052
11053         * dbus/Makefile.am:
11054         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11055         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11056         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11057         (dbus_dict_set_double), (dbus_dict_set_string),
11058         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11059         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11060         (dbus_dict_set_string_array), (_dbus_dict_test):
11061         * dbus/dbus-dict.h:
11062         Fix according to comments from Havoc.
11063
11064 2003-03-06  Michael Meeks  <michael@server.home>
11065
11066         * configure.in: if we don't have kde-config, disable have_qt.
11067
11068 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11069
11070         * dbus/Makefile.am:
11071         Add dbus-dict.[ch]
11072
11073         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11074         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11075         (dbus_dict_remove), (dbus_dict_get_value_type),
11076         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11077         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11078         (dbus_dict_put_double), (dbus_dict_put_string),
11079         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11080         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11081         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11082         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11083         (dbus_dict_get_double), (dbus_dict_get_string),
11084         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11085         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11086         (dbus_dict_get_string_array), (_dbus_dict_test):
11087         * dbus/dbus-dict.h:
11088         Add DBusDict implementation
11089
11090         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11091         * dbus/dbus-test.h:
11092         Add _dbus_dict_test
11093
11094 2003-03-04  Havoc Pennington  <hp@pobox.com>
11095
11096         * test/data/auth/*: adapt to changes
11097
11098         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11099         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11100         userid
11101
11102         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11103         more stuff from being in a context name, to make the protocol
11104         simpler to deal with
11105
11106         * dbus/dbus-errors.c (dbus_error_has_name): new function
11107         (dbus_error_is_set): new function
11108
11109         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11110         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11111
11112         * dbus/dbus-connection.c (dbus_connection_flush): also read
11113         messages during a flush operation
11114
11115         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11116
11117 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11118
11119         * configure.in: Check for gethostbyname on Solaris.
11120
11121         * dbus/dbus-transport.c: (_dbus_transport_open):
11122         Remove duplicate "tcp" entry.
11123
11124         * doc/dbus-specification.sgml:
11125         Clarify some things.
11126
11127 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11128
11129         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11130         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11131         (_dbus_keyring_test):
11132         * dbus/dbus-md5.c: (_dbus_md5_compute):
11133         * dbus/dbus-sha.c: (_dbus_sha_compute):
11134         Plug memory leaks.
11135
11136 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11137
11138         * README: Add some things.
11139
11140 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11141
11142         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11143         after case DBUS_TYPE_BOOELAN.
11144
11145 2003-03-02  Havoc Pennington  <hp@pobox.com>
11146
11147         * test/break-loader.c (randomly_set_extreme_ints): add test that
11148         sets really huge and small integers
11149
11150         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11151         that length of boolean array fits in the string, and that
11152         string has room for boolean value in single-bool case.
11153
11154         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11155         optional value to "ALIGN" command which is what to fill the
11156         alignment with.
11157
11158         * test/data/valid-messages/no-padding.message: add regression
11159         test for the message padding problem
11160
11161 2003-03-02  Havoc Pennington  <hp@pobox.com>
11162
11163         * dbus/dbus-message.c (decode_header_data): fix to always init
11164         message_padding, from Benjamin Dauvergne
11165
11166 2003-03-02  Havoc Pennington  <hp@pobox.com>
11167
11168         * configure.in: 0.5
11169
11170         * NEWS: Update.
11171
11172 2003-03-01  Joe Shaw  <joe@assbarn.com>
11173
11174         * configure.in: Check for "struct cmsgcred" and try to access its
11175         members for BSD-like unices.
11176
11177         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11178         _dbus_read_credentials_unix_socket().
11179         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11180         read() for reading the credential byte off the unix socket.  Use
11181         struct cmsgcred on systems that support it.
11182
11183 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11184
11185         * glib/Makefile.am:
11186         * configure.in:
11187         Make gthreads-2.0 dependency optional. Don't build thread test if
11188         its not found.
11189
11190 2003-02-27  Havoc Pennington  <hp@pobox.com>
11191
11192         * dbus/dbus-connection.c
11193         (dbus_connection_send_message_with_reply_and_block): fix doh!
11194         doh! doh! bug that resulted in never removing a reply from the
11195         queue, no wonder we called get_reply_serial so much ;-)
11196
11197         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11198         and client serial instead of demarshaling them every time
11199
11200 2003-02-27  Havoc Pennington  <hp@pobox.com>
11201
11202         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11203         more inlined, using dbus-string-private.h, speeds things up
11204         substantially
11205
11206         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11207         when freeing the string
11208         (_dbus_string_steal_data): fix for align offset
11209         (undo_alignment): new function
11210
11211 2003-02-26  Havoc Pennington  <hp@redhat.com>
11212
11213         All kinds of audit fixes from Owen, plus initial attempt to
11214         handle unaligned memory returned from malloc.
11215
11216         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11217         leave room for align_offset and nul byte
11218         (fixup_alignment): function to track an align_offset and
11219         ensure real->str is aligned
11220         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11221         to allow a nul byte plus align offset
11222         (_dbus_string_lock): fix overflow issue
11223         (_dbus_string_init_const_len): add assertions on sanity of len,
11224         assign allocated to be ALLOCATION_PADDING larger than len
11225         (set_length): fixup the overflow handling
11226         (_dbus_string_get_data_len): fix overflow in assertion
11227         (open_gap): detect overflow in size of gap to be opened
11228         (_dbus_string_lengthen): add overflow check
11229         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11230         (_dbus_string_append): add overflow check
11231         (_dbus_string_append_unichar): overflow
11232         (_dbus_string_delete): fix overflow in assertion
11233         (_dbus_string_copy_len): overflow in assertion
11234         (_dbus_string_replace_len): overflows in assertions
11235         (_dbus_string_find): change to implement in terms of
11236         _dbus_string_find_to
11237         (_dbus_string_find_to): assorted fixage
11238         (_dbus_string_equal_c_str): assert c_str != NULL,
11239         fix logic so the function works
11240         (_dbus_string_ends_with_c_str): fix overflow thingy
11241         (_dbus_string_base64_encode): overflow fix
11242         (_dbus_string_validate_ascii): overflow
11243         (_dbus_string_validate_nul): overflow
11244
11245 2003-02-26  Havoc Pennington  <hp@redhat.com>
11246
11247         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11248
11249 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11250
11251         * configure.in:
11252         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11253
11254         * dbus/dbus-connection.c:
11255         * dbus/dbus-connection.h:
11256         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11257         Add dbus_connection_set_wakeup_main_function and use it when queueing
11258         incoming and outgoing messages.
11259
11260
11261         * dbus/dbus-dataslot.c:
11262         Threadsafe usage of DBusDataSlotAllocator
11263
11264         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11265         dbus_new can fail.
11266
11267         * dbus/dbus-server-unix.c:
11268         Add todo comment
11269
11270         * glib/dbus-gmain.c:
11271         Implement the new wakeup functions for glib.
11272
11273         * glib/Makefile.am:
11274         * glib/test-thread-client.c:
11275         * glib/test-thread-server.c:
11276         * glib/test-thread.h:
11277         Initial cut at some thread test code. Not really done yet.
11278
11279 2003-02-26  Havoc Pennington  <hp@pobox.com>
11280
11281         * dbus/dbus-connection.c
11282         (dbus_connection_send_message_with_reply_and_block): fix crash
11283         where we ref'd the outgoing message instead of the returned reply
11284
11285         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11286         at the end of this function, so if we didn't need to read for
11287         authentication, we reinstall it for receiving messages
11288
11289         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11290         a NULL sender for peer-to-peer case
11291
11292         * dbus/dbus-transport-unix.c (check_read_watch): handle
11293         !authenticated case correctly
11294
11295         * glib/dbus-gmain.c: add support for DBusServer
11296
11297         * dbus/dbus-server.c: add data slot support
11298
11299         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11300         return values and handle errors
11301
11302         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11303         DBusConnection
11304
11305         * Doxyfile.in (INPUT): add glib subdir
11306
11307         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11308         setup_with_g_main instead of hookup_with_g_main; write docs
11309
11310 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11311
11312         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11313         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11314         * dbus/dbus-message.c: (dbus_message_append_boolean),
11315         (dbus_message_append_boolean_array),
11316         (dbus_message_get_args_valist), (_dbus_message_test):
11317         * dbus/dbus-message.h:
11318         * doc/dbus-specification.sgml:
11319         Various fixes as pointed out by Havoc.
11320
11321         * test/data/invalid-messages/bad-boolean-array.message:
11322         * test/data/invalid-messages/bad-boolean.message:
11323         Add invalid boolean value test cases.
11324
11325 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11326
11327         * dbus/dbus-internals.c: (_dbus_type_to_string):
11328         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11329         (_dbus_marshal_validate_arg):
11330         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11331         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11332         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11333         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11334         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11335         (dbus_message_iter_get_double),
11336         (dbus_message_iter_get_boolean_array), (message_iter_test):
11337         * dbus/dbus-message.h:
11338         * dbus/dbus-protocol.h:
11339         * doc/dbus-specification.sgml:
11340         * test/data/valid-messages/lots-of-arguments.message:
11341         Add support for boolean and boolean array types.
11342
11343 2003-02-23  Havoc Pennington  <hp@pobox.com>
11344
11345         * dbus/dbus-keyring.c: finish most of this implementation and
11346         simple unit test
11347
11348         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11349         these barf if the error isn't cleared to NULL
11350
11351         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11352         (_dbus_create_directory): new function
11353
11354         * dbus/dbus-errors.c (dbus_set_error): fix warning
11355
11356         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11357         (_dbus_string_hex_decode): new function
11358         (test_hex_roundtrip): test code
11359
11360         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11361
11362         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11363
11364         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11365         the save-to-temp/rename trick to atomically write the new file
11366         (_dbus_string_parse_uint): new function
11367
11368 2003-02-22  Havoc Pennington  <hp@pobox.com>
11369
11370         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11371
11372 2003-02-22  Havoc Pennington  <hp@pobox.com>
11373
11374         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11375         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11376
11377         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11378
11379         * dbus/test/data/sha-1: add US government test suite for SHA-1
11380
11381 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11382
11383         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11384         Make string arrays NULL-terminated.
11385
11386         * dbus/dbus-memory.c: (dbus_free_string_array):
11387         * dbus/dbus-memory.h:
11388         New function for freeing NULL-terminated string arrays.
11389
11390         * dbus/dbus-message-builder.c: (append_quoted_string),
11391         (_dbus_message_data_load):
11392         Add support for array types.
11393
11394         * dbus/dbus-message.c: (check_message_handling):
11395         Add more types as test cases.
11396
11397         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11398         (_dbus_string_parse_double):
11399         Add the start offset to the end offset.
11400
11401         * test/data/valid-messages/lots-of-arguments.message:
11402         New test message with lots of arguments.
11403
11404 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11405
11406         * dbus/dbus-message.c: (dbus_message_append_nil),
11407         (dbus_message_append_int32), (dbus_message_append_uint32),
11408         (dbus_message_append_double), (dbus_message_append_string),
11409         (dbus_message_append_int32_array),
11410         (dbus_message_append_uint32_array),
11411         (dbus_message_append_double_array),
11412         (dbus_message_append_byte_array),
11413         (dbus_message_append_string_array):
11414         Fix all out-of-memory handling in these functions.
11415
11416 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11417
11418         * dbus/dbus-message.c: (dbus_message_append_nil):
11419         Fix a silly.
11420
11421 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11422
11423         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11424         (dbus_message_append_nil), (dbus_message_append_int32_array),
11425         (dbus_message_append_uint32_array),
11426         (dbus_message_append_double_array),
11427         (dbus_message_append_byte_array),
11428         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11429         (dbus_message_iter_get_int32_array),
11430         (dbus_message_iter_get_uint32_array),
11431         (dbus_message_iter_get_double_array),
11432         (dbus_message_iter_get_byte_array),
11433         (dbus_message_iter_get_string_array):
11434
11435         * dbus/dbus-message.h:
11436         Add functions for appending and getting arrays.
11437
11438 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11439
11440         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11441         element size at least 8 bytes, fixes mempool tests on
11442         64-bit machines.
11443
11444 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11445
11446         * dbus/dbus-transport-unix.c (unix_do_iteration):
11447         Unlock the connection mutex during a blocking select call.
11448         Add todo about how we need a way to wake up the select.
11449
11450         * dbus/dbus-connection-internal.h:
11451         * dbus/dbus-connection.c:
11452         Add _dbus_connection_lock and _dbus_connection_unlock.
11453
11454 2003-02-19  Havoc Pennington  <hp@pobox.com>
11455
11456         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11457         Doxyfile.in, not Doxyfile
11458
11459         * dbus/dbus-keyring.c: do some hacking on this
11460
11461         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11462
11463         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11464         dbus_error_init
11465         (dbus_set_error): remove dbus_error_init, check for message ==
11466         NULL *before* we sprintf into it, and add @todo about including
11467         system headers in this file
11468
11469         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11470
11471         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11472
11473         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11474         get various bits of user information based on either username
11475         or user ID
11476         (_dbus_homedir_from_username): new function
11477
11478 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11479
11480         * configure.in:
11481         Add check for nonposix getpwnam_r
11482
11483         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11484         Align the pool element size to a sizeof (void *) boundary.
11485
11486         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11487         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11488         General Solaris fixes.
11489
11490         * test/data/valid-messages/simplest-manual.message:
11491         Explicitly state that we want little-endian packing.
11492
11493 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11494
11495         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11496
11497         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11498         Added to create a transport connecting using a tcp/ip socket.
11499
11500         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11501         to a tcp socket at given host and port.
11502         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11503         hostname and port.
11504
11505         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11506
11507         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11508         Added to create a server listening on a TCP/IP socket.
11509
11510 2003-02-19  Havoc Pennington  <hp@pobox.com>
11511
11512         Throughout: mop up all the Doxygen warnings and undocumented
11513         stuff.
11514
11515         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11516         to search any paths.
11517
11518         * dbus/dbus-threads.c: move global mutex initializers to
11519         dbus-internals.h, multiple prototypes was confusing doxygen
11520         besides being kind of ugly
11521
11522         * Doxyfile (PREDEFINED): have Doxygen define
11523         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11524         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11525         (do not abuse the feature! it's for stuff like the autogenerated
11526         macros in dbus-md5.c, not just for things you don't feel like
11527         documenting...)
11528
11529 2003-02-18  Havoc Pennington  <hp@pobox.com>
11530
11531         * dbus/dbus-string.c (_dbus_string_zero): new function
11532
11533         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11534         wrap it in some dbus-friendly API
11535
11536         * dbus/dbus-types.h: add 16-bit types
11537
11538 2003-02-18  Joe Shaw  <joe@assbarn.com>
11539
11540         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11541         credentials from our currently running process.
11542         (get_word): Fix a buglet where we were copying the entire length
11543         instead of relative to our position.
11544
11545         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11546         keys on the stack... it's 640k of data.
11547
11548         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11549         read the credentials byte off the socket, even if we don't have
11550         SO_PEERCRED.
11551         (_dbus_poll): Implement poll() using select() for systems which
11552         don't have it.
11553
11554         * glib/test-dbus-glib.c (main): Print out an error if no
11555         parameters are given.
11556
11557         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11558         can fallback to a secondary auth mechanism if the first fails.
11559
11560 2003-02-18  Havoc Pennington  <hp@pobox.com>
11561
11562         * AUTHORS: add Alex
11563
11564 2003-02-17  Havoc Pennington  <hp@pobox.com>
11565
11566         * doc/dbus-specification.sgml: lots of cosmetic
11567         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11568         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11569         s/server/bus/ (except in authentication section). Add a section
11570         "Message Bus Message Routing"
11571
11572 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11573
11574         Release 0.4
11575
11576         * NEWS: Update
11577
11578 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11579
11580         * doc/dbus-specification.sgml:
11581         Specification updates.
11582
11583 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11584
11585         * bus/activation.c: (bus_activation_init), (child_setup),
11586         (bus_activation_activate_service):
11587         * bus/activation.h:
11588         * bus/main.c: (main):
11589         Set DBUS_ADDRESS environment variable.
11590
11591         * dbus/dbus-errors.c: (dbus_set_error):
11592         Don't use va_copy since that's a C99 feature.
11593
11594         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11595         (_dbus_spawn_async):
11596         * dbus/dbus-sysdeps.h:
11597         Add child_setup_func to _dbus_spawn_async.
11598
11599         * doc/dbus-specification.sgml:
11600         Update specification.
11601
11602         * test/spawn-test.c: (setup_func), (main):
11603         Fix test.
11604
11605 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11606
11607         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11608         Added todo.
11609
11610 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11611
11612         * doc/.cvsignore:
11613         * doc/Makefile.am:
11614         * doc/dbus-test-plan.sgml:
11615         Add test plan document.
11616
11617         * test/Makefile.am:
11618         Fix distcheck.
11619
11620 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11621
11622         * dbus/dbus-message.c: (decode_header_data),
11623         (_dbus_message_loader_return_buffer):
11624         Set the header padding amount when loading a message.
11625
11626 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11627
11628         * bus/dispatch.c: (send_one_message):
11629         Only send broadcast messages to registered connections.
11630
11631         * dbus/dbus-message.c: (dbus_message_name_is):
11632         * dbus/dbus-message.h:
11633         New convenience function.
11634
11635         * dbus/dbus-transport-debug.c: (do_reading):
11636         Only dispatch one message per run.
11637
11638         * test/Makefile.am:
11639         * test/bus-test.c: (new_connection_callback), (die),
11640         (test_hello_client1_handler), (test_hello_client2_handler),
11641         (test_hello_replies), (main):
11642
11643         * test/bus-test-loop.[ch]:
11644         Add these.
11645
11646 2003-02-16  Havoc Pennington  <hp@pobox.com>
11647
11648         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11649         backward conditional
11650
11651 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11652
11653         * dbus/dbus-connection.c:
11654         Implement sent_message_with_reply. (with_reply_and block is still
11655         busted).
11656         Made dispatch_message not lose message if OOM.
11657
11658         * dbus/dbus-errors.h:
11659         Add NoReply error (for reply timeouts).
11660
11661 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11662
11663         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11664         Actually free keys and values when destroying hashtable.
11665
11666 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11667
11668         * dbus/dbus-auth.c: (client_try_next_mechanism):
11669         Plug a leak.
11670
11671         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11672         Return TRUE if there's no thread implementation around.
11673
11674         * glib/dbus-gmain.c: (free_source),
11675         (dbus_connection_hookup_with_g_main):
11676         Make sure to remove the GSource when the connection is finalized.
11677
11678 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11679
11680         * bus/dispatch.c: (bus_dispatch_message_handler):
11681         * dbus/dbus-errors.h:
11682         Return an error if someone tries to send a message to a service
11683         that doesn't exist.
11684
11685 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11686
11687         * bus/activation.c: (load_directory), (bus_activation_init),
11688         (bus_activation_activate_service):
11689         * bus/activation.h:
11690         * bus/driver.c:
11691         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11692         More work on the activation handling.
11693
11694         * dbus/dbus-errors.h:
11695         Add some error messages
11696
11697         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11698         * dbus/dbus-message.h:
11699         New function that creates an error message.
11700
11701         * dbus/dbus-protocol.h:
11702         Add ACTIVATE_SERVER message.
11703
11704         * dbus/dbus-server-unix.c: (unix_handle_watch),
11705         (_dbus_server_new_for_domain_socket):
11706         Call _dbus_fd_set_close_on_exec.
11707
11708         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11709         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11710         (_dbus_fd_set_close_on_exec):
11711         * dbus/dbus-sysdeps.h:
11712         Add _dbus_fd_set_close_on exec function. Also add function that checks
11713         that all open fds are set to close-on-exec and warns otherwise.
11714
11715         * dbus/dbus-transport-unix.c:
11716         (_dbus_transport_new_for_domain_socket):
11717         Call _dbus_fd_set_close_on_exec.
11718
11719 2003-02-16  Havoc Pennington  <hp@pobox.com>
11720
11721         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11722         allow people to avoid setting SIGPIPE to SIG_IGN
11723         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11724         we've been asked not to
11725
11726 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11727
11728         * dbus/dbus-list.c: (_dbus_list_append_link),
11729         (_dbus_list_prepend_link):
11730         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11731         (dbus_realloc):
11732         Warning fixes.
11733
11734 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11735
11736         * bus/Makefile.am:
11737         * bus/activation.c: (bus_activation_entry_free),
11738         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11739         * bus/activation.h:
11740         * bus/main.c: (main):
11741         Add simple activation support, doesn't work yet though.
11742
11743 2003-02-15   Zack Rusin  <zack@kde.org>
11744
11745         * qt/dbus-qthread.cpp:  small casting fix
11746
11747 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11748
11749         * dbus/dbus-errors.c: (dbus_set_error):
11750         * dbus/dbus-errors.h:
11751         Add a few errors and make dbus_set_error void.
11752
11753         * dbus/dbus-sysdeps.c:
11754         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11755         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11756         * dbus/dbus-sysdeps.h:
11757         Add _dbus_spawn_async.
11758
11759         * test/spawn-test.c: (main):
11760         Test for _dbus_spawn_async.
11761
11762 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11763
11764         * dbus/dbus-internals.h:
11765         Fix build without tests.
11766
11767         * dbus/dbus-list.c: (alloc_link):
11768         Fix a segfault when a malloc fails.
11769
11770         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11771         (dbus_malloc0), (dbus_realloc):
11772         Add support for malloc debugging.
11773
11774 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11775
11776         * dbus/dbus-threads.c:
11777         * dbus/dbus-threads.h:
11778         Add condvars. Remove static mutext from API.
11779         Implement static mutexes by initializing them from threads_init.
11780
11781         * glib/dbus-gthread.c:
11782         * qt/dbus-qthread.cpp:
11783         Update with the thread api changes.
11784
11785
11786         * dbus/dbus-list.c:
11787         * dbus/dbus-list.h:
11788         Turn StaticMutex into normal mutex + init function.
11789         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11790         _dbus_list_append_link, _dbus_list_prepend_link
11791
11792
11793         * dbus/dbus-sysdeps.c:
11794         * dbus/dbus-sysdeps.h:
11795         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11796         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11797
11798         * dbus/dbus-protocol.h:
11799         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11800
11801         * dbus/dbus-message.c:
11802         Make ref/unref atomic.
11803         Fix some docs.
11804
11805         * dbus/dbus-connection-internal.h:
11806         * dbus/dbus-connection.c:
11807         * dbus/dbus-connection.h:
11808         Make threadsafe.
11809         Change _peek to _borrow,_return & _steal_borrowed.
11810         Change disconnect callback to event.
11811         Make dbus_connection_dispatch_messages reentrant.
11812
11813         * dbus/dbus-transport.c:
11814         Don't ref the connection on calls to the transport
11815         implementation.
11816
11817         * dbus/dbus-message-handler.c:
11818         Make threadsafe.
11819
11820         * glib/dbus-gmain.c:
11821         Don't use peek_message anymore
11822
11823         * test/Makefile.am:
11824         * test/debug-thread.c:
11825         * test/debug-thread.h:
11826         Simple thread implementation that asserts() on deadlocks in
11827         single-threaded code.
11828
11829         * test/bus-test.c:
11830         (main) Call debug_threads_init.
11831
11832         * test/watch.c:
11833         Use disconnect message instead of disconnect callback.
11834
11835         * bus/connection.c:
11836         * bus/connection.h:
11837         Don't call dbus_connection_set_disconnect_function. Instead export
11838         bus_connection_disconnect.
11839
11840         * bus/dispatch.c:
11841         Call bus_connection_disconnect when we get a disconnected message.
11842
11843 2003-02-15  Havoc Pennington  <hp@pobox.com>
11844
11845         * dbus/dbus-message.c (dbus_message_new): fool around with the
11846         docs
11847
11848 2003-02-14  Havoc Pennington  <hp@pobox.com>
11849
11850         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11851
11852         * dbus/dbus-memory.c: fail if the debug functions indicate we
11853         should
11854
11855         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11856         (_dbus_decrement_fail_alloc_counter): debug functions to
11857         simulate memory allocation failures
11858
11859 2003-02-14  Havoc Pennington  <hp@pobox.com>
11860
11861         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11862         to DBusError
11863
11864 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11865
11866         * bus/driver.c: (bus_driver_handle_hello):
11867         * bus/driver.h:
11868         * bus/services.c: (bus_service_lookup):
11869         Reorder message sending so we get a more sane order.
11870
11871         * test/bus-test.c: (message_handler):
11872         Fix tyop.
11873
11874 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11875
11876         * bus/driver.c: (bus_driver_send_service_deleted),
11877         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11878         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11879         (bus_driver_send_welcome_message),
11880         (bus_driver_handle_list_services),
11881         (bus_driver_handle_acquire_service),
11882         (bus_driver_handle_service_exists):
11883         * dbus/dbus-bus.c: (dbus_bus_register_client),
11884         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11885         * dbus/dbus-errors.c: (dbus_result_to_string):
11886         * dbus/dbus-errors.h:
11887         * dbus/dbus-message.c: (dbus_message_append_args),
11888         (dbus_message_append_args_valist), (dbus_message_get_args),
11889         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11890         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11891         (dbus_message_iter_get_byte_array),
11892         (dbus_message_iter_get_string_array), (message_iter_test),
11893         (check_message_handling), (_dbus_message_test):
11894         * dbus/dbus-message.h:
11895         * test/bus-test.c: (main):
11896         Change fields to arguments in messages, so that they won't be
11897         confused with header fields.
11898
11899         * glib/test-dbus-glib.c: (main):
11900         Remove append_fields from hello message.
11901
11902 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11903
11904         * dbus/dbus-errors.c:
11905         * dbus/dbus-message.c:
11906         * dbus/dbus-string.c:
11907         Documentation fixes.
11908
11909 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11910
11911         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11912         (remove_timeout):
11913         Implement support for timeouts in dbus-glib.
11914
11915 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11916
11917         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11918         * dbus/dbus-message.c: (process_test_subdir):
11919         * test/break-loader.c: (find_breaks_based_on):
11920         Plug some memory leaks.
11921
11922 2003-02-13  Richard Hult  <rhult@codefactory.se>
11923
11924         * bus/main.c: Fix build.
11925
11926         * dbus/dbus-errors.h:
11927         * dbus/dbus-errors.c: Fix copyright for Anders.
11928
11929 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11930
11931         * bus/Makefile.am:
11932         Add utils.[ch]
11933
11934         * bus/connection.c: (bus_connection_foreach):
11935         Fix a warning.
11936
11937         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11938         (unescape_string), (new_section), (parse_section_start),
11939         (parse_key_value), (report_error), (bus_desktop_file_load),
11940         (bus_desktop_file_get_string):
11941         * bus/desktop-file.h:
11942         Use DBusError for error reporting.
11943
11944         * bus/dispatch.c: (send_one_message),
11945         (bus_dispatch_message_handler):
11946         * bus/driver.c: (bus_driver_send_service_deleted),
11947         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11948         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11949         (bus_driver_send_welcome_message),
11950         (bus_driver_handle_list_services),
11951         (bus_driver_handle_acquire_service),
11952         (bus_driver_handle_service_exists):
11953         * bus/loop.c: (bus_loop_run):
11954         * bus/main.c:
11955         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11956
11957         * bus/utils.c: (bus_wait_for_memory):
11958         * bus/utils.h:
11959         New files with general utility functions.
11960
11961         * dbus/dbus-internals.h:
11962         Remove _DBUS_HANDLE_OOM.
11963
11964 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11965
11966         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11967         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11968         * dbus/dbus-errors.h:
11969         Add DBusError structure.
11970
11971 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11972
11973         * test/data/valid-messages/standard-acquire-service.message:
11974         * test/data/valid-messages/standard-hello.message:
11975         * test/data/valid-messages/standard-list-services.message:
11976         * test/data/valid-messages/standard-service-exists.message:
11977         Add some standard messages.
11978
11979 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11980
11981         * bus/driver.c: (bus_driver_send_welcome_message),
11982         (bus_driver_handle_list_services),
11983         (bus_driver_handle_acquire_service),
11984         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11985         Update for API changes in libdbus.
11986
11987         * dbus/dbus-message.c: (dbus_message_new_reply):
11988         * dbus/dbus-message.h:
11989         Remove the name argument. The spec states that replies shouldn't
11990         have a name.
11991
11992 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11993
11994         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11995         (report_error), (bus_desktop_file_load), (lookup_section),
11996         (lookup_line), (bus_desktop_file_get_raw),
11997         (bus_desktop_file_get_string):
11998         * bus/desktop-file.h:
11999         Some fixes, and new functions for getting a key value from a section.
12000
12001 2003-02-13  Havoc Pennington  <hp@pobox.com>
12002
12003         * test/data/auth/fail-after-n-attempts.auth-script: new test
12004
12005         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12006         reject the client.
12007
12008 2003-02-13  Havoc Pennington  <hp@pobox.com>
12009
12010         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12011         dbus_credentials_match were backward
12012
12013         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12014         NO_CREDENTIALS and ROOT_CREDENTIALS
12015
12016         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12017         into here. Never process more commands after we've reached an
12018         end state; store further data as unused bytes.
12019
12020         * test/data/auth/*: add more auth tests
12021
12022         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12023         command to match exact string and EXPECT_UNUSED to match unused
12024         bytes
12025
12026         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12027
12028 2003-02-12  Havoc Pennington  <hp@pobox.com>
12029
12030         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12031         \r off of popped lines
12032
12033         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12034         scripts
12035
12036         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12037         SEND, append \r\n
12038
12039 2003-02-12  Havoc Pennington  <hp@pobox.com>
12040
12041         * dbus/Makefile.am: remove break-loader from the build, since it
12042         moved.
12043
12044         * configure.in: add --enable-gcov to turn on coverage profiling
12045         flags and disable optimization
12046
12047 2003-02-10  Havoc Pennington  <hp@pobox.com>
12048
12049         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12050         initial cut at test framework for DBusAuth from laptop.
12051         Doesn't quite work yet but it compiles and I need to get
12052         it off the 266mhz laptop. ;-)
12053
12054         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12055         fix a memleak in error case
12056
12057 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12058
12059         * bus/Makefile.am:
12060         * bus/desktop-file.c:
12061         * bus/desktop-file.h:
12062         Add a desktop file parser.
12063
12064 2003-02-11  Zack Rusin  <zack@kde.org>
12065
12066         * qt/message.[h|cpp]: sample implementation
12067         of the KDE wrapper for DBusMessage
12068
12069 2003-02-09  Zack Rusin  <zack@kde.org>
12070
12071         * test/bus-test.c: make_it_compile
12072         * doc/dbus-specification.sgml: minimal semantic fix
12073
12074 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12075
12076         Release 0.3
12077
12078         * NEWS: Update
12079
12080 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12081
12082         * dbus/Makefile.am:
12083         * dbus/dbus-break-loader.c:
12084         * test/Makefile.am:
12085         * test/break-loader.c:
12086         Move dbus-break-loader to test/ and rename it to break-loader.
12087
12088 2003-02-02  Havoc Pennington  <hp@pobox.com>
12089
12090         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12091         for code to manage cookies in your home directory
12092
12093         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12094
12095         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12096         to authenticate, then disconnect the client.
12097
12098 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12099
12100         * dbus/dbus-message.c (dbus_message_append_fields):
12101         Correct docs.
12102
12103 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12104
12105         * doc/dbus-specification.sgml:
12106         Update address format section.
12107
12108 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12109
12110         * test/Makefile.am:
12111         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12112         (message_handler), (new_connection_callback), (loop_quit),
12113         (loop_run), (main):
12114         Add bus test.
12115
12116 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12117
12118         * bus/driver.c: (bus_driver_handle_service_exists):
12119         Simplify the code a bit.
12120
12121         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12122         Fix a silly.
12123
12124 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12125
12126         * bus/Makefile.am:
12127         Add libdbus-daemon.la and link to it.
12128
12129 2003-02-01  James Willcox  <jwillcox@gnome.org>
12130
12131         * bus/driver.c: (bus_driver_handle_own_service):
12132         Actually include the service reply code in the message.
12133
12134 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12135
12136         * bus/driver.c: (bus_driver_handle_service_exists):
12137         Don't unref the incoming message.
12138
12139 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12140
12141         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12142
12143 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12144
12145         * dbus/dbus-server.c: (dbus_server_listen):
12146         * dbus/dbus-transport.c: (_dbus_transport_open):
12147         ifdef out the calls to the debug transport and server.
12148
12149 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12150
12151         * dbus/dbus-watch.c (dbus_watch_get_flags):
12152         Add note in the docs that ERROR or HANGUP won't be returned
12153         and are assumed always on.
12154
12155         * glib/dbus-gmain.c (add_watch):
12156         Always add IO_ERR | IO_HUP
12157
12158         * dbus/dbus-message.h:
12159         Add semicolon after dbus_message_iter_get_string_array().
12160         Makes qt code build again
12161
12162 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12163
12164         * bus/driver.c: (create_unique_client_name),
12165         (bus_driver_handle_hello):
12166         Don't take a name, just use a numeric id to identify
12167         each client.
12168
12169         * dbus/Makefile.am:
12170         * dbus/dbus-bus.c: (dbus_bus_register_client),
12171         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12172         * dbus/dbus-bus.h:
12173         Add new convenience functions for communicating with the bus.
12174
12175         * dbus/dbus-message.h:
12176
12177         * dbus/dbus-protocol.h:
12178         Fix a typo.
12179
12180 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12181
12182         * dbus/dbus-message.c (dbus_message_append_fields):
12183         Add some more doc comments.
12184
12185 2003-02-01  Havoc Pennington  <hp@pobox.com>
12186
12187         * dbus/dbus-break-loader.c (randomly_modify_length): change
12188         a 4-byte value in the message as if it were a length
12189
12190         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12191         execute bit on saved files
12192
12193 2003-02-01  Havoc Pennington  <hp@pobox.com>
12194
12195         * dbus/dbus-break-loader.c (main): new program to find messages
12196         that break the loader.
12197
12198         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12199         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12200
12201         * dbus/dbus-string.c (_dbus_string_set_byte): new
12202
12203 2003-01-31  Havoc Pennington  <hp@pobox.com>
12204
12205         * dbus/dbus-message.c: refactor the test code to be more general,
12206         in preparation for writing a "randomly permute test cases to
12207         try to break the loader" program.
12208
12209 2003-01-31  Havoc Pennington  <hp@pobox.com>
12210
12211         * doc/dbus-specification.sgml: work on the specification
12212
12213         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12214         the protocol version of the message.
12215
12216         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12217         no longer specifies that.
12218         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12219         1/2/3/4)
12220
12221         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12222         "break" for DBUS_TYPE_NIL, remove @todo
12223
12224 2003-01-31  Havoc Pennington  <hp@pobox.com>
12225
12226         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12227         just set_is_error/get_is_error as this is a commonly-used
12228         function, and write docs.
12229
12230 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12231
12232         * dbus/dbus-address.c: (dbus_address_entry_free):
12233         Free key and value lists.
12234
12235         * dbus/dbus-internals.c: (_dbus_type_to_string):
12236         Add the types we didn't have.
12237
12238         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12239         (_dbus_marshal_validate_arg):
12240         Add NIL types.
12241
12242         * dbus/dbus-message.c: (dbus_message_set_sender):
12243         Remove todo about being able to set sender to NULL.
12244
12245         (dbus_message_set_is_error_reply),
12246         (dbus_message_get_is_error_reply):
12247         * dbus/dbus-message.h:
12248         New functions.
12249
12250         * dbus/dbus-protocol.h:
12251         Add error reply flag.
12252
12253         * test/data/valid-messages/opposite-endian.message:
12254         Add NIL type to test.
12255
12256 2003-01-31  Havoc Pennington  <hp@pobox.com>
12257
12258         * doc/dbus-specification.sgml: fully specify the header.  Add
12259         flags and major protocol version, and change header/body len to
12260         unsigned.
12261
12262         * dbus/dbus-message-builder.c (append_saved_length): append length
12263         as uint32
12264
12265         * dbus/dbus-message.c (dbus_message_create_header): change header
12266         length and body length to unsigned. Add the new fields from the
12267         spec
12268         (_dbus_message_loader_return_buffer): unsigned header/body len
12269
12270 2003-01-30  Havoc Pennington  <hp@pobox.com>
12271
12272         * dbus/dbus-auth.c: rework to use only REJECTED, no
12273         MECHANISMS
12274
12275         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12276         use REJECTED, suggested by Mark McLoughlin
12277
12278 2003-01-30  Havoc Pennington  <hp@pobox.com>
12279
12280         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12281         a better way to report errors here. e.g.  "unix address lacks
12282         path" or something. also "no such file" when the path doesn't
12283         exist, etc.
12284
12285         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12286         leaking list nodes
12287         (dbus_parse_address): add @todo about documenting address format,
12288         and allowing , and ; to be escaped
12289
12290 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12291
12292         * dbus/Makefile.am:
12293         Add dbus-address.[ch]
12294
12295         * dbus/dbus-address.c: (dbus_address_entry_free),
12296         (dbus_address_entries_free), (create_entry),
12297         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12298         (dbus_parse_address), (_dbus_address_test):
12299         * dbus/dbus-address.h:
12300         New files for dealing with address parsing.
12301
12302         * dbus/dbus-connection.c:
12303         Document timeout functions.
12304
12305         * dbus/dbus-message.c:
12306         Document dbus_message_new_from_message.
12307
12308         * dbus/dbus-server-debug.c:
12309         Document.
12310
12311         * dbus/dbus-server.c: (dbus_server_listen):
12312         Parse address and use correct server implementation.
12313
12314         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12315         * dbus/dbus-string.h:
12316         New function with test.
12317
12318         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12319         * dbus/dbus-test.h:
12320         Add address tests.
12321
12322         * dbus/dbus-transport-debug.c:
12323         Document.
12324
12325         * dbus/dbus-transport.c: (_dbus_transport_open):
12326         Parse address and use correct transport implementation.
12327
12328 2003-01-30  Havoc Pennington  <hp@pobox.com>
12329
12330         * dbus/dbus-message.c: use message->byte_order instead of
12331         DBUS_COMPILER_BYTE_ORDER throughout.
12332         (dbus_message_create_header): pad header to align the
12333         start of the body of the message to 8-byte boundary
12334
12335         * dbus/dbus-marshal.h: make all the demarshalers take const
12336         DBusString arguments.
12337
12338         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12339         validate message args here, so we don't have to do slow validation
12340         later, and so we catch bad messages as they are incoming. Also add
12341         better checks on header_len and body_len. Also fill in
12342         message->byte_order
12343
12344         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12345         implemented properly)
12346         (_dbus_string_validate_nul): new function to check all-nul
12347
12348         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12349         get_arg_end_pos and remove all validation
12350         (_dbus_marshal_validate_arg): actually do validation here.
12351
12352 2003-01-29  Havoc Pennington  <hp@pobox.com>
12353
12354         * dbus/dbus-message.c (check_message_handling): fix assertion
12355         failure on set_client_serial
12356
12357 2003-01-28  Havoc Pennington  <hp@pobox.com>
12358
12359         * dbus/dbus-server-debug.c: Add doc section comments
12360
12361         * dbus/dbus-transport-debug.c: add doc section comments
12362
12363 2003-01-28  Havoc Pennington  <hp@redhat.com>
12364
12365         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12366         the reverse order from how I had it
12367         (_dbus_string_base64_encode): reverse encoding order. I was
12368         basically byteswapping everything during encoding.
12369
12370 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12371
12372         * dbus/dbus-connection-internal.h:
12373         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12374         (_dbus_connection_remove_timeout):
12375         Add functions for adding and removing timeouts.
12376
12377         * dbus/dbus-message.c: (dbus_message_new_from_message):
12378         Add new function that takes a message and creates an exact
12379         copy of it, but with the refcount set to 1.
12380         (check_message_handling):
12381         Fix build error.
12382
12383         * dbus/dbus-server-protected.h:
12384         * dbus/dbus-server.c: (_dbus_server_init_base),
12385         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12386         (dbus_server_set_timeout_functions):
12387         (_dbus_server_remove_timeout):
12388         New functions so that a server can add and remove timeouts.
12389
12390         (dbus_server_listen):
12391         Add commented out call to dbus_server_debug_new.
12392
12393         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12394         Actually set the handler, doh.
12395
12396         * dbus/dbus-transport.c: (_dbus_transport_open):
12397         Add commented out call to dbus_transport_debug_client_new.
12398
12399         * dbus/Makefile.am:
12400         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12401
12402 2003-01-28  Havoc Pennington  <hp@pobox.com>
12403
12404         * dbus/dbus-message.c (check_message_handling): function to check
12405         on the loaded message, iterates over it etc.
12406
12407 2003-01-28  Havoc Pennington  <hp@pobox.com>
12408
12409         * test/Makefile.am (dist-hook): fix make distdir
12410
12411         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12412
12413 2003-01-27  Havoc Pennington  <hp@pobox.com>
12414
12415         * dbus/dbus-mempool.c (time_for_size): replace printf with
12416         _dbus_verbose
12417
12418         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12419         empty lines; fix the SAVE_LENGTH stuff to be
12420         START_LENGTH/END_LENGTH so it actually works; couple other
12421         bugfixes
12422
12423         * test/Makefile.am (dist-hook): add dist-hook for .message files
12424
12425         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12426         can be constant or locked.
12427         (_dbus_string_free): allow freeing a const string as
12428         documented/intended
12429
12430         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12431
12432         * dbus/dbus-test-main.c (main): take an argument which is the
12433         directory containing test data
12434
12435         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12436         argument to this and load all the messages in test/data/
12437         checking that they can be loaded or not loaded as appropriate.
12438
12439 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12440
12441         * bus/dispatch.c: (bus_dispatch_message_handler):
12442         Dispatch messages sent to services.
12443
12444         * bus/driver.c: (bus_driver_send_service_deleted),
12445         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12446         (bus_driver_send_service_acquired):
12447         Add helper functions for sending service related messages.
12448
12449         (bus_driver_send_welcome_message):
12450         Send HELLO_REPLY instead of WELCOME.
12451
12452         (bus_driver_handle_list_services):
12453         Send LIST_SERVICES_REPLY instead of SERVICES.
12454
12455         (bus_driver_handle_own_service),
12456         (bus_driver_handle_service_exists):
12457         New message handlers.
12458
12459         (bus_driver_handle_message):
12460         Invoke new message handlers.
12461
12462         (bus_driver_remove_connection):
12463         Don't remove any services here since that's done automatically
12464         by bus_service_remove_owner now.
12465
12466         * bus/driver.h:
12467         New function signatures.
12468
12469         * bus/services.c: (bus_service_add_owner):
12470         Send ServiceAcquired message if we're the only primary owner.
12471
12472         (bus_service_remove_owner):
12473         Send ServiceAcquired/ServiceLost messages.
12474
12475         (bus_service_set_prohibit_replacement),
12476         (bus_service_get_prohibit_replacement):
12477         Functions for setting prohibit replacement.
12478
12479         (bus_service_has_owner):
12480         New function that checks if a connection is in the owner queue of
12481         a certain service.
12482
12483         * bus/services.h:
12484         Add new function signatures.
12485
12486         * dbus/dbus-list.c: (_dbus_list_test):
12487         Add tests for _dbus_list_remove_last and traversing the list backwards.
12488
12489         * dbus/dbus-list.h:
12490         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12491         go any further, so return NULL then.
12492
12493         * dbus/dbus-protocol.h:
12494         Add new messages, service flags and service replies.
12495
12496 2003-01-26  Havoc Pennington  <hp@pobox.com>
12497
12498         * dbus/dbus-message-builder.c: implement, completely untested.
12499
12500         * test/data/*: add data to be used in testing.
12501         ".message" files are our simple loadable text format.
12502         ".message-raw" will be binary dumps of messages.
12503
12504         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12505
12506 2003-01-26  Havoc Pennington  <hp@pobox.com>
12507
12508         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12509
12510         * dbus/dbus-errors.c (dbus_result_to_string): add
12511         file errors
12512
12513         * dbus/dbus-message-builder.c: new file, will contain code to load
12514         up messages from files. Not implemented yet.
12515
12516 2003-01-26  Havoc Pennington  <hp@pobox.com>
12517
12518         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12519         the sender by setting to NULL
12520
12521 2003-01-26  Havoc Pennington  <hp@pobox.com>
12522
12523         The unit tests pass, but otherwise untested.  If it breaks, the
12524         tests should have been better. ;-)
12525
12526         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12527         the connection.
12528
12529         * dbus/dbus-message.c: redo everything so we maintain
12530         message->header as the only copy of the various fields.
12531         This avoids the possibility of out-of-memory in some cases,
12532         for example dbus_message_lock() can't run out of memory anymore,
12533         and avoids extra copying. Figured I may as well go ahead and do
12534         this since it was busted for dbus_message_lock to not return
12535         failure on OOM, and dbus_message_write_header was totally
12536         unchecked for OOM. Also fixed some random other bugs.
12537
12538         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12539         that strings are nul-terminated. Also, end_pos can be equal
12540         to string length just not greater than, I think.
12541         (_dbus_marshal_set_int32): new function
12542         (_dbus_marshal_set_uint32): new function
12543         (_dbus_marshal_set_string): new function
12544
12545         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12546         a warning, init timeout_list to NULL
12547         (dbus_connection_send_message): don't use uninitialized variable
12548         "serial"
12549
12550         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12551
12552 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12553
12554         * bus/driver.c: (bus_driver_handle_hello),
12555         (bus_driver_send_welcome_message):
12556         Plug leaks
12557
12558 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12559
12560         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12561         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12562         (dbus_connection_unref):
12563         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12564         * dbus/dbus-message.c: (dbus_message_unref),
12565         Plug memory leaks.
12566
12567         (dbus_message_get_fields):
12568         Remove debugging printout.
12569
12570         (_dbus_message_loader_return_buffer):
12571         Don't store the header string.
12572
12573         (_dbus_message_test):
12574         Plug leaks.
12575
12576 2003-01-26  Richard Hult  <rhult@codefactory.se>
12577
12578         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12579         the file descriptor list, since it can change under us.
12580
12581 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12582
12583         * glib/dbus-gmain.c: (dbus_connection_prepare),
12584         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12585         (remove_watch), (dbus_connection_hookup_with_g_main):
12586         Rewrite the glib handling to use its own GSource instead of a
12587         GIOChannel so we can catch messages put in the queue while waiting
12588         for a reply.
12589
12590 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12591
12592         * bus/Makefile.am:
12593         * bus/connection.c: (connection_disconnect_handler),
12594         (connection_watch_callback), (bus_connection_setup):
12595         * bus/dispatch.c: (send_one_message),
12596         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12597         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12598         * bus/dispatch.h:
12599         * bus/driver.c: (bus_driver_send_service_deleted),
12600         (bus_driver_send_service_created), (bus_driver_handle_hello),
12601         (bus_driver_send_welcome_message),
12602         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12603         (bus_driver_handle_message):
12604         * bus/driver.h:
12605         Refactor code, put the message dispatching in its own file. Use
12606         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12607         is disconnected.
12608
12609 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12610
12611         * dbus/dbus-internals.h:
12612         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12613
12614         * dbus/dbus-message.c: (dbus_message_get_sender):
12615         * dbus/dbus-message.h:
12616         Implement dbus_message_get_sender.
12617
12618         * dbus/dbus-protocol.h:
12619         Add message and service defines.
12620
12621 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12622
12623         * dbus/dbus-connection.c: (dbus_connection_send_message):
12624         * dbus/dbus-message-internal.h:
12625         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12626         (dbus_message_write_header):
12627         Remove _dbus_messag_unlock and don't set the client serial on a
12628         message if one already exists.
12629
12630 2003-01-24  Havoc Pennington  <hp@pobox.com>
12631
12632         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12633         list_pool
12634
12635         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12636         on OOM
12637
12638 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12639
12640         * dbus/dbus-list.c: (alloc_link), (free_link):
12641         Use a memory pool for the links.
12642
12643 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12644
12645         * bus/connection.c: (bus_connection_foreach):
12646         * bus/connection.h:
12647         Add new bus_connection_foreach function.
12648
12649         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12650         Add function that broadcasts a message to all clients.
12651
12652         (bus_driver_send_service_created), (bus_driver_handle_hello),
12653         (bus_driver_send_welcome_message),
12654         (bus_driver_handle_list_services), (bus_driver_message_handler):
12655         Implement functions that take care of listing services, and notifying
12656         clients when new services are created.
12657
12658         * bus/services.c: (bus_services_list):
12659         * bus/services.h:
12660         Add new function that returns an array of strings with the currently
12661         registered services.
12662
12663         * glib/dbus-glib.h:
12664         * glib/dbus-gmain.c:
12665         Update copyright year.
12666
12667 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12668
12669         * dbus/dbus-connection.c: (dbus_connection_send_message):
12670         Unlock the message in case it was sent earlier.
12671
12672         (dbus_connection_send_message_with_reply_and_block):
12673         Remove the reply message from the list.
12674
12675         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12676         Set array_len and new_pos correctly.
12677
12678         (_dbus_marshal_test):
12679         Remove debug output.
12680
12681         * dbus/dbus-message-internal.h:
12682         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12683         New function that returns the reply serial.
12684
12685         (_dbus_message_unlock):
12686         New function that unlocks a message and resets its header.
12687
12688         (dbus_message_append_string_array),
12689         (dbus_message_get_fields_valist),
12690         (dbus_message_iter_get_field_type),
12691         (dbus_message_iter_get_string_array),
12692         (dbus_message_get_fields),
12693         (dbus_message_append_fields_valist):
12694         Handle string arrays.
12695
12696         (dbus_message_set_sender):
12697         Make this function public since the bus daemon needs it.
12698
12699         (decode_header_data):
12700         Set the reply serial to -1 initially.
12701
12702         * dbus/dbus-message.h:
12703         Add dbus_message_set_sender.
12704
12705 2003-01-24  Havoc Pennington  <hp@pobox.com>
12706
12707         * doc/dbus-specification.sgml: add some stuff
12708
12709 2003-01-22  Havoc Pennington  <hp@pobox.com>
12710
12711         * doc/dbus-specification.sgml: Start to document the protocol.
12712
12713 2003-01-22  Havoc Pennington  <hp@pobox.com>
12714
12715         * dbus/dbus-connection.c
12716         (dbus_connection_send_message_with_reply_and_block): add some @todo
12717
12718         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12719
12720 2003-01-21  Havoc Pennington  <hp@pobox.com>
12721
12722         (patch untested because can't compile)
12723
12724         * bus/driver.c (create_unique_client_name): make this function
12725         never recycle client names. Also, caller should initialize
12726         the DBusString.
12727
12728         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12729
12730 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12731
12732         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12733         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12734         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12735         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12736         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12737         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12738         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12739         * dbus/dbus-marshal.h:
12740         * dbus/dbus-protocol.h:
12741         Add support for marshalling and demarshalling integer, double
12742         and string arrays.
12743
12744 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12745
12746         * bus/Makefile.am:
12747         Add driver.[ch]
12748
12749         * bus/connection.c: (connection_disconnect_handler):
12750         Remove the connection from the bus driver's list.
12751
12752         (connection_watch_callback): Dispatch messages.
12753
12754         (free_connection_data): Free connection name.
12755
12756         (bus_connection_setup): Add connection to the bus driver's list.
12757         (bus_connection_remove_owned_service):
12758         (bus_connection_set_name), (bus_connection_get_name):
12759         Add functions for setting and getting the connection's name.
12760
12761         * bus/connection.h:
12762         Add function headers.
12763
12764         * bus/driver.c: (create_unique_client_name),
12765         (bus_driver_handle_hello_message),
12766         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12767         (bus_driver_add_connection), (bus_driver_remove_connection):
12768         * bus/driver.h:
12769         * bus/main.c:
12770         * bus/services.c: (bus_service_free):
12771         * bus/services.h:
12772         New file that handles communication and registreation with the bus
12773         itself.
12774
12775 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12776
12777         * dbus/dbus-connection.c: (dbus_connection_send_message):
12778         Add a new client_serial parameter.
12779
12780         (dbus_connection_send_message_with_reply):
12781         Remove a @todo since we've implemented the blocking function.
12782
12783         (dbus_connection_send_message_with_reply_and_block):
12784         New function that sends a message and waits for a reply and
12785         then returns the reply.
12786
12787         * dbus/dbus-connection.h:
12788         Add new functions.
12789
12790         * dbus/dbus-errors.c: (dbus_result_to_string):
12791         * dbus/dbus-errors.h:
12792         Add new DBUS_RESULT.
12793
12794         * dbus/dbus-message-internal.h:
12795         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12796         (_dbus_message_set_sender), (dbus_message_write_header),
12797         (dbus_message_new_reply), (decode_header_data),
12798         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12799         * dbus/dbus-message.h:
12800         Add new functions that set the reply serial and sender.
12801         Also marshal and demarshal them correctly and add test.
12802
12803         * dbus/dbus-protocol.h:
12804         Add new DBUS_MESSAGE_TYPE_SENDER.
12805
12806         * glib/dbus-glib.h:
12807         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12808         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12809         (dbus_connection_hookup_with_g_main):
12810         * glib/test-dbus-glib.c: (main):
12811         Rewrite to use GIOChannel and remove the GSource crack.
12812
12813         * test/echo-client.c: (main):
12814         * test/watch.c: (check_messages):
12815         Update for changed APIs
12816
12817 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12818
12819         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12820
12821         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12822         Create a DBusTimeoutList.
12823         (dbus_connection_set_timeout_functions): Add new function to
12824         set timeout callbacks
12825
12826         * dbus/dbus-connection.h: Add public DBusTimeout API.
12827
12828         * dbus/dbus-message.c: (dbus_message_get_service):
12829         * dbus/dbus-message.h:  New function.
12830
12831         * dbus/dbus-server.c: Fix small doc typo.
12832
12833         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12834
12835 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12836
12837         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12838         of the string, just as long as specified.
12839
12840 2003-01-19  Havoc Pennington  <hp@pobox.com>
12841
12842         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12843         new function
12844
12845         * dbus/dbus-server.c (dbus_server_set_max_connections)
12846         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12847         keep track of current number of connections, and add API for
12848         setting a max (but haven't implemented enforcing the max yet)
12849
12850 2003-01-18  Havoc Pennington  <hp@pobox.com>
12851
12852         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12853         reading/writing if read_watch != NULL or write_watch != NULL.
12854
12855         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12856         the message loader code to actually load message->header and
12857         message->body into the newly-created message.
12858
12859         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12860         in OOM case
12861
12862         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12863         (dbus_connection_get_max_message_size)
12864         (dbus_connection_set_max_live_messages_size)
12865         (dbus_connection_get_max_live_messages_size): implement some
12866         resource limitation functions
12867
12868         * dbus/dbus-resources.c: new file implementing some of the
12869         resource limits stuff
12870
12871         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12872         missing docs, add @todo to handle OOM etc.
12873
12874         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12875         docs
12876
12877 2003-01-18  Havoc Pennington  <hp@pobox.com>
12878
12879         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12880         connection if it hasn't been already.
12881
12882         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12883         replace with DisconnectFunction.
12884
12885 2003-01-18  Havoc Pennington  <hp@pobox.com>
12886
12887         Building --disable-verbose-mode --disable-asserts --disable-tests
12888         cuts the library from 112K to 45K or so
12889
12890         * configure.in: check for varargs macro support,
12891         add --enable-verbose-mode, --enable-asserts.
12892
12893         * dbus/dbus-internals.h (_dbus_assert): support
12894         DBUS_DISABLE_ASSERT
12895         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12896
12897 2003-01-18  Havoc Pennington  <hp@pobox.com>
12898
12899         * dbus/dbus-test.c: include config.h so that tests actually run
12900
12901         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12902         so the failure mode when that assumption fails will be plenty
12903         obvious.
12904
12905 2003-01-18  Havoc Pennington  <hp@pobox.com>
12906
12907         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12908
12909         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12910         the distribution
12911
12912         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12913         since we don't want to use those in make check
12914
12915 2003-01-15  Havoc Pennington  <hp@redhat.com>
12916
12917         Release 0.2
12918
12919         * NEWS: update
12920
12921 2003-01-15  Havoc Pennington  <hp@redhat.com>
12922
12923         * test/Makefile.am: fix so that test source code ends up in the
12924         distribution on make distcheck
12925
12926 2003-01-15  Havoc Pennington  <hp@redhat.com>
12927
12928         Release 0.1.
12929
12930         * NEWS: update
12931
12932 2003-01-15  Havoc Pennington  <hp@redhat.com>
12933
12934         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12935         fix build when --disable-tests
12936
12937         * Makefile.am (EXTRA_DIST): put HACKING in here
12938
12939         * HACKING: document procedure for making a tarball release.
12940
12941 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12942
12943         * bus/connection.c: (connection_error_handler),
12944         (bus_connection_setup):
12945         * bus/main.c: (main):
12946         Make sure that the DBusConnectionData struct is NULLed
12947         out to prevent a segfault.
12948
12949         * dbus/dbus-errors.c: (dbus_result_to_string):
12950         * dbus/dbus-errors.h:
12951         * dbus/dbus-message.c: (dbus_message_get_fields),
12952         (dbus_message_get_fields_valist), (_dbus_message_test):
12953         * dbus/dbus-message.h:
12954         Make dbus_message_get_fields return a result code so we can
12955         track invalid fields as well as oom.
12956
12957 2003-01-11  Havoc Pennington  <hp@pobox.com>
12958
12959         * configure.in: change --enable-test/--enable-ansi action-if-given
12960         to enable_foo=$enableval instead of enable_foo=yes
12961
12962 2003-01-08  Havoc Pennington  <hp@pobox.com>
12963
12964         * dbus/dbus-string.c (_dbus_string_align_length): new function
12965
12966         * dbus/dbus-test-main.c: move main() for test app here
12967         * dbus/dbus-test.c
12968         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12969         symbol to run tests, because dbus-test isn't in the main
12970         library
12971
12972         Code review nitpicks.
12973
12974         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12975         for people with narrow emacs ;-). Assert client_serial was filled
12976         in. Assert message->name != NULL.
12977         (dbus_message_append_fields): have "first_field_type" arg separate
12978         from va list, needed for C++ binding that also uses varargs IIRC
12979         and helps with type safety
12980         (dbus_message_new): add @todo about using DBusString to store
12981         service/name internally
12982         (dbus_message_new): don't leak ->service and ->name on OOM later
12983         in the function
12984         (dbus_message_unref): free the service name
12985         (dbus_message_get_fields): same change to varargs
12986         i.e. first_field_type
12987         (_dbus_message_loader_return_buffer): assert that the message data
12988         is aligned (if not it's a bug in our code). Put in verbose griping
12989         about why we set corrupted = TRUE.
12990         (decode_header_data): add FIXME that char* is evil.  Was going to
12991         add FIXME about evil locale-specific string.h strncmp, but just
12992         switched to wacky string-as-uint32 optimization. Move check for
12993         "no room for field name" above get_const_data_len() to avoid
12994         assertion failure in get_const_data_len if we have trailing 2
12995         bytes or the like. Check for service and name fields being
12996         provided twice. Don't leak service/name on error. Require field
12997         names to be aligned to 4 bytes.
12998
12999         * dbus/dbus-marshal.c: move byte swap stuff to header
13000         (_dbus_pack_int32): uscore-prefix
13001         (_dbus_unpack_int32): uscore-prefix
13002         (_dbus_unpack_uint32): export
13003         (_dbus_demarshal_string): add @todo complaining about use of
13004         memcpy()
13005         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13006         handling allowing corrupt data to go unchecked
13007
13008 2003-01-08  Havoc Pennington  <hp@redhat.com>
13009
13010         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13011         to the select() as needed for authentication. (should be using
13012         _dbus_poll() not select, but for another day)
13013
13014         * dbus/dbus.h: include dbus/dbus-protocol.h
13015
13016 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13017
13018         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13019         dbus-connection.h
13020
13021 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13022
13023         * dbus/dbus-internals.c: (_dbus_type_to_string):
13024         New function that returns a string describing a type.
13025
13026         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13027         * dbus/dbus-marshal.h:
13028         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13029         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13030         (dbus_message_iter_get_byte_array):
13031         * dbus/dbus-message.h:
13032         Add new convenience functions for appending and getting message fields.
13033         Also add demarshalling routines for byte arrays.
13034
13035 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13036
13037         * dbus/dbus-connection-internal.h:
13038         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13039         (_dbus_connection_get_next_client_serial),
13040         (dbus_connection_send_message):
13041         * dbus/dbus-internals.h:
13042         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13043         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13044         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13045         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13046         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13047         (_dbus_verbose_bytes), (_dbus_marshal_test):
13048         * dbus/dbus-marshal.h:
13049         * dbus/dbus-message-internal.h:
13050         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13051         (dbus_message_write_header), (_dbus_message_lock),
13052         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13053         (dbus_message_get_name), (dbus_message_append_int32),
13054         (dbus_message_append_uint32), (dbus_message_append_double),
13055         (dbus_message_append_string), (dbus_message_append_byte_array),
13056         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13057         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13058         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13059         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13060         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13061         (decode_header_data), (_dbus_message_loader_return_buffer),
13062         (message_iter_test), (_dbus_message_test):
13063         * dbus/dbus-message.h:
13064         * dbus/dbus-protocol.h:
13065         * dbus/dbus-test.c: (main):
13066         * dbus/dbus-test.h:
13067         * glib/test-dbus-glib.c: (message_handler), (main):
13068         * test/echo-client.c: (main):
13069         * test/watch.c: (check_messages):
13070         Make messages sendable and receivable for real.
13071
13072 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13073
13074         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13075         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13076         * dbus/dbus-message.c: (dbus_message_append_int32),
13077         (dbus_message_append_uint32), (dbus_message_append_double),
13078         (dbus_message_append_string), (dbus_message_append_byte_array):
13079         Handle OOM restoration.
13080
13081 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13082
13083         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13084         (_dbus_demarshal_string), (_dbus_marshal_test):
13085         * dbus/dbus-marshal.h:
13086         * dbus/dbus-message.c: (dbus_message_get_name),
13087         Document these functions.
13088
13089         (dbus_message_append_int32), (dbus_message_append_uint32),
13090         (dbus_message_append_double), (dbus_message_append_string),
13091         (dbus_message_append_byte_array):
13092         * dbus/dbus-message.h:
13093         Add functions for adding message fields of different types.
13094
13095         * dbus/dbus-protocol.h:
13096         Add the different types.
13097
13098 2003-01-05  Havoc Pennington  <hp@pobox.com>
13099
13100         * bus/connection.c: implement routines for handling connections,
13101         first thing is keeping a list of owned services on each connection
13102         and setting up watches etc.
13103
13104         * bus/services.c: implement a mapping from service names to lists
13105         of connections
13106
13107         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13108
13109         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13110         to use static mutexes for global data
13111
13112         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13113         collection of functions to set/get application-specific data
13114         on the DBusConnection.
13115
13116 2003-01-04  Havoc Pennington  <hp@pobox.com>
13117
13118         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13119         (_dbus_poll): new function
13120
13121         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13122         copied from GLib
13123
13124         * bus/loop.c: initial code for the daemon main loop
13125
13126 2003-01-04  Havoc Pennington  <hp@pobox.com>
13127
13128         * test/watch.c (error_handler): make it safe if the error handler
13129         is called multiple times (if we s/error handler/disconnect
13130         handler/ we should just guarantee it's called only once)
13131
13132         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13133         error handler on disconnect (it's quite possible we should
13134         just change the error handler to a "disconnect handler," I'm
13135         not sure we have any other meaningful errors)
13136
13137         * configure.in: check for getpwnam_r
13138
13139         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13140         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13141         mechanism as in SASL spec, using socket credentials
13142
13143         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13144         (_dbus_send_credentials_unix_socket): new function
13145
13146         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13147         dbus_accept()
13148         (_dbus_write): only check errno if <0 returned
13149         (_dbus_write_two): ditto
13150
13151 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13152
13153         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13154         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13155         (_dbus_marshal_test):
13156         * dbus/dbus-marshal.h:
13157         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13158         to _dbus_marshal_utf8_string. Also fix some tests.
13159
13160 2002-12-28  Harri Porten  <porten@kde.org>
13161
13162         * configure.in: added check for C++ compiler and a very cheesy
13163         check for the Qt integration
13164
13165         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13166
13167         * qt/Makefile.am: added
13168
13169         * qt/.cvsignore: added
13170
13171         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13172         latter, added #ifdef QT_THREAD_SUPPORT guard.
13173
13174         * dbus/Makefile.am: added missing headers for make dist
13175
13176 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13177
13178         * dbus/Makefile.am: fixup export-symbols-regex.
13179
13180 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13181
13182         * acinclude.m4: Add this file and put the
13183         PKG_CHECK_MODULE macro in it.
13184
13185 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13186
13187         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13188         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13189         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13190         (_dbus_marshal_test):
13191         Make the demarshalling routines align the pos argument.
13192         Add string marshalling tests and fix the obvious bugs
13193         discovered.
13194
13195 2002-12-26  Havoc Pennington  <hp@pobox.com>
13196
13197         * dbus/dbus-auth.c: fixes fixes fixes
13198
13199         * dbus/dbus-transport-unix.c: wire up support for
13200         encoding/decoding data on the wire
13201
13202         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13203         (_dbus_auth_decode_data): append to target string
13204         instead of nuking it.
13205
13206 2002-12-26  Havoc Pennington  <hp@pobox.com>
13207
13208         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13209         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13210         doh
13211
13212         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13213         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13214         now). Main point is because I wanted unpack_uint32 to implement
13215         _dbus_verbose_bytes
13216         (_dbus_verbose_bytes): new function
13217
13218         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13219
13220         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13221         mechanism to handle a corrupt message stream
13222         (_dbus_message_loader_new): fix preallocation to only prealloc,
13223         not prelengthen
13224
13225         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13226         (_dbus_string_test): enhance tests for copy/move and fix the
13227         functions
13228
13229         * dbus/dbus-transport-unix.c: Hold references in more places to
13230         avoid reentrancy problems
13231
13232         * dbus/dbus-transport.c: ditto
13233
13234         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13235         leak reference count in no-message case
13236
13237         * test/watch.c (do_mainloop): handle adding/removing watches
13238         during iteration over the watches. Also, ref the connection/server
13239         stored on a watch, so we don't try to mangle a destroyed one.
13240
13241         * dbus/dbus-transport-unix.c (do_authentication): perform
13242         authentication
13243
13244         * dbus/dbus-auth.c (get_state): add a state
13245         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13246         (_dbus_auth_get_unused_bytes): append the unused bytes
13247         to the passed in string, rather than prepend
13248
13249         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13250         the auth conversation DBusAuth
13251
13252         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13253         (_dbus_transport_new_for_domain_socket): when creating a
13254         transport, pass in whether it's a client-side or server-side
13255         transport so we know which DBusAuth to create
13256
13257 2002-12-03  Havoc Pennington  <hp@pobox.com>
13258
13259         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13260         _after_ finalizing the derived members
13261         (unix_connection_set): unref watch if we fail to add it
13262
13263         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13264         transport first, so that the connection owned by the
13265         transport will be valid as the transport finalizes.
13266
13267         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13268         if necessary, and remove watches from the connection.
13269
13270         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13271
13272 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13273
13274         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13275         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13276         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13277         (_dbus_marshal_test):
13278         * dbus/dbus-marshal.h:
13279         Add string marshal functions and have the demarshal functions
13280         return the new position.
13281
13282 2002-12-25  Havoc Pennington  <hp@pobox.com>
13283
13284         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13285         it is a simple protocol that just maps directly to SASL.
13286
13287         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13288         initial implementation, not actually used yet.
13289
13290         * dbus/dbus-string.c (_dbus_string_find): new function
13291         (_dbus_string_equal): new function
13292         (_dbus_string_base64_encode): new function
13293         (_dbus_string_base64_decode): new function
13294
13295 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13296
13297         * dbus/Makefile.am:
13298         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13299         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13300         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13301         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13302         * dbus/dbus-marshal.h:
13303         * dbus/dbus-protocol.h:
13304         * dbus/dbus-test.c: (main):
13305         * dbus/dbus-test.h:
13306         Add un-optimized marshalling/demarshalling routines.
13307
13308 2002-12-25  Harri Porten  <porten@kde.org>
13309
13310         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13311
13312 2002-12-24  Zack Rusin  <zack@kde.org>
13313
13314         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13315         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13316         main loop stuff
13317
13318 2002-12-24  Havoc Pennington  <hp@pobox.com>
13319
13320         * glib/dbus-gthread.c: fix include
13321
13322         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13323         I think glib API needs to change, though, as you don't
13324         want to use DBusMessageFunction, you want to use the
13325         DBusMessageHandler object. Probably
13326         dbus_connection_open_with_g_main_loop()
13327         and dbus_connection_setup_g_main_loop() or something like that
13328         (but think of better names...) that just create a connection
13329         that has watch/timeout functions etc. already set up.
13330
13331         * dbus/dbus-connection.c
13332         (dbus_connection_send_message_with_reply): new function just to
13333         show how the message handler helps us deal with replies.
13334
13335         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13336
13337         * dbus/dbus-string.c (_dbus_string_test): free a string that
13338         wasn't
13339
13340         * dbus/dbus-hash.c: use memory pools for the hash entries
13341         (rebuild_table): be more paranoid about overflow, and
13342         shrink table when we can
13343         (_dbus_hash_test): reduce number of sprintfs and write
13344         valid C89. Add tests for case where we grow and then
13345         shrink the hash table.
13346
13347         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13348
13349         * dbus/dbus-connection.c (dbus_connection_register_handler)
13350         (dbus_connection_unregister_handler): new functions
13351
13352         * dbus/dbus-message.c (dbus_message_get_name): new
13353
13354         * dbus/dbus-list.c: fix docs typo
13355
13356         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13357         an object representing a handler for messages.
13358
13359 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13360
13361         * glib/dbus-glib.h:
13362         * glib/dbus-gthread.c: (dbus_gthread_init):
13363         Don't use the gdbus prefix for public functions.
13364
13365 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13366
13367         * Makefile.am:
13368         * configure.in:
13369         Add GLib checks and fixup .pc files
13370
13371         * glib/Makefile.am:
13372         * glib/dbus-glib.h:
13373         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13374         (gdbus_connection_check), (gdbus_connection_dispatch),
13375         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13376         (dbus_connection_gsource_new):
13377         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13378         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13379         * glib/test-dbus-glib.c: (message_handler), (main):
13380         Add GLib support.
13381
13382 2002-12-15  Harri Porten  <porten@kde.org>
13383
13384         * autogen.sh: check for libtoolize before attempting to use it
13385
13386         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13387         struct.
13388
13389         * .cvsignore: ignore more stamp files
13390
13391         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13392
13393         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13394         without make install.
13395
13396 2002-12-15  Havoc Pennington  <hp@pobox.com>
13397
13398         * dbus/dbus-threads.c: add thread stubs that a higher library
13399         layer can fill in. e.g. the GLib wrapper might fill them in with
13400         GThread stuff. We still need to use this thread API to
13401         thread-safe-ize the library.
13402
13403 2002-12-12  Havoc Pennington  <hp@pobox.com>
13404
13405         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13406         below new interfaces and include fewer system headers.
13407
13408         * dbus/dbus-sysdeps.c (_dbus_read): new function
13409         (_dbus_write): new function
13410         (_dbus_write_two): new function
13411         (_dbus_connect_unix_socket): new function
13412         (_dbus_listen_unix_socket): new function
13413
13414         * dbus/dbus-message-internal.h: change interfaces to use
13415         DBusString
13416
13417 2002-12-11  Havoc Pennington  <hp@pobox.com>
13418
13419         * dbus/dbus-types.h: add dbus_unichar
13420
13421         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13422
13423         * dbus/dbus-connection.c (dbus_connection_send_message): return
13424         TRUE on success
13425
13426         * dbus/dbus-transport.c: include dbus-watch.h
13427
13428         * dbus/dbus-connection.c: include dbus-message-internal.h
13429
13430         * HACKING: add file with coding guidelines stuff.
13431
13432         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13433         handling here, for security purposes (as in vsftpd). Not actually
13434         using this class yet.
13435
13436         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13437         system/libc usage here, as in vsftpd, for ease of auditing (and
13438         should also simplify portability). Haven't actually moved all the
13439         system/libc usage into here yet.
13440
13441 2002-11-25  Havoc Pennington  <hp@pobox.com>
13442
13443         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13444         always print the first verbose message.
13445
13446 2002-11-24  Havoc Pennington  <hp@pobox.com>
13447
13448         * test/echo-client.c, test/echo-server.c: cheesy test
13449         clients.
13450
13451         * configure.in (AC_CHECK_FUNCS): check for writev
13452
13453         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13454         function
13455
13456         * dbus/dbus-list.c (_dbus_list_foreach): new function
13457
13458         * dbus/dbus-internals.c (_dbus_verbose): new function
13459
13460         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13461         representing a server that listens for connections.
13462
13463         * dbus/.cvsignore: create
13464
13465         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13466         public API for reporting errors
13467
13468         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13469         public object representing a connection that
13470         sends/receives messages. (Same object used for
13471         both client and server.)
13472
13473         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13474         Basic abstraction for different kinds of stream
13475         that we might read/write messages from.
13476
13477 2002-11-23  Havoc Pennington  <hp@pobox.com>
13478
13479         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13480         _DBUS_INT_MAX
13481
13482         * dbus/dbus-test.c (main): add list test, and include
13483         dbus-test.h as intended
13484
13485         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13486         (_dbus_hash_table_remove_int): return value indicates
13487         whether the entry existed to remove
13488
13489         * dbus/dbus-list.c: add linked list utility class,
13490         with docs and tests
13491
13492         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13493         array sometimes.
13494
13495 2002-11-23  Havoc Pennington  <hp@pobox.com>
13496
13497         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13498         DBUS_END_DECLS to nothing, that should fix this once and for all
13499
13500         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13501
13502         * dbus/dbus-message.c, dbus/dbus-hash.c:
13503         add some missing @brief
13504
13505 2002-11-23  Havoc Pennington  <hp@pobox.com>
13506
13507         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13508         to avoid confusing Doxygen
13509
13510         * dbus/dbus-hash.c: @} not }@
13511
13512         * dbus/dbus-message.c (struct DBusMessage): split out
13513         internals docs
13514
13515 2002-11-23  Havoc Pennington  <hp@pobox.com>
13516
13517         * configure.in: pile on more warning flags if using gcc
13518
13519         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13520         to document static functions
13521
13522         * configure.in: add summary to end of configure so it
13523         looks nice and attractive
13524
13525         * dbus/dbus-hash.c: finish implementation and write unit
13526         tests and docs
13527
13528         * configure.in: add --enable-tests to enable unit tests
13529
13530         * dbus/dbus-test.c: test program to run unit tests
13531         for all files in dbus/*, initially runs a test for
13532         dbus-hash.c
13533
13534         * dbus/dbus-internals.h: file to hold some internal utility stuff
13535
13536 2002-11-22  Havoc Pennington  <hp@redhat.com>
13537
13538         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13539         "ported" away from Tcl
13540
13541         * dbus/dbus-types.h: header for types such as dbus_bool_t
13542
13543 2002-11-22  Havoc Pennington  <hp@redhat.com>
13544
13545         * dbus/dbus.h: fixups for doc warnings
13546
13547         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13548         macros
13549         (QUIET): make it quiet so we can see warnings
13550
13551         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13552
13553 2002-11-22  Havoc Pennington  <hp@redhat.com>
13554
13555         * Makefile.am: include "Doxyfile" target in all-local
13556
13557         * configure.in: generate the Doxyfile
13558
13559         * Doxyfile.in: move Doxyfile here, so we can use
13560         configure to generate a Doxyfile with the right
13561         version number etc.
13562
13563 2002-11-22  Havoc Pennington  <hp@redhat.com>
13564
13565         * dbus/dbus-message.c: move inline docs into .c file
13566
13567         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13568         so all docs are under doc/
13569         (MAN_EXTENSION): generate man pages. Use extension
13570         ".3dbus" which matches ".3qt" on my system,
13571         I guess this is OK, I don't know really.
13572         (FILE_PATTERNS): look for .c files not .h, makes sense
13573         for plain C I think
13574
13575 2002-11-22  Havoc Pennington  <hp@pobox.com>
13576
13577         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13578         because any app can be a server, and any app can be a client,
13579         the bus is a special kind of server.
13580
13581 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13582
13583         * Doxyfile : adding. Still needs Makefile rules to be generated
13584         automatically (just run "doxygen" in the toplevel dir for now to
13585         generate docs)
13586
13587         * dbus/dbus-message.h : Adding sample docs (javadoc since
13588         resembles gtk-doc a little more)
13589
13590         * dbus/dbus.h : Adding sample docs
13591
13592 2002-11-21  Havoc Pennington  <hp@redhat.com>
13593
13594         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13595         so we can allow ourselves to include files directly,
13596         instead of having to use dbus.h
13597
13598         * dbus/dbus.h: fill in
13599
13600         * dbus/dbus-message.h: sketch out a sample header file.
13601         Include griping if you include it directly instead of
13602         via dbus.h
13603
13604         * dbus/dbus-macros.h: new file with macros for extern "C",
13605         TRUE/FALSE, NULL, etc.
13606
13607         * doc/file-boilerplate.c: put include guards in here
13608
13609 2002-11-21  Havoc Pennington  <hp@redhat.com>
13610
13611         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13612
13613         * COPYING: include the GPL as well, and license code
13614         under both AFL and GPL.
13615
13616 2002-11-21  Havoc Pennington  <hp@redhat.com>
13617
13618         * acconfig.h: get rid of this
13619
13620         * autogen.sh (run_configure): add --no-configure option
13621
13622         * configure.in: remove AC_ARG_PROGRAM to make
13623         autoconf complain less. add AC_PREREQ.
13624         add AC_DEFINE third arg.
13625
13626 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13627
13628         * doc/Makefile.am:
13629         Fix references so we can distcheck.
13630
13631 2002-11-21  Havoc Pennington  <hp@redhat.com>
13632
13633         * Initial module creation
13634